<?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>208702</bug_id>
          
          <creation_ts>2020-03-06 02:31:34 -0800</creation_ts>
          <short_desc>[WebXR] IDLs, stubs and build configuration for WPE</short_desc>
          <delta_ts>2022-01-17 01:12:25 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1626576</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-06 02:31:34 -0800</bug_when>
    <thetext>[WebXR] IDLs, stubs and build configuration for WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626590</commentid>
    <comment_count>1</comment_count>
      <attachid>392699</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-06 03:04:44 -0800</bug_when>
    <thetext>Created attachment 392699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626593</commentid>
    <comment_count>2</comment_count>
      <attachid>392700</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-06 03:15:43 -0800</bug_when>
    <thetext>Created attachment 392700
Patch

Adding Zan to the ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627705</commentid>
    <comment_count>3</comment_count>
      <attachid>393019</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-09 02:45:46 -0700</bug_when>
    <thetext>Created attachment 393019
Buildfixes for Mac/iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627819</commentid>
    <comment_count>4</comment_count>
      <attachid>393046</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-09 09:59:16 -0700</bug_when>
    <thetext>Created attachment 393046
Patch

Xcode project changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628587</commentid>
    <comment_count>5</comment_count>
      <attachid>393218</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-11 04:07:12 -0700</bug_when>
    <thetext>Created attachment 393218
Patch

Mac/iOS build fix. Missing file in pbxproj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628676</commentid>
    <comment_count>6</comment_count>
      <attachid>393250</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-11 09:21:53 -0700</bug_when>
    <thetext>Created attachment 393250
Patch

Fix for Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629431</commentid>
    <comment_count>7</comment_count>
      <attachid>393250</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-03-12 17:37:21 -0700</bug_when>
    <thetext>Comment on attachment 393250
Patch

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

My overall comment is that we should think about how we&apos;ll name the implementation of this API. By claiming the XR prefix, it means the implementation in platform will have to use something else. But we probably want to use XR there. So we could have the .idl files use a WebXR prefix, but use InterfaceName to expose them with just an XR prefix.

Then for the simple enum types, like XRHandedness, which will likely be used directly in the implementation, ignore the WebXR prefix but only have the XRHandedness.idl file in Modules/webxr and the implementation files in platform.

Also, I don&apos;t like that the actual code is wrapped in ENABLE_WEBGL. I think there needs to be a new WEBXR conditional.

&gt; Source/WebCore/Modules/webxr/NavigatorWebXR.idl:28
&gt; +    Conditional=WEBGL

It might be worth adding a compile time flag for WEBXR too. ENABLE_WEBXR?

&gt; Source/WebCore/Sources.txt:435
&gt; +Modules/webxr/NavigatorWebXR.cpp @no-unify
&gt; +Modules/webxr/XRBoundedReferenceSpace.cpp @no-unify
&gt; +Modules/webxr/XRFrame.cpp @no-unify
&gt; +Modules/webxr/XRInputSource.cpp @no-unify
&gt; +Modules/webxr/XRInputSourceArray.cpp @no-unify
&gt; +Modules/webxr/XRInputSourceEvent.cpp @no-unify
&gt; +Modules/webxr/XRInputSourcesChangeEvent.cpp @no-unify
&gt; +Modules/webxr/XRPose.cpp @no-unify
&gt; +Modules/webxr/XRReferenceSpace.cpp @no-unify
&gt; +Modules/webxr/XRReferenceSpaceEvent.cpp @no-unify
&gt; +Modules/webxr/XRRenderState.cpp @no-unify
&gt; +Modules/webxr/XRRigidTransform.cpp @no-unify
&gt; +Modules/webxr/XRSession.cpp @no-unify
&gt; +Modules/webxr/XRSessionEvent.cpp @no-unify
&gt; +Modules/webxr/XRSpace.cpp @no-unify
&gt; +Modules/webxr/XRSystem.cpp @no-unify
&gt; +Modules/webxr/XRView.cpp @no-unify
&gt; +Modules/webxr/XRViewerPose.cpp @no-unify
&gt; +Modules/webxr/XRViewport.cpp @no-unify
&gt; +Modules/webxr/XRWebGLLayer.cpp @no-unify

Why not unify?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629529</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-13 01:35:50 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #7)
&gt; Comment on attachment 393250 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=393250&amp;action=review
&gt; 
&gt; My overall comment is that we should think about how we&apos;ll name the
&gt; implementation of this API. By claiming the XR prefix, it means the
&gt; implementation in platform will have to use something else. But we probably
&gt; want to use XR there. So we could have the .idl files use a WebXR prefix,
&gt; but use InterfaceName to expose them with just an XR prefix.
&gt; 
&gt; Then for the simple enum types, like XRHandedness, which will likely be used
&gt; directly in the implementation, ignore the WebXR prefix but only have the
&gt; XRHandedness.idl file in Modules/webxr and the implementation files in
&gt; platform.

OK, so:
* XRSession.idl -&gt; WebXRSession.idl
  [] interface XRSession : EventTarget
* XRHandedness.idl ==

&gt; Also, I don&apos;t like that the actual code is wrapped in ENABLE_WEBGL. I think
&gt; there needs to be a new WEBXR conditional.

I reviewed https://webkit.org/feature-policy/ many times and it was indeed border line to me. Anyway adding the conditional build is a good idea.
 
&gt; &gt; Source/WebCore/Modules/webxr/NavigatorWebXR.idl:28
&gt; &gt; +    Conditional=WEBGL
&gt; 
&gt; It might be worth adding a compile time flag for WEBXR too. ENABLE_WEBXR?
&gt; 
&gt; &gt; Source/WebCore/Sources.txt:435
&gt; &gt; +Modules/webxr/NavigatorWebXR.cpp @no-unify
&gt; &gt; +Modules/webxr/XRBoundedReferenceSpace.cpp @no-unify
&gt; &gt; +Modules/webxr/XRFrame.cpp @no-unify
&gt; &gt; +Modules/webxr/XRInputSource.cpp @no-unify
&gt; &gt; +Modules/webxr/XRInputSourceArray.cpp @no-unify
&gt; &gt; +Modules/webxr/XRInputSourceEvent.cpp @no-unify
&gt; &gt; +Modules/webxr/XRInputSourcesChangeEvent.cpp @no-unify
&gt; &gt; +Modules/webxr/XRPose.cpp @no-unify
&gt; &gt; +Modules/webxr/XRReferenceSpace.cpp @no-unify
&gt; &gt; +Modules/webxr/XRReferenceSpaceEvent.cpp @no-unify
&gt; &gt; +Modules/webxr/XRRenderState.cpp @no-unify
&gt; &gt; +Modules/webxr/XRRigidTransform.cpp @no-unify
&gt; &gt; +Modules/webxr/XRSession.cpp @no-unify
&gt; &gt; +Modules/webxr/XRSessionEvent.cpp @no-unify
&gt; &gt; +Modules/webxr/XRSpace.cpp @no-unify
&gt; &gt; +Modules/webxr/XRSystem.cpp @no-unify
&gt; &gt; +Modules/webxr/XRView.cpp @no-unify
&gt; &gt; +Modules/webxr/XRViewerPose.cpp @no-unify
&gt; &gt; +Modules/webxr/XRViewport.cpp @no-unify
&gt; &gt; +Modules/webxr/XRWebGLLayer.cpp @no-unify
&gt; 
&gt; Why not unify?

Just because we thought that in this early stages of development were most of the changes will affect just 2-3 files at a time compilations would be faster. Also we could invoke single compilation targets to quickly check while adding stuff to specific files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629714</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-03-13 11:18:17 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #8)
&gt; (In reply to Dean Jackson from comment #7)
&gt; &gt; Comment on attachment 393250 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=393250&amp;action=review
&gt; &gt; 
&gt; &gt; My overall comment is that we should think about how we&apos;ll name the
&gt; &gt; implementation of this API. By claiming the XR prefix, it means the
&gt; &gt; implementation in platform will have to use something else. But we probably
&gt; &gt; want to use XR there. So we could have the .idl files use a WebXR prefix,
&gt; &gt; but use InterfaceName to expose them with just an XR prefix.
&gt; &gt; 
&gt; &gt; Then for the simple enum types, like XRHandedness, which will likely be used
&gt; &gt; directly in the implementation, ignore the WebXR prefix but only have the
&gt; &gt; XRHandedness.idl file in Modules/webxr and the implementation files in
&gt; &gt; platform.
&gt; 
&gt; OK, so:
&gt; * XRSession.idl -&gt; WebXRSession.idl
&gt;   [] interface XRSession : EventTarget

WebXRSession.idl has:
&quot;&quot;&quot;
[
  Conditional=WEBXR,
  InterfaceName=XRSession,
  ...
] WebXRSession : EventTarget ...
&quot;&quot;&quot;
and WebXRSession.{h,cpp}. The &quot;InterfaceName&quot; means it will be exposed to the Web with that name. These would all live in Modules/webxr to serve as our frontend.


&gt; * XRHandedness.idl ==

Since this one is just an enum, and it is likely we&apos;d use the values in our backend implementation as well as the frontend, we can put the IDL in Modules/webxr without a prefix (or InterfaceName) and the .h/cpp can go in platform/graphics/xr or something.

see Modules/webgpu/GPULoadOp.idl as an example.


&gt; 
&gt; &gt; Also, I don&apos;t like that the actual code is wrapped in ENABLE_WEBGL. I think
&gt; &gt; there needs to be a new WEBXR conditional.
&gt; 
&gt; I reviewed https://webkit.org/feature-policy/ many times and it was indeed
&gt; border line to me. Anyway adding the conditional build is a good idea.

Excellent!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629815</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-13 13:47:46 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #9)
&gt; (In reply to Sergio Villar Senin from comment #8)
&gt; &gt; (In reply to Dean Jackson from comment #7)
&gt; &gt; &gt; Comment on attachment 393250 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=393250&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; My overall comment is that we should think about how we&apos;ll name the
&gt; &gt; &gt; implementation of this API. By claiming the XR prefix, it means the
&gt; &gt; &gt; implementation in platform will have to use something else. But we probably
&gt; &gt; &gt; want to use XR there. So we could have the .idl files use a WebXR prefix,
&gt; &gt; &gt; but use InterfaceName to expose them with just an XR prefix.
&gt; &gt; &gt; 
&gt; &gt; &gt; Then for the simple enum types, like XRHandedness, which will likely be used
&gt; &gt; &gt; directly in the implementation, ignore the WebXR prefix but only have the
&gt; &gt; &gt; XRHandedness.idl file in Modules/webxr and the implementation files in
&gt; &gt; &gt; platform.
&gt; &gt; 
&gt; &gt; OK, so:
&gt; &gt; * XRSession.idl -&gt; WebXRSession.idl
&gt; &gt;   [] interface XRSession : EventTarget
&gt; 
&gt; WebXRSession.idl has:
&gt; &quot;&quot;&quot;
&gt; [
&gt;   Conditional=WEBXR,
&gt;   InterfaceName=XRSession,
&gt;   ...
&gt; ] WebXRSession : EventTarget ...
&gt; &quot;&quot;&quot;
&gt; and WebXRSession.{h,cpp}. The &quot;InterfaceName&quot; means it will be exposed to
&gt; the Web with that name. These would all live in Modules/webxr to serve as
&gt; our frontend.

Yeah I know, I was just writting down the suggested changes for reference :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629822</commentid>
    <comment_count>11</comment_count>
      <attachid>393527</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-13 13:59:23 -0700</bug_when>
    <thetext>Created attachment 393527
Patch for landing

Applied the suggested changes. Renamed interfaces to WebXRxxx. Added new build flag ENABLE_WEBXR with a dependency to ENABLE_WEBGL. Restored a Constructor commented by mistake in WebXRWebGLLayer.idl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629825</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-13 14:01:14 -0700</bug_when>
    <thetext>Žan, mind taking a look also to the WPE build options? I think they&apos;re fine (enabled for developer builds, disabled by default for all the ports) but always better to double check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629859</commentid>
    <comment_count>13</comment_count>
      <attachid>393533</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-13 15:00:06 -0700</bug_when>
    <thetext>Created attachment 393533
Patch for landing

Rebased against current ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629863</commentid>
    <comment_count>14</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-13 15:04:54 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #12)
&gt; Žan, mind taking a look also to the WPE build options? I think they&apos;re fine
&gt; (enabled for developer builds, disabled by default for all the ports) but
&gt; always better to double check.

This would force us to install OpenXR in the WPE bots, and also will also force all WPE developers to do so. Maybe perhaps we should just add it in disabled state by default. It&apos;s very likely that only me will build WebXR in WPE for a while...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630163</commentid>
    <comment_count>15</comment_count>
      <attachid>393612</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-15 04:18:26 -0700</bug_when>
    <thetext>Created attachment 393612
Patch for landing v2

Build fixes for Mac/iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630164</commentid>
    <comment_count>16</comment_count>
      <attachid>393613</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-15 04:22:31 -0700</bug_when>
    <thetext>Created attachment 393613
Patch for landing v2

Build fixes for Mac/iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630165</commentid>
    <comment_count>17</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-15 04:26:40 -0700</bug_when>
    <thetext>Forgot to apply the changes to the WPE build system, patch to follow...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630273</commentid>
    <comment_count>18</comment_count>
      <attachid>393639</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-16 02:51:52 -0700</bug_when>
    <thetext>Created attachment 393639
Patch for landing v3

OpenXR not required for WPE. ENABLE_WEBXR off by default for XCode build system</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630331</commentid>
    <comment_count>19</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-03-16 08:49:56 -0700</bug_when>
    <thetext>Committed r258498: &lt;https://trac.webkit.org/changeset/258498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630332</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-16 08:50:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/60496156&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831430</commentid>
    <comment_count>21</comment_count>
      <attachid>393639</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2022-01-17 01:12:25 -0800</bug_when>
    <thetext>Comment on attachment 393639
Patch for landing v3

Removing the r?. Already landed long time ago</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392699</attachid>
            <date>2020-03-06 03:04:44 -0800</date>
            <delta_ts>2020-03-06 03:15:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208702-20200306120441.patch</filename>
            <type>text/plain</type>
            <size>225372</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5NzEyZjYwZWYyMzNhNDE0NzllMGNk
ZDViYmZjMzg5MmUxNTU5ODIuLjRhYjZmMzhlNGMwMjU2MTU5MTY0ZmYyYWEzZDQ2MzBmNmRlM2Qw
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQg
YnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBEZWZpbmUgVVNFX09QRU5YUiAo
ZGlzYWJsZWQpIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBieSB0aGUgYnVpbGQgc3lzdGVtIGp1c3Qg
aW4gY2FzZQorICAgICAgICBFTkFCTEVfV0VCR0wgaXMgZGVmaW5lZCBhbmQgYWN0aXZlLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6CisKIDIwMjAtMDMtMDMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBCdWlsZCBGaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTY5ZDJiYmQ5MWZkNWY1
MWI5NmY2MDVmNWNjYmI5N2MxOTFkOTI4Li41NTgxZmFiM2FjMTVhOGE1MTZjNTFjNTVkMTk5ZDE5
OTUwODJmNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjExIEBACisyMDIwLTAzLTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIElETHMgZGVmaW5l
ZCBieSB0aGUgc3BlYyB3aXRoIHZlcnkgYmFzaWMgZW1wdHkgaW1wbGVtZW50YXRpb25zIHRvIGdl
dCB0aGVtCisgICAgICAgIGJ1aWx0LiBBcGFydCBmcm9tIHRoYXQgYSB2ZXJ5IGJhc2ljIGltcGxl
bWVudGF0aW9uIG9mIHRoZSByZXF1aXJlZCBwbGF0Zm9ybSBjb2RlIHVzaW5nCisgICAgICAgIE9w
ZW5YUiBBUEkgd2FzIGFsc28gYWRkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5l
dyBmdW5jdGlvbmFsaXR5IHdhcyByZWFsbHkgYWRkZWQgKGVtcHR5IGltcGxlbWVudGF0aW9ucyku
IEhvd2V2ZXIKKyAgICAgICAgZm9sbG93IHVwIHBhdGNoZXMgd2lsbCBpbXBvcnQgdGhlIGFscmVh
ZHkgYXZhaWxhYmxlIFdQVCB0ZXN0cyBmb3IgV2ViWFIuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJYUjo6eHIpOgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdG9yV2ViWFI6OmZyb20pOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJY
Ui5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlOjpib3VuZHNHZW9tZXRyeSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJFeWUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkV5ZS5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6WFJGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSRnJh
bWU6OlhSRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6WFJGcmFtZTo6c2Vzc2lvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpnZXRWaWV3ZXJQb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OlhSRnJhbWU6OmdldFBvc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFt
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlhSSW5wdXRTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNl
OjpYUklucHV0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OmhhbmRl
ZG5lc3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5
TW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjp0YXJnZXRSYXlT
cGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpncmlwU3BhY2Ug
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6WFJJbnB1dFNvdXJjZUFycmF5OjpsZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJJbnB1dFNvdXJjZUFycmF5OjppdGVtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VBcnJheS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VBcnJheS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0
U291cmNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZl
bnQ6OlhSSW5wdXRTb3VyY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNl
RXZlbnQ6OmZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVu
dDo6aW5wdXRTb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2
ZW50OjpidXR0b25JbmRleCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0
U291cmNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3Vy
Y2VzQ2hhbmdlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3Vy
Y2VzQ2hhbmdlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRkZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3ZlZCBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50Lmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJQb3NlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpYUlBvc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlBvc2U6
OlhSUG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlBvc2U6OnRyYW5zZm9ybSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUlBvc2U6OmVtdWxhdGVkUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJQb3NlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJQb3NlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlOjpY
UlJlZmVyZW5jZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2U6Omdl
dE9mZnNldFJlZmVyZW5jZVNwYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJl
bmNlU3BhY2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNw
YWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
RXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VFdmVu
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VFdmVudDo6WFJS
ZWZlcmVuY2VTcGFjZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VF
dmVudDo6cmVmZXJlbmNlU3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVu
Y2VTcGFjZUV2ZW50Ojp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUlJlbmRlclN0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0
YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6WFJSZW5kZXJT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjpkZXB0aE5lYXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6ZGVwdGhGYXIgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6aW5saW5lVmVydGljYWxGaWVsZE9mVmlldyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjpiYXNlTGF5ZXIgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhS
UmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNm
b3JtOjpYUlJpZ2lkVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmlnaWRUcmFuc2Zv
cm06OnBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmlnaWRUcmFuc2Zvcm06
Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmlnaWRUcmFuc2Zvcm06
Om1hdHJpeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjppbnZl
cnNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6ZW52aXJvbm1lbnRCbGVuZE1vZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjp2aXNpYmlsaXR5U3RhdGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJTZXNzaW9uOjpyZW5kZXJTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpYUlNlc3Npb246OmlucHV0U291cmNlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpY
UlNlc3Npb246OnVwZGF0ZVJlbmRlclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lv
bjo6cmVxdWVzdFJlZmVyZW5jZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6Y2Fu
Y2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjplbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9YUlNlc3Npb24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb25FdmVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2ZW50OjpYUlNlc3Npb25FdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpYUlNlc3Npb25FdmVudDo6c2Vzc2lvbiBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSU2Vzc2lvbkV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb25Jbml0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9u
SW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlhSU3BhY2U6OlhSU3BhY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJT
cGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3BhY2UuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpYUlN5c3RlbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVt
OjpYUlN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpYUlN5c3RlbTo6aXNTZXNzaW9uU3VwcG9y
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjpyZXF1ZXN0U2Vzc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpYUlN5c3RlbTo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpYUlN5c3RlbTo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9Y
UlN5c3RlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlkbDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3OjpYUlZpZXcpOgor
ICAgICAgICAoV2ViQ29yZTo6WFJWaWV3OjpleWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
WFJWaWV3Ojpwcm9qZWN0aW9uTWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmll
dzo6dHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlldy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlldy5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpYUlZpZXdlclBvc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdlclBv
c2U6OnZpZXdzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WFJWaWV3cG9ydDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmll
d3BvcnQ6OnggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3cG9ydDo6eSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUlZpZXdwb3J0OjpoZWlnaHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJWaWV3cG9ydC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlld3Bv
cnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRl
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6WFJXZWJHTExheWVyOjpYUldlYkdMTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6WFJX
ZWJHTExheWVyOjphbnRpYWxpYXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExh
eWVyOjppZ25vcmVEZXB0aFZhbHVlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdM
TGF5ZXI6OmZyYW1lYnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXll
cjo6ZnJhbWVidWZmZXJXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5
ZXI6OmZyYW1lYnVmZmVySGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xM
YXllcjo6Z2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpnZXRO
YXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
V2ViR0xMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXll
ci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkIE9wZW5YUiBpbmNsdWRlcyBh
bmQgbGlicy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBiaW5kaW5ncy9JRExU
eXBlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBk
b20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAq
IGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6IEFkZGVkIFdlYlhSIGZlYXR1cmUuCisgICAgICAgIChXZWJDb3JlOjpSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRXZWJYUkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViWFJFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0veHIv
UGxhdGZvcm1YUi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZv
cm1YUi5jcHA6IEFkZGVkLgorICAgICAgICAoUGxhdGZvcm1YUjo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKFBsYXRmb3JtWFI6OnJlc3VsdFRvU3RyaW5nKToKKyAgICAgICAgKFBsYXRmb3Jt
WFI6Okluc3RhbmNlOjpJbXBsOjpJbXBsKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Okluc3RhbmNl
OjpJbXBsOjp+SW1wbCk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6c2luZ2xldG9u
KToKKwogMjAyMC0wMy0wNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dUS11bV1BFXSBVc2UgcmVzdG9yZSB2aWV3IGljb24gZm9yIGV4aXQg
ZnVsbHNjcmVlbiBidXR0b24gaW4gbWVkaWEgY29udHJvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2Y0OTc3ZjM3
MjcwNmQzMzBhYWVmMWMzOTMzNTAwYWM0MDY0MjkyNS4uMmQwMGQ4YjRhYmUxNjMyZWNjOTljOTM4
NzE2ZGIxNTZlOWM4OWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
WFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWw6IEFkZGVkIGluZm8gYWJvdXQgdGhlIFdlYlhSIGltcGxlbWVudGF0aW9uIHN0
YXR1cy4KKwogMjAyMC0wMy0wMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogcmUtYWRkIGBJbnNwZWN0b3JGcm9udGVuZEhvc3RgIHN1
cHBvcnQgZm9yIG1vdmluZyB0aGUgaW5zcGVjdGVkIHdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZGVk
ZmExNGQ1YTVkZGRhODRlMzM1YmZkNDg1ZTc1NTA5N2ZhZWM1Ny4uZGFhN2QzNjNhNTRlMjI0MzJk
YjQ5ZTc4MWM4MzExMzcyNWFkYzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xODAsNiArMTgwLDEwIEBA
CiAjaWYgKFVTRV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZp
bmVkKFVTRV9FR0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJv
ciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9F
UyBhbmQgVVNFX0VHTAogI2VuZGlmCisKKyNpZiAhZGVmaW5lZChVU0VfT1BFTlhSKQorI2RlZmlu
ZSBVU0VfT1BFTlhSIDAKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIp
ICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVmaW5lZChVU0VfVEVYVFVSRV9N
QVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDM3Y2IxYmVlNDljN2U5NTVhNzEyNGQx
ZTJkNmFlOWNkMTU1YzA3OWIuLmE5MjZmMmI3NDcyZDk2YzEyNTM2OTA1MDk4N2UwN2UwZTI2Mjlk
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTc5LDYgKzExNzksNDcgQEAgaWYgKEVOQUJM
RV9HQU1FUEFEKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfV0VCR0wpCisgICAgbGlz
dChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7
V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2VieHIiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS94ciIKKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCisgICAgICAgIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCisgICAgICAgIE1v
ZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMv
d2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9Y
UkV5ZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbAorICAgICAgICBNb2R1
bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvWFJIYW5kZWRuZXNzLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2Uu
aWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbAorICAgICAg
ICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSUG9zZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3Rh
dGVJbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbkV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQu
aWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlk
bAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlZpZXcuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3Nl
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaWRsCisgICAgICAgIE1vZHVs
ZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRs
CisgICAgKQorZW5kaWYgKCkKKwogc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgJHtXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTfQogICAgICR7V2ViQ29yZV9TVkdfSURMX0ZJTEVTfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kM2ZhMmI4MjY5ZWE0ZWU1ZGE2NDZiODk1N2Y1NWExZTRmZGU5MmUzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTmF2aWdhdG9yV2ViWFIuaCIKKworI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUg
IlhSU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFJTeXN0ZW0mIE5hdmlnYXRv
cldlYlhSOjp4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBOYXZpZ2F0b3ImIG5hdmlnYXRvck9iamVjdCkKK3sKKyAgICBhdXRvJiBuYXZpZ2F0b3IgPSBO
YXZpZ2F0b3JXZWJYUjo6ZnJvbShuYXZpZ2F0b3JPYmplY3QpOworICAgIGlmICghbmF2aWdhdG9y
Lm1feHIpCisgICAgICAgIG5hdmlnYXRvci5tX3hyID0gWFJTeXN0ZW06OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKKyAgICByZXR1cm4gKm5hdmlnYXRvci5tX3hyOworfQorCitOYXZp
Z2F0b3JXZWJYUiYgTmF2aWdhdG9yV2ViWFI6OmZyb20oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCit7
CisgICAgYXV0byogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvcldlYlhSKj4oU3Vw
cGxlbWVudDxOYXZpZ2F0b3I+Ojpmcm9tKCZuYXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIpKTsK
KyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gbWFr
ZVVuaXF1ZTxOYXZpZ2F0b3JXZWJYUj4oKTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBs
ZW1lbnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbygmbmF2aWdhdG9yLCAiTmF2aWdhdG9yV2Vi
WFIiLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuICpzdXBwbGVt
ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZjMGY5OGU0OTgxMDMyZWIy
NmRhMzExYTFlY2M0ODM1N2YzOWNmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF2aWdh
dG9yOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFhSU3lzdGVtOworCitj
bGFzcyBOYXZpZ2F0b3JXZWJYUiBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4g
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBYUlN5
c3RlbSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworCitwcml2YXRl
OgorICAgIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3ImKTsKKworICAgIFJl
ZlB0cjxYUlN5c3RlbT4gbV94cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWZmMjlkMTY2OWU3YmQ3ZDI3MTViZWUwZjRlZWJmNmVmMmVkN2MxOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCkBA
IC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIKK10gcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKKyAgICBbU2VjdXJlQ29udGV4dCwg
U2FtZU9iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkgYXR0
cmlidXRlIFhSU3lzdGVtIHhyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUzMDdi
Zjc3OTNhMWViMmVmNDI2NmRiMjc5OWFkMzhlNDkzNmVkYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIFhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlOjpib3VuZHNHZW9tZXRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYm91bmRzR2VvbWV0
cnk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjVjOGU5NWRkZDVjMzk5NDU1MjY1MTgyYzAwYzYzYzExMzUxOWRiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01Qb2ludFJlYWRP
bmx5OworCitjbGFzcyBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBYUlJlZmVyZW5j
ZVNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSgp
OworCisgICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5kc0dlb21l
dHJ5KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5
Pj4gbV9ib3VuZHNHZW9tZXRyeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM4MTBhYmMxYTBjYjE3MDM2NGMxMzViNWE3ZTAxZjRmMjcw
NWVkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBF
eHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgOiBYUlJl
ZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NUG9p
bnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWZh
YzFlYzgwYjAyMjE0Zjk5YWEyZjJhNzkwYjU1OTc5Y2I5YWU2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1
ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBoYUJsZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmly
b25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjMzMTQwMGYzNTE3YmYwZDA3YzlmNjcw
N2Y0NmRlMjhkZjEwM2JkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGVudW0gWFJFbnZpcm9u
bWVudEJsZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisgICAgImFkZGl0aXZlIiwKKyAgICAiYWxw
aGEtYmxlbmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkV5ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAxZTcwZTU0NDQzNTY0MjYxZDM3OWM5MzBiOWQ1OTlkOTIxMmJmMzIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKQEAgLTAsMCArMSwzNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIFhSRXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAgUmlnaHQsCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNjZmEzMzIzZGZjM2Y2Yjc5MjUxYzdjMjlhMGY5ZmZmMWE4ZGU4ODgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlk
bApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSCitdIGVudW0gWFJFeWUgeworICAgICJub25lIiwKKyAgICAibGVmdCIsCisgICAgInJp
Z2h0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjNTA0YWQxYzk3NjNkYWJkM2U1ODY4ZDMwMzI5ODQ4YTdkNDExYWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwCkBAIC0wLDAg
KzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhS
RnJhbWUuaCIKKworI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlhSVmlld2VyUG9z
ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSRnJhbWUpOworCitSZWY8WFJG
cmFtZT4gWFJGcmFtZTo6Y3JlYXRlKFJlZjxYUlNlc3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBYUkZyYW1lKFdURk1vdmUoc2Vzc2lvbikpKTsKK30KKworWFJG
cmFtZTo6WFJGcmFtZShSZWY8WFJTZXNzaW9uPiYmIHNlc3Npb24pCisgICAgOiBtX3Nlc3Npb24o
V1RGTW92ZShzZXNzaW9uKSkKK3sKK30KKworWFJGcmFtZTo6flhSRnJhbWUoKSA9IGRlZmF1bHQ7
CisKK2NvbnN0IFhSU2Vzc2lvbiYgWFJGcmFtZTo6c2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFhSVmlld2VyUG9zZT4gWFJGcmFtZTo6Z2V0Vmll
d2VyUG9zZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQor
CitSZWZQdHI8WFJQb3NlPiBYUkZyYW1lOjpnZXRQb3NlKGNvbnN0IFhSU3BhY2UmLCBjb25zdCBY
UlNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxOTZkMWYy
NWM4YmViZDNiYWRhNGUxYzNmNDQzMmIzZmUxMjgxOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaApAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlBvc2U7Citj
bGFzcyBYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJTcGFjZTsK
K2NsYXNzIFhSVmlld2VyUG9zZTsKKworY2xhc3MgWFJGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFhSRnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSRnJhbWUpOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8WFJGcmFtZT4gY3JlYXRlKFJlZjxYUlNlc3Npb24+JiYpOworICAg
IH5YUkZyYW1lKCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKwor
ICAgIFJlZlB0cjxYUlZpZXdlclBvc2U+IGdldFZpZXdlclBvc2UoY29uc3QgWFJSZWZlcmVuY2VT
cGFjZSYpOworICAgIFJlZlB0cjxYUlBvc2U+IGdldFBvc2UoY29uc3QgWFJTcGFjZSYsIGNvbnN0
IFhSU3BhY2UmKTsKKworcHJpdmF0ZToKKyAgICBYUkZyYW1lKFJlZjxYUlNlc3Npb24+JiYpOwor
CisgICAgUmVmPFhSU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9hbmltYXRpb25GcmFtZSB7IGZhbHNlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSRnJhbWUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MjYxMGRlY2U4ODgyNzk4NTFlMDI3NDNjMTcxMjI5Mzc3MGYzZDVlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbApA
QCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhw
b3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2Ug
WFJGcmFtZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNlc3Npb24g
c2Vzc2lvbjsKKworICAgIFhSVmlld2VyUG9zZT8gZ2V0Vmlld2VyUG9zZShYUlJlZmVyZW5jZVNw
YWNlIHJlZmVyZW5jZVNwYWNlKTsKKyAgICBYUlBvc2U/IGdldFBvc2UoWFJTcGFjZSBzcGFjZSwg
WFJTcGFjZSBiYXNlU3BhY2UpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk1OGZkYzIwNDM3
ODFmYTZmOTk3OGJjMmJkN2RlYzg0MjBlYjQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01D
YWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUkZyYW1lOworCitj
bGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8WFJGcmFtZVJl
cXVlc3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAg
dXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVh
bCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUgaGlnaFJlc1RpbWVNcywg
WFJGcmFtZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQxMWQ0YmQyYzU4NmIxMDU2YTM3ZDEyMmM2NGZlZDE5ODA5YWU1MDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiBk
b3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworY2FsbGJhY2sgWFJGcmFtZVJlcXVlc3RDYWxs
YmFjayA9IHZvaWQgKERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZSwgWFJGcmFtZSBmcmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MjdhYTM5YjNkZTJmN2Y4NjI5NWFlOTNhODFmNDczMWRjOWNkNzRiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gY2xhc3MgWFJIYW5kZWRuZXNzIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAg
UmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRiOWQ4MTM5NjM2ODQ3
NjNkYTBjYWJkMmY0YTVlOTM0MzlkOWUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGVudW0gWFJIYW5kZWRu
ZXNzIHsKKyAgICAibm9uZSIsCisgICAgImxlZnQiLAorICAgICJyaWdodCIKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MmJiNDIyYjc4NWFkMzJhYzQxZTExYzliODdjMzdkN2ZhZThmOWIzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmNwcApAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJY
UklucHV0U291cmNlLmgiCisKKyNpbmNsdWRlICJYUlNwYWNlLmgiCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoWFJJbnB1dFNvdXJjZSk7CisKK1JlZjxYUklucHV0U291cmNlPiBYUklu
cHV0U291cmNlOjpjcmVhdGUoUmVmPFhSU3BhY2U+JiYgdGFyZ2V0UmF5U3BhY2UpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZShXVEZNb3ZlKHRhcmdldFJheVNwYWNl
KSkpOworfQorCitYUklucHV0U291cmNlOjpYUklucHV0U291cmNlKFJlZjxYUlNwYWNlPiYmIHRh
cmdldFJheVNwYWNlKQorICAgIDogbV9oYW5kZWRuZXNzKFhSSGFuZGVkbmVzczo6Tm9uZSkKKyAg
ICAsIG1fdGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1vZGU6OkdhemUpCisgICAgLCBtX3Rhcmdl
dFJheVNwYWNlKFdURk1vdmUodGFyZ2V0UmF5U3BhY2UpKQoreworfQorCitYUklucHV0U291cmNl
Ojp+WFJJbnB1dFNvdXJjZSgpID0gZGVmYXVsdDsKKworWFJIYW5kZWRuZXNzIFhSSW5wdXRTb3Vy
Y2U6OmhhbmRlZG5lc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRlZG5lc3M7Cit9CisK
K1hSVGFyZ2V0UmF5TW9kZSBYUklucHV0U291cmNlOjp0YXJnZXRSYXlNb2RlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV90YXJnZXRSYXlNb2RlOworfQorCitjb25zdCBYUlNwYWNlJiBYUklucHV0
U291cmNlOjp0YXJnZXRSYXlTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5
U3BhY2U7Cit9CisKK1JlZlB0cjxYUlNwYWNlPiBYUklucHV0U291cmNlOjpncmlwU3BhY2UoKSBj
b25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBYUklu
cHV0U291cmNlOjpwcm9maWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvZmlsZXM7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE4N2Y3MDM5YWU1ZDMzZjZiOTA1NmQ0NDdi
N2JmNTk2MzAzYTZhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNsdWRlICJYUlRhcmdl
dFJheU1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlNwYWNlOworCitjbGFzcyBYUklu
cHV0U291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8WFJJbnB1dFNvdXJjZT4geworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoWFJJbnB1dFNvdXJjZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxYUklucHV0U291cmNlPiBjcmVhdGUoUmVmPFhSU3BhY2U+JiYpOworICAgIH5YUklucHV0U291
cmNlKCk7CisKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzcygpIGNvbnN0OworICAgIFhSVGFy
Z2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKCkgY29uc3Q7CisgICAgY29uc3QgWFJTcGFjZSYgdGFy
Z2V0UmF5U3BhY2UoKSBjb25zdDsKKyAgICBSZWZQdHI8WFJTcGFjZT4gZ3JpcFNwYWNlKCkgY29u
c3Q7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb2ZpbGVzKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgWFJJbnB1dFNvdXJjZShSZWY8WFJTcGFjZT4mJik7CisKKyAgICBYUkhhbmRlZG5l
c3MgbV9oYW5kZWRuZXNzOworICAgIFhSVGFyZ2V0UmF5TW9kZSBtX3RhcmdldFJheU1vZGU7Cisg
ICAgUmVmPFhSU3BhY2U+IG1fdGFyZ2V0UmF5U3BhY2U7CisgICAgVmVjdG9yPFN0cmluZz4gbV9w
cm9maWxlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YjQwNjlmMGNi
NDIwNWQ1MDg2Y2I1MTYxM2E0ODE0MzQ5NjE2OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0
aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUklucHV0U291cmNlIHsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3M7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlIDsKKyAgICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSU3BhY2UgdGFyZ2V0UmF5U3BhY2U7CisgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNwYWNlPyBncmlwU3BhY2UgOworICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NU3RyaW5nPiBw
cm9maWxlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2VBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5w
dXRTb3VyY2VBcnJheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZkNGM0NjVkYWEzZjczZGU2NGY0MWFiZDI4
YTk4N2NkNjRlMGU4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUklucHV0U291cmNlQXJyYXkuaCIK
KworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSSW5wdXRTb3VyY2VBcnJheSk7CisK
K3Vuc2lnbmVkIFhSSW5wdXRTb3VyY2VBcnJheTo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gMDsKK30KKworWFJJbnB1dFNvdXJjZSogWFJJbnB1dFNvdXJjZUFycmF5OjppdGVtKHVuc2ln
bmVkKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NTUyMWI1NWZkMTU5Mjk3NTkwYjY0NzE0ZTRjMWY4YzUwNTZk
N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlQXJyYXkuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJJbnB1dFNvdXJjZTsKKwor
Y2xhc3MgWFJJbnB1dFNvdXJjZUFycmF5IDogcHVibGljIFJlZkNvdW50ZWQ8WFJJbnB1dFNvdXJj
ZUFycmF5PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUklucHV0U291cmNlQXJyYXkp
OworcHVibGljOgorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAgIFhSSW5wdXRTb3Vy
Y2UqIGl0ZW0odW5zaWduZWQpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJy
YXkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXku
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZjZjAwOGUxZTQwOTk4OWQ3MTUyODFmNDc4ODI1ZTE1MDZmN2Y3M2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VBcnJheS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2lu
ZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSSW5wdXRT
b3VyY2VBcnJheSB7CisgICAgaXRlcmFibGU8WFJJbnB1dFNvdXJjZT47CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBYUklucHV0U291cmNl
KHVuc2lnbmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTQ3NjkwYmYzM2Rk
MzEyMmJjYTRjYzhkNzk2MTBjMTMyYzRlZDMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSSW5wdXRT
b3VyY2VFdmVudC5oIgorCisjaW5jbHVkZSAiWFJGcmFtZS5oIgorI2luY2x1ZGUgIlhSSW5wdXRT
b3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJJbnB1dFNvdXJjZUV2ZW50
PiBYUklucHV0U291cmNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBYUklucHV0U291cmNlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1
c3RlZCkpOworfQorCitYUklucHV0U291cmNlRXZlbnQ6OlhSSW5wdXRTb3VyY2VFdmVudChjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlz
VHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAg
LCBtX2ZyYW1lKGluaXRpYWxpemVyLmZyYW1lKQorICAgICwgbV9pbnB1dFNvdXJjZShpbml0aWFs
aXplci5pbnB1dFNvdXJjZSkKKyAgICAsIG1fYnV0dG9uSW5kZXgoaW5pdGlhbGl6ZXIuYnV0dG9u
SW5kZXgpCit7CisgICAgQVNTRVJUKG1fZnJhbWUpOworICAgIEFTU0VSVChtX2lucHV0U291cmNl
KTsKK30KKworWFJJbnB1dFNvdXJjZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZUV2ZW50KCkgPSBkZWZh
dWx0OworCitjb25zdCBYUkZyYW1lJiBYUklucHV0U291cmNlRXZlbnQ6OmZyYW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gKm1fZnJhbWU7Cit9CisKK2NvbnN0IFhSSW5wdXRTb3VyY2UmIFhSSW5w
dXRTb3VyY2VFdmVudDo6aW5wdXRTb3VyY2UoKSBjb25zdAoreworICAgIHJldHVybiAqbV9pbnB1
dFNvdXJjZTsKK30KKworT3B0aW9uYWw8aW50PiBYUklucHV0U291cmNlRXZlbnQ6OmJ1dHRvbklu
ZGV4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9idXR0b25JbmRleDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNkYzdjMGUzYzQ5MTA1ZDRiZDI5NWE2MDY2ZTZh
NzM1ZjBiNWYxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJJbnB1dFNvdXJjZUV2ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFhSRnJhbWU7CitjbGFzcyBYUklucHV0U291cmNlOworCitjbGFzcyBYUklucHV0U291cmNl
RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDog
RXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFhSRnJhbWU+IGZyYW1lOworICAgICAgICBSZWZQ
dHI8WFJJbnB1dFNvdXJjZT4gaW5wdXRTb3VyY2U7CisgICAgICAgIE9wdGlvbmFsPGludD4gYnV0
dG9uSW5kZXg7CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJJbnB1dFNvdXJjZUV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0
ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUklucHV0U291cmNlRXZlbnQoKTsKKworICAgIGNvbnN0
IFhSRnJhbWUmIGZyYW1lKCkgY29uc3Q7CisgICAgY29uc3QgWFJJbnB1dFNvdXJjZSYgaW5wdXRT
b3VyY2UoKSBjb25zdDsKKyAgICBPcHRpb25hbDxpbnQ+IGJ1dHRvbkluZGV4KCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25z
dCBJbml0JiwgSXNUcnVzdGVkKTsKKworICAgIFJlZlB0cjxYUkZyYW1lPiBtX2ZyYW1lOworICAg
IFJlZlB0cjxYUklucHV0U291cmNlPiBtX2lucHV0U291cmNlOworICAgIE9wdGlvbmFsPGludD4g
bV9idXR0b25JbmRleDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZWVjZjk5ZjM3YjhiYzFiNDAyZWJjZGQwMzc2YzMwMTlhNGIyZTMyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
aWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNv
dXJjZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgWFJGcmFtZSBmcmFtZTsK
KyAgICByZXF1aXJlZCBYUklucHV0U291cmNlIGlucHV0U291cmNlOworfTsKKworWworICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJl
Q29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcg
dHlwZSwgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2Ug
WFJJbnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjk1NDJjZTEzMmU1NmI1ZTBmNDRkNWE0ZTIzNDJiNzU5MGVlZTljNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgorCisjaW5j
bHVkZSAiWFJJbnB1dFNvdXJjZS5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0U291
cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5p
dCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6
ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwg
aXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAgICwg
bV9hZGRlZChpbml0aWFsaXplci5hZGRlZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXplci5y
ZW1vdmVkKQoreworfQorCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNzaW9uJiBYUklucHV0U291
cmNlc0NoYW5nZUV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9u
OworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudDo6YWRkZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2FkZGVkOworfQor
Citjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudDo6cmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVtb3ZlZDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTkyZjI0
MDI1ODdjMWFmYTZhYzJkNzFlMzNkMzU1ZTdjZWI0ZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgKQEAg
LTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2
ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUklucHV0U291cmNlOworY2xhc3MgWFJTZXNz
aW9uOworCitjbGFzcyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2
ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJl
ZlB0cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNv
dXJjZT4+IGFkZGVkOworICAgICAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiByZW1v
dmVkOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1
c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoKTsKKwor
ICAgIGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYs
IElzVHJ1c3RlZCk7CisKKyAgICBSZWY8WFJTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVjdG9y
PFJlZlB0cjxYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRyPFhSSW5w
dXRTb3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Njk3ZjI3MmQ3YzMwMWZkZjg0ZjgzZDU4NGU4ZjE0
ODg5MWFkYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorXSBkaWN0aW9uYXJ5IFhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBYUlNl
c3Npb24gc2Vzc2lvbjsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxYUklucHV0U291cmNlPiBh
ZGRlZDsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxYUklucHV0U291cmNlPiByZW1vdmVkOwor
fTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgU2VjdXJlQ29udGV4dCwK
KyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCkKK10gaW50ZXJmYWNlIFhS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBYUlNlc3Npb24gc2Vzc2lvbjsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFhSSW5wdXRTb3VyY2U+IGFkZGVkOworICAgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8WFJJbnB1dFNvdXJjZT4gcmVt
b3ZlZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDkwMzU0ZTZkYzU3Zjk2NDU5NDA3NzU0YjkwZGU1ZTIwOGY4ZWMwMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcApAQCAtMCwwICsx
LDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlBv
c2UuaCIKKworI2luY2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChYUlBvc2UpOworCitSZWY8WFJQb3NlPiBYUlBvc2U6OmNyZWF0ZSgpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJQb3NlKTsKK30KKworWFJQb3NlOjpYUlBvc2Uo
KQorICAgIDogbV90cmFuc2Zvcm0oWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkpCit7Cit9CisK
K1hSUG9zZTo6flhSUG9zZSgpID0gZGVmYXVsdDsKKworY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYg
WFJQb3NlOjp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30K
KworYm9vbCBYUlBvc2U6OmVtdWxhdGVkUG9zaXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X2VtdWxhdGVkUG9zaXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNDgxOWNlMjRkYTkyMzY2YTY1
OWJlMjRjZjRkN2EyOTM3OTI3ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSUG9zZS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJQb3NlIDogcHVibGljIFJlZkNv
dW50ZWQ8WFJQb3NlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlBvc2UpOworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8WFJQb3NlPiBjcmVhdGUoKTsKKyAgICB+WFJQb3NlKCk7CisK
KyAgICBjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKyAgICBib29s
IGVtdWxhdGVkUG9zaXRpb24oKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIFhSUG9zZSgpOwor
CisgICAgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworICAgIGJvb2wgbV9lbXVs
YXRlZFBvc2l0aW9uIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDNmMWZjYjQz
MDFiOGIyYTkyYjdjOWQ3ODY3ODI2ZjZhNDEzZjRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgU2VjdXJlQ29udGV4
dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitd
IGludGVyZmFjZSBYUlBvc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
WFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gZW11bGF0ZWRQb3NpdGlvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzdhY2JlYTVlODk3MjcyZTg1
Yjg2OTE3ZjI5NzZmNzc2N2RmODhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFJSZWZlcmVuY2VTcGFjZTo6WFJSZWZlcmVu
Y2VTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAgIDogWFJTcGFjZShj
b250ZXh0KQoreworfQorCitYUlJlZmVyZW5jZVNwYWNlOjp+WFJSZWZlcmVuY2VTcGFjZSgpID0g
ZGVmYXVsdDsKKworUmVmPFhSUmVmZXJlbmNlU3BhY2U+IFhSUmVmZXJlbmNlU3BhY2U6OmdldE9m
ZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhSUmlnaWRUcmFuc2Zvcm0mKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFhSUmVmZXJlbmNlU3BhY2UoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZTE0ZDQ4M2Q0ZjU4
MDc4NGU4OWI0OGY3MDJmNWE0NGE2MWUxMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaApAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorCisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSUmlnaWRU
cmFuc2Zvcm07CisKK2NsYXNzIFhSUmVmZXJlbmNlU3BhY2UgOiBwdWJsaWMgWFJTcGFjZSB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+WFJSZWZlcmVuY2VTcGFjZSgpOworCisgICAgUmVmPFhSUmVm
ZXJlbmNlU3BhY2U+IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhSUmlnaWRUcmFuc2Zv
cm0mKTsKKworcHJpdmF0ZToKKyAgICBYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ODA5
OTczNTUzOTM5OWNiZDA0ZDk4NDI4NzU2MzQ5MWYyZDU3M2MKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBKU0dlbmVyYXRlVG9K
U09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKK10gaW50ZXJmYWNlIFhSUmVm
ZXJlbmNlU3BhY2UgOiBYUlNwYWNlIHsKKyAgICBbTmV3T2JqZWN0XSBYUlJlZmVyZW5jZVNwYWNl
IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKFhSUmlnaWRUcmFuc2Zvcm0gb3JpZ2luT2Zmc2V0KTsK
KworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXNldDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGFhMDRhMDEwZDAxMmEzYTBiZGM4ZTBlNzhiZTRkNWJlYzFkNDUzMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCIKKworI2luY2x1ZGUgIlhS
UmVmZXJlbmNlU3BhY2UuaCIKKyNpbmNsdWRlICJYUlJpZ2lkVHJhbnNmb3JtLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVmPFhSUmVmZXJlbmNlU3BhY2VFdmVudD4gWFJSZWZlcmVuY2VT
cGFjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsK
K30KKworWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1Ry
dXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwg
bV9yZWZlcmVuY2VTcGFjZShpbml0aWFsaXplci5yZWZlcmVuY2VTcGFjZSkKKyAgICAsIG1fdHJh
bnNmb3JtKGluaXRpYWxpemVyLnRyYW5zZm9ybSkKK3sKKyAgICBBU1NFUlQobV9yZWZlcmVuY2VT
cGFjZSk7CisgICAgQVNTRVJUKG1fdHJhbnNmb3JtKTsKK30KKworWFJSZWZlcmVuY2VTcGFjZUV2
ZW50Ojp+WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBYUlJlZmVy
ZW5jZVNwYWNlJiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnJlZmVyZW5jZVNwYWNlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gKm1fcmVmZXJlbmNlU3BhY2U7Cit9CisKK2NvbnN0IFhSUmlnaWRUcmFu
c2Zvcm0mIFhSUmVmZXJlbmNlU3BhY2VFdmVudDo6dHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gKm1fdHJhbnNmb3JtOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOThkMzlmZDI4ZjBkOTAyYjA4NjVmYjgxMDhlMzNkNWQ1MGNjZWJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSUmVmZXJlbmNlU3Bh
Y2U7CitjbGFzcyBYUlJpZ2lkVHJhbnNmb3JtOworCitjbGFzcyBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0
IHsKKyAgICAgICAgUmVmUHRyPFhSUmVmZXJlbmNlU3BhY2U+IHJlZmVyZW5jZVNwYWNlOworICAg
ICAgICBSZWZQdHI8WFJSaWdpZFRyYW5zZm9ybT4gdHJhbnNmb3JtOworICAgIH07CisKKyAgICBz
dGF0aWMgUmVmPFhSUmVmZXJlbmNlU3BhY2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
LCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+
WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCk7CisKKyAgICBjb25zdCBYUlJlZmVyZW5jZVNwYWNlJiBy
ZWZlcmVuY2VTcGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5z
Zm9ybSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3BhY2VFdmVudChjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJS
ZWZlcmVuY2VTcGFjZT4gbV9yZWZlcmVuY2VTcGFjZTsKKyAgICBSZWZQdHI8WFJSaWdpZFRyYW5z
Zm9ybT4gbV90cmFuc2Zvcm07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDI4NTFmZGQzYTBjNGVjOWUyYjQzNWE5NzZkYTUzYzM5ZjhlOGMzYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYlhSLAorXSBkaWN0aW9uYXJ5IFhSUmVmZXJlbmNlU3BhY2VFdmVu
dEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFhSUmVmZXJlbmNlU3BhY2UgcmVmZXJl
bmNlU3BhY2U7CisgICAgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9OworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9
V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUlJlZmVyZW5jZVNwYWNl
RXZlbnRJbml0IGV2ZW50SW5pdERpY3QpCitdIGludGVyZmFjZSBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJlZmVy
ZW5jZVNwYWNlIHJlZmVyZW5jZVNwYWNlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRl
YTRmOWQ1ZTYxZmMzNzQzMjNjM2YwMzE2YzU0OTVjODBkOTg3NWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmgKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSUmVmZXJlbmNlU3BhY2VUeXBlIHsKKyAgICBWaWV3ZXIs
CisgICAgTG9jYWwsCisgICAgTG9jYWxGbG9vciwKKyAgICBCb3VuZGVkRmxvb3IsCisgICAgVW5i
b3VuZGVkCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUxMzM0ZGExOThjNDY4NTQzYjg0MmM1YjI0MmY1MmY4ZmFkMDlhZjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlk
bApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSCitdIGVudW0gWFJSZWZlcmVuY2VTcGFjZVR5cGUgeworICAgICJ2aWV3ZXIiLAorICAg
ICJsb2NhbCIsCisgICAgImxvY2FsLWZsb29yIiwKKyAgICAiYm91bmRlZC1mbG9vciIsCisgICAg
InVuYm91bmRlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSUmVuZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRl
clN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWFiZmZhMmQyNjdlYzJiMGJhY2JmMGEzNGYzNmUwOTUx
Y2ZlNDM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJlbmRlclN0YXRlLmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisKKyNpbmNsdWRlICJYUlJl
bmRlclN0YXRlSW5pdC5oIgorI2luY2x1ZGUgIlhSV2ViR0xMYXllci5oIgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWFJSZW5kZXJT
dGF0ZSk7CisKK1JlZjxYUlJlbmRlclN0YXRlPiBYUlJlbmRlclN0YXRlOjpjcmVhdGUoY29uc3Qg
WFJTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIC8vIFdoZW4gYW4gWFJSZW5kZXJTdGF0ZSBvYmpl
Y3QgaXMgY3JlYXRlZCBmb3IgYW4gWFJTZXNzaW9uIHNlc3Npb24sIHRoZSB1c2VyIGFnZW50IE1V
U1QgaW5pdGlhbGl6ZSB0aGUgcmVuZGVyIHN0YXRlIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBz
dGVwczoKKyAgICAvLyAgIDEuIExldCBzdGF0ZSBiZSB0aGUgbmV3bHkgY3JlYXRlZCBYUlJlbmRl
clN0YXRlIG9iamVjdC4KKworICAgIC8vICAgMi4gSW5pdGlhbGl6ZSBzdGF0ZeKAmXMgZGVwdGhO
ZWFyIHRvIDAuMS4KKyAgICAvLyAgIDMuIEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRoRmFyIHRv
IDEwMDAuMC4KKyAgICAvLyAoRGVmYXVsdC1pbml0aWFsaXplZCBpbiB0aGUgWFJSZW5kZXJTdGF0
ZSBjbGFzcyBkZWZpbml0aW9uLikKKworICAgIC8vICAgNC4gSWYgc2Vzc2lvbiBpcyBhbiBpbW1l
cnNpdmUgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVydGljYWxGaWVsZE9m
VmlldyB0byBudWxsLgorICAgIC8vICAgNS4gRWxzZSBpbml0aWFsaXplIHN0YXRl4oCZcyBpbmxp
bmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHRvIFBJICogMC41LgorICAgIC8vIEZJWE1FOiAiaW1tZXJz
aXZlIHNlc3Npb24iIHN1cHBvcnQKKyAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbik7CisgICAgT3B0
aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHsgcGlPdmVyVHdvRG91Ymxl
IH07CisKKyAgICAvLyAgIDYuIEluaXRpYWxpemUgc3RhdGXigJlzIGJhc2VMYXllciB0byBudWxs
LgorICAgIC8vICAgNy4gSW5pdGlhbGl6ZSBzdGF0ZeKAmXMgb3V0cHV0Q29udGV4dCB0byBudWxs
LgorICAgIC8vIChJbml0aWFsaXplZCB0byBudWxsIGJ5IGRlZmF1bHQuKQorCisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgWFJSZW5kZXJTdGF0ZShXVEZNb3ZlKGlubGluZVZlcnRpY2FsRmllbGRP
ZlZpZXcpKSk7Cit9CisKK1hSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUoT3B0aW9uYWw8ZG91
YmxlPiYmIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcpCisgICAgOiBtX2lubGluZVZlcnRpY2Fs
RmllbGRPZlZpZXcoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KSkKK3sKK30KKwor
WFJSZW5kZXJTdGF0ZTo6WFJSZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpCit7
Cit9CisKK1hSUmVuZGVyU3RhdGU6On5YUlJlbmRlclN0YXRlKCkgPSBkZWZhdWx0OworCitkb3Vi
bGUgWFJSZW5kZXJTdGF0ZTo6ZGVwdGhOZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXB0
aC5uZWFyOworfQorCitkb3VibGUgWFJSZW5kZXJTdGF0ZTo6ZGVwdGhGYXIoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2RlcHRoLmZhcjsKK30KKworT3B0aW9uYWw8ZG91YmxlPiBYUlJlbmRlclN0
YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9p
bmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworfQorCitSZWZQdHI8WFJXZWJHTExheWVyPiBYUlJl
bmRlclN0YXRlOjpiYXNlTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2Jhc2VMYXllcjsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSUmVuZGVyU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzYwNWM0MzE3ZjZjYTBmYWY5OWE0NWFl
MGRhNWQ3NTBmOGU0MTMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlJlbmRlclN0YXRlLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgWFJXZWJHTExheWVyOworY2xhc3MgWFJSZW5kZXJTdGF0ZUluaXQ7CitjbGFzcyBYUlNl
c3Npb247CisKK2NsYXNzIFhSUmVuZGVyU3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlJlbmRl
clN0YXRlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJlbmRlclN0YXRlKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmVuZGVyU3RhdGU+IGNyZWF0ZShjb25zdCBYUlNlc3Np
b24mKTsKKyAgICB+WFJSZW5kZXJTdGF0ZSgpOworCisgICAgZG91YmxlIGRlcHRoTmVhcigpIGNv
bnN0OworICAgIGRvdWJsZSBkZXB0aEZhcigpIGNvbnN0OworICAgIE9wdGlvbmFsPGRvdWJsZT4g
aW5saW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0OworICAgIFJlZlB0cjxYUldlYkdMTGF5
ZXI+IGJhc2VMYXllcigpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSUmVuZGVyU3RhdGUoT3B0
aW9uYWw8ZG91YmxlPiYmKTsKKyAgICBYUlJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJ
bml0Jik7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBkb3VibGUgbmVhciB7IDAuMSB9OworICAg
ICAgICBkb3VibGUgZmFyIHsgMTAwMCB9OworICAgIH0gbV9kZXB0aDsKKyAgICBPcHRpb25hbDxk
b3VibGU+IG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBSZWZQdHI8WFJXZWJHTExh
eWVyPiBtX2Jhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3
ODVkNWI1ZTE3NWNlNjRiYzBjNWZjOGY5OTE2MTdhOTMzOWQ3MzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaWRsCkBAIC0wLDAg
KzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUlJlbmRl
clN0YXRlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoTmVhcjsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoRmFyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBkb3VibGU/IGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXc7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTU1ZmQ5OWQ1ZjAy
YmZmMDllODgzMDhlOWY0ZDhkYmU5NmM4YmRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBk
ZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBSZWZQ
dHI8WFJXZWJHTExheWVyPiBiYXNlTGF5ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJ
bml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2NDJlYjk4ODYxMzFmNDcxZjYzYzI2NjdhNDZiMGRmYTE2YzAyODMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVy
U3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorXSBkaWN0aW9uYXJ5
IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBk
ZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBYUldl
YkdMTGF5ZXI/IGJhc2VMYXllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2M0YjdlNjhkMzUyNDBmMjA4
MWUzMTcyMTcxYWI3ZDkyMGY3MzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmNwcApAQCAtMCwwICsxLDExMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJSaWdpZFRyYW5zZm9y
bS5oIgorCisjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgorI2luY2x1ZGUgIlRyYW5zZm9y
bWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGlu
ZXMuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlJpZ2lkVHJhbnNmb3JtKTsK
KworUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IFhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSaWdpZFRyYW5zZm9ybSh7IH0sIHsgfSkpOworfQor
CitFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+IFhSUmlnaWRUcmFuc2Zvcm06OmNy
ZWF0ZShjb25zdCBET01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBET01Qb2ludEluaXQmIG9y
aWVudGF0aW9uKQoreworICAgIC8vIFRoZSBYUlJpZ2lkVHJhbnNmb3JtKHBvc2l0aW9uLCBvcmll
bnRhdGlvbikgY29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMgd2hl
biBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0IHRyYW5zZm9ybSBiZSBhIG5ldyBYUlJpZ2lkVHJh
bnNmb3JtLgorCisgICAgLy8gICAyLiBJZiBwb3NpdGlvbiBpcyBub3QgYSBET01Qb2ludEluaXQg
aW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIHBvc2l0aW9uIHRvIHsgeDogMC4wLCB5OiAwLjAsIHo6
IDAuMCwgdzogMS4wIH0uCisgICAgLy8gICAzLiBJZiBwb3NpdGlvbuKAmXMgdyB2YWx1ZSBpcyBu
b3QgMS4wLCB0aHJvdyBhIFR5cGVFcnJvci4KKyAgICAvLyAgIDQuIEVsc2UgaW5pdGlhbGl6ZSB0
cmFuc2Zvcm3igJlzIHBvc2l0aW9u4oCZcyB4IHZhbHVlIHRvIHBvc2l0aW9u4oCZcyB4IGRpY3Rp
b25hcnkgbWVtYmVyLCB5IHZhbHVlIHRvIHBvc2l0aW9u4oCZcyB5IGRpY3Rpb25hcnkgbWVtYmVy
LCB6IHZhbHVlIHRvIHBvc2l0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVyIGFuZCB3IHRvIDEu
MC4KKyAgICBpZiAocG9zaXRpb24udyAhPSAxLjApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IgfTsKKyAgICBET01Qb2ludEluaXQgcG9zaXRpb25Jbml0IHsgcG9zaXRpb24u
eCwgcG9zaXRpb24ueSwgcG9zaXRpb24ueiwgMSB9OworCisgICAgLy8gICA1LiBJZiBvcmllbnRh
dGlvbiBpcyBub3QgYSBET01Qb2ludEluaXQgaW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIG9yaWVu
dGF0aW9uIHRvIHsgeDogMC4wLCB5OiAwLjAsIHo6IDAuMCwgdzogMS4wIH0uCisgICAgLy8gICA2
LiBFbHNlIGluaXRpYWxpemUgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbuKAmXMgeCB2YWx1ZSB0
byBvcmllbnRhdGlvbuKAmXMgeCBkaWN0aW9uYXJ5IG1lbWJlciwgeSB2YWx1ZSB0byBvcmllbnRh
dGlvbuKAmXMgeSBkaWN0aW9uYXJ5IG1lbWJlciwgeiB2YWx1ZSB0byBvcmllbnRhdGlvbuKAmXMg
eiBkaWN0aW9uYXJ5IG1lbWJlciBhbmQgdyB2YWx1ZSB0byBvcmllbnRhdGlvbuKAmXMgdyBkaWN0
aW9uYXJ5IG1lbWJlci4KKyAgICAvLyAgIDcuIE5vcm1hbGl6ZSB4LCB5LCB6LCBhbmQgdyBjb21w
b25lbnRzIG9mIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb24uCisgICAgRE9NUG9pbnRJbml0IG9y
aWVudGF0aW9uSW5pdCB7IG9yaWVudGF0aW9uLngsIG9yaWVudGF0aW9uLnksIG9yaWVudGF0aW9u
LnosIG9yaWVudGF0aW9uLncgfTsKKyAgICB7CisgICAgICAgIGRvdWJsZSBsZW5ndGggPSBzdGQ6
OnNxcnQob3JpZW50YXRpb25Jbml0LnggKiBvcmllbnRhdGlvbkluaXQueCArIG9yaWVudGF0aW9u
SW5pdC55ICogb3JpZW50YXRpb25Jbml0LnkKKyAgICAgICAgICAgICsgb3JpZW50YXRpb25Jbml0
LnogKiBvcmllbnRhdGlvbkluaXQueiArIG9yaWVudGF0aW9uSW5pdC53ICogb3JpZW50YXRpb25J
bml0LncpOworICAgICAgICBpZiAoV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsPGRvdWJsZT4obGVu
Z3RoLCAwKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgICAgIG9yaWVudGF0aW9uSW5pdD0geworICAgICAgICAgICAgb3JpZW50YXRp
b25Jbml0LnggLyBsZW5ndGgsIG9yaWVudGF0aW9uSW5pdC55IC8gbGVuZ3RoLAorICAgICAgICAg
ICAgb3JpZW50YXRpb25Jbml0LnogLyBsZW5ndGgsIG9yaWVudGF0aW9uSW5pdC53IC8gbGVuZ3Ro
LAorICAgICAgICB9OworICAgIH0KKworICAgIC8vICAgOC4gUmV0dXJuIHRyYW5zZm9ybS4KKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlJpZ2lkVHJhbnNmb3JtKHBvc2l0aW9uSW5pdCwgb3Jp
ZW50YXRpb25Jbml0KSk7Cit9CisKK1hSUmlnaWRUcmFuc2Zvcm06OlhSUmlnaWRUcmFuc2Zvcm0o
Y29uc3QgRE9NUG9pbnRJbml0JiBwb3NpdGlvbiwgY29uc3QgRE9NUG9pbnRJbml0JiBvcmllbnRh
dGlvbikKKyAgICA6IG1fcG9zaXRpb24oRE9NUG9pbnRSZWFkT25seTo6Y3JlYXRlKHBvc2l0aW9u
KSkKKyAgICAsIG1fb3JpZW50YXRpb24oRE9NUG9pbnRSZWFkT25seTo6Y3JlYXRlKG9yaWVudGF0
aW9uKSkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3Blcmx5LCBwZXIgc3BlYy4KKyAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXg7CisgICAgYXV0byBtYXRyaXhEYXRhID0gbWF0
cml4LnRvQ29sdW1uTWFqb3JGbG9hdEFycmF5KCk7CisgICAgbV9tYXRyaXggPSBGbG9hdDMyQXJy
YXk6OmNyZWF0ZShtYXRyaXhEYXRhLmRhdGEoKSwgbWF0cml4RGF0YS5zaXplKCkpOworfQorCitY
UlJpZ2lkVHJhbnNmb3JtOjp+WFJSaWdpZFRyYW5zZm9ybSgpID0gZGVmYXVsdDsKKworY29uc3Qg
RE9NUG9pbnRSZWFkT25seSYgWFJSaWdpZFRyYW5zZm9ybTo6cG9zaXRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX3Bvc2l0aW9uOworfQorCitjb25zdCBET01Qb2ludFJlYWRPbmx5JiBYUlJp
Z2lkVHJhbnNmb3JtOjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZW50
YXRpb247Cit9CisKK1JlZjxGbG9hdDMyQXJyYXk+ICBYUlJpZ2lkVHJhbnNmb3JtOjptYXRyaXgo
KSBjb25zdAoreworICAgIGF1dG8gbWF0cml4ID0gRmxvYXQzMkFycmF5OjpjcmVhdGUoMTYpOwor
ICAgIG1hdHJpeC0+emVyb0ZpbGwoKTsKKyAgICByZXR1cm4gbWF0cml4OworfQorCitSZWY8WFJS
aWdpZFRyYW5zZm9ybT4gWFJSaWdpZFRyYW5zZm9ybTo6aW52ZXJzZSgpIGNvbnN0Cit7CisgICAg
Ly8gRklYTUU6IGltcGxlbWVudCBwcm9wZXJseS4KKyAgICByZXR1cm4gWFJSaWdpZFRyYW5zZm9y
bTo6Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc2Y2Y3
YWZmZGUwMDI1ZWI1NjVkMzg5MGRjMTJhYTI0NTQ3YTgyYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5oCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFeGNlcHRpb25P
ci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVBvaW50SW5pdDsKK2NsYXNzIERPTVBvaW50UmVhZE9u
bHk7CisKK2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxYUlJpZ2lk
VHJhbnNmb3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJpZ2lkVHJhbnNmb3Jt
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOwor
ICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShjb25z
dCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+WFJSaWdpZFRyYW5z
Zm9ybSgpOworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRpb24oKSBjb25zdDsK
KyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNvbnN0OworICAgIFJl
ZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxYUlJpZ2lkVHJhbnNmb3Jt
PiBpbnZlcnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSaWdpZFRyYW5zZm9ybShjb25z
dCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAgIFJlZjxET01Qb2lu
dFJlYWRPbmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX29yaWVu
dGF0aW9uOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJS
aWdpZFRyYW5zZm9ybS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY4M2FiNDE2YmM1ZmNiMzNkZTNlMDE1Yzlj
ZWM3NTQzNzdjNTE2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFsIERPTVBvaW50SW5pdCBw
b3NpdGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0aW9uKSwKKyAgICBDb25zdHJ1
Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10g
aW50ZXJmYWNlIFhSUmlnaWRUcmFuc2Zvcm0geworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seSBwb3NpdGlvbjsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVBvaW50UmVhZE9ubHkgb3JpZW50YXRpb247CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBtYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzYyNTMyZjcxNzBi
MjVlY2Q2MDZlZWJkZWMxMmE1OTM1NzQ1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uLmgiCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlNlc3Npb24pOworCitYUlNlc3Npb246On5Y
UlNlc3Npb24oKSA9IGRlZmF1bHQ7CisKK1hSRW52aXJvbm1lbnRCbGVuZE1vZGUgWFJTZXNzaW9u
OjplbnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW52aXJvbm1l
bnRCbGVuZE1vZGU7Cit9CisKK1hSVmlzaWJpbGl0eVN0YXRlIFhSU2Vzc2lvbjo6dmlzaWJpbGl0
eVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisKK2Nv
bnN0IFhSUmVuZGVyU3RhdGUmIFhSU2Vzc2lvbjo6cmVuZGVyU3RhdGUoKSBjb25zdAoreworICAg
IHJldHVybiAqbV9yZW5kZXJTdGF0ZTsKK30KKworY29uc3QgWFJJbnB1dFNvdXJjZUFycmF5JiBY
UlNlc3Npb246OmlucHV0U291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2lucHV0U291
cmNlczsKK30KKwordm9pZCBYUlNlc3Npb246OnVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVu
ZGVyU3RhdGVJbml0JikKK3sKK30KKwordm9pZCBYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VT
cGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVBy
b21pc2UmJikKK3sKK30KKworaW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJl
ZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJldHVybiAwOworfQorCit2b2lk
IFhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQoreworfQorCit2b2lkIFhSU2Vz
c2lvbjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3QgY2hhciogWFJTZXNzaW9uOjph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlhSU2Vzc2lvbiI7Cit9
CisKK3ZvaWQgWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRi
NmYxYzllYzQ2NTUzNjJkMzMzNjE0MDQ2OGViOTI2MDdmOTMyNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmgKQEAgLTAsMCArMSw5MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRNb2RlLmgiCisjaW5jbHVkZSAi
WFJJbnB1dFNvdXJjZUFycmF5LmgiCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIK
KyNpbmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorI2luY2x1
ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUkZyYW1lUmVxdWVz
dENhbGxiYWNrOworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK2NsYXNzIFhSUmVuZGVyU3RhdGVJ
bml0OworCitjbGFzcyBYUlNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlNlc3Np
b24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlNlc3Npb24pOworcHVibGljOgor
ICAgIHVzaW5nIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPFhSUmVmZXJlbmNlU3BhY2U+PjsKKyAgICB1c2luZyBFbmRQcm9taXNl
ID0gRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+OworCisgICAgdmlydHVhbCB+WFJTZXNzaW9uKCk7
CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFhSU2Vzc2lvbj46OnJlZjsKKyAgICB1c2luZyBSZWZD
b3VudGVkPFhSU2Vzc2lvbj46OmRlcmVmOworCisgICAgWFJFbnZpcm9ubWVudEJsZW5kTW9kZSBl
bnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0OworICAgIFhSVmlzaWJpbGl0eVN0YXRlIHZpc2li
aWxpdHlTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IFhSUmVuZGVyU3RhdGUmIHJlbmRlclN0YXRl
KCkgY29uc3Q7CisgICAgY29uc3QgWFJJbnB1dFNvdXJjZUFycmF5JiBpbnB1dFNvdXJjZXMoKSBj
b25zdDsKKworICAgIHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUlu
aXQmKTsKKyAgICB2b2lkIHJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNw
YWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21pc2UmJik7CisKKyAgICBpbnQgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKTsKKyAgICB2
b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBoYW5kbGUpOworCisgICAgdm9pZCBlbmQoRW5k
UHJvbWlzZSYmKTsKKworICAgIGJvb2wgZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2VuZGVkOyB9
CisKK3Byb3RlY3RlZDoKKyAgICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWFJTZXNz
aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdm9pZCByZWZFdmVu
dFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQo
KSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lk
IHN0b3AoKSBvdmVycmlkZTsKKworICAgIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgbV9lbnZpcm9u
bWVudEJsZW5kTW9kZTsKKyAgICBYUlZpc2liaWxpdHlTdGF0ZSBtX3Zpc2liaWxpdHlTdGF0ZTsK
KyAgICBSZWZQdHI8WFJSZW5kZXJTdGF0ZT4gbV9yZW5kZXJTdGF0ZTsKKyAgICBSZWZQdHI8WFJJ
bnB1dFNvdXJjZUFycmF5PiBtX2lucHV0U291cmNlczsKKyAgICBib29sIG1fZW5kZWQgeyBmYWxz
ZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyM2E1MmY1OTIzYTRmYjhiMTM1YzU5
OGMwNzNjNjMwOTE1OWNlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbi5pZGwKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBBY3RpdmVET01PYmplY3QsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRv
dworXSBpbnRlcmZhY2UgWFJTZXNzaW9uIDogRXZlbnRUYXJnZXQgeworICAgIC8vIEF0dHJpYnV0
ZXMKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJFbnZpcm9ubWVudEJsZW5kTW9kZSBlbnZpcm9u
bWVudEJsZW5kTW9kZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJWaXNpYmlsaXR5U3RhdGUg
dmlzaWJpbGl0eVN0YXRlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJS
ZW5kZXJTdGF0ZSByZW5kZXJTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFhSSW5wdXRTb3VyY2VBcnJheSBpbnB1dFNvdXJjZXM7CisKKyAgICAvLyBNZXRob2RzCisg
ICAgdm9pZCB1cGRhdGVSZW5kZXJTdGF0ZShvcHRpb25hbCBYUlJlbmRlclN0YXRlSW5pdCBzdGF0
ZUluaXQpOworICAgIFtOZXdPYmplY3RdIFByb21pc2U8WFJSZWZlcmVuY2VTcGFjZT4gcmVxdWVz
dFJlZmVyZW5jZVNwYWNlKFhSUmVmZXJlbmNlU3BhY2VUeXBlIHR5cGUpOworCisgICAgbG9uZyBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoWFJGcmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7Cisg
ICAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZShsb25nIGhhbmRsZSk7CisKKyAgICBQcm9taXNl
PHZvaWQ+IGVuZCgpOworCisgICAgLy8gRXZlbnRzCisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbmVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0OworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25pbnB1dHNvdXJjZXNjaGFuZ2U7CisgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnNlbGVjdHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25z
ZWxlY3RlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnZpc2liaWxpdHljaGFuZ2U7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25F
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMTU5ZGFiYjZmM2NlNjUzZmEzOTJjZDc2MTcwY2RiN2VhNTQxMTdlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25F
dmVudC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uRXZlbnQuaCIKKworI2luY2x1ZGUgIlhSU2Vzc2lvbi5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUlNlc3Npb25FdmVudD4gWFJTZXNzaW9u
RXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBY
UlNlc3Npb25FdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSU2Vz
c2lvbkV2ZW50OjpYUlNlc3Npb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJ
bml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUs
IGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3Nlc3Npb24oaW5pdGlhbGl6ZXIuc2Vz
c2lvbikKK3sKKyAgICBBU1NFUlQobV9zZXNzaW9uKTsKK30KKworWFJTZXNzaW9uRXZlbnQ6On5Y
UlNlc3Npb25FdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNzaW9uJiBYUlNlc3Npb25F
dmVudDo6c2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX3Nlc3Npb247Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJTZXNzaW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2UxZjllNmExOGUzOTA2MzdmNGI3MDYyYTY3ZWI3
MWJjMGUyNWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25FdmVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFhSU2Vzc2lvbjsKKworY2xhc3MgWFJTZXNzaW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZl
bnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgUmVm
UHRyPFhSU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxYUlNlc3Np
b25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+WFJTZXNzaW9uRXZlbnQoKTsKKworICAg
IGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSU2Vz
c2lvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKwor
ICAgIFJlZlB0cjxYUlNlc3Npb24+IG1fc2Vzc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjY0NDM2NmRmNjEzZWY5MTBjODI1MGYxYjRhMzM5MzI4NmY4N2FhMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
RXZlbnQuaWRsCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitdIGRpY3Rpb25hcnkgWFJT
ZXNzaW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBYUlNlc3Npb24gc2Vz
c2lvbjsKK307CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlv
bmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAg
Q29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFhSU2Vzc2lvbkV2ZW50SW5pdCBldmVudEluaXRE
aWN0KQorXSBpbnRlcmZhY2UgWFJTZXNzaW9uRXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNlc3Npb24gc2Vzc2lvbjsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyYjQ3Y2My
NmE0MTgyNzljNWY5Y2ZlMmZiMWU2MWExNTkwZWMyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEpTQyB7Citj
bGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBYUlNlc3Np
b25Jbml0IHsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVlPiByZXF1aXJlZEZlYXR1cmVzOworICAg
IFZlY3RvcjxKU0M6OkpTVmFsdWU+IG9wdGlvbmFsRmVhdHVyZXM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25J
bml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGM5MjhlOGJiN2U1MTdhNTk5ZjYxNzQwYmFiNTMyZjg0OGU5
NjEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNl
c3Npb25Jbml0LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSCitdIGRpY3Rpb25hcnkgWFJTZXNzaW9uSW5pdCB7CisgICAgc2Vx
dWVuY2U8YW55PiByZXF1aXJlZEZlYXR1cmVzOworICAgIHNlcXVlbmNlPGFueT4gb3B0aW9uYWxG
ZWF0dXJlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbk1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9k
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYyMWVjNjU4ZmZiYmJkNzQ5OTliNGI5N2ViODdhNzliOTllY2JiOWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lv
bk1vZGUuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFhS
U2Vzc2lvbk1vZGUgPSBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25Nb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODYxNTUxNzk2ZmNkMDgwZWExNzkwZjVlZTM2MzhkNDMyMmQxODQwMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
TW9kZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJYUgorXSBlbnVtIFhSU2Vzc2lvbk1vZGUgeworICAgICJpbmxpbmUiLAorICAg
ICJpbW1lcnNpdmUtdnIiLAorICAgICJpbW1lcnNpdmUtYXIiCit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRhNzAwODlhNTM4MmIyMmVkOGZm
NTM1MmM1NDFkOGRjYjZjYTdjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoWFJTcGFjZSk7CisKK1hSU3BhY2U6OlhSU3BhY2UoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
KCZjb250ZXh0KQoreworfQorCitYUlNwYWNlOjp+WFJTcGFjZSgpID0gZGVmYXVsdDsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MTU5MTM5Mjk2NjM3NzhiMGI3YTQ0ZmNlZTBkNDIxZjFmYzQ3MjRkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmgKQEAg
LTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIFhSU3BhY2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxYUlNwYWNlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChY
UlNwYWNlKTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUlNwYWNlKCk7CisKKyAgICB1c2luZyBS
ZWZDb3VudGVkPFhSU3BhY2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNwYWNlPjo6
ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAgICBYUlNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworcHJpdmF0ZToK
KyAgICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWFJTcGFjZUV2ZW50VGFyZ2V0SW50
ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNwYWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWExZjhhMDFmMDVkMDUyMzk4ZDcyNDI1NWFjNWUyNWFm
MjI5MTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNwYWNlLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFhSU3BhY2UgOiBFdmVudFRhcmdldCB7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSU3lzdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTc0NTNlMzY0ODBlZTRkNGNl
MmIzN2FjYjFmOTkwMTI5Nzc1YzEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTeXN0ZW0uaCIKKworI2luY2x1ZGUg
IlBsYXRmb3JtWFIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlN5c3RlbSk7
CisKK1JlZjxYUlN5c3RlbT4gWFJTeXN0ZW06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhS
U3lzdGVtKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKK30KKworWFJTeXN0ZW06OlhSU3lzdGVt
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7Cit9CisKK1hSU3lzdGVt
Ojp+WFJTeXN0ZW0oKSA9IGRlZmF1bHQ7CisKK3ZvaWQgWFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBv
cnRlZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlJiYpCit7CisgICAg
Ly8gV2hlbiB0aGUgc3VwcG9ydHNTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2VkLCBpdCBN
VVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gRW5zdXJlIGFuIFhSIGRldmljZSBpcyBzZWxl
Y3RlZC4KKyAgICAvLyAgIDIuIElmIHRoZSBYUiBkZXZpY2UgaXMgbnVsbCwgcmVqZWN0IHByb21p
c2Ugd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KKyAgICAvLyAgIDMuIElmIHRoZSBYUiBkZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRl
ZCBtb2RlcyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90
U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAg
Ly8gICA0LiBFbHNlIHJlc29sdmUgcHJvbWlzZS4KK30KKwordm9pZCBYUlN5c3RlbTo6cmVxdWVz
dFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNz
aW9uUHJvbWlzZSYmKQoreworICAgIFBsYXRmb3JtWFI6Okluc3RhbmNlOjpzaW5nbGV0b24oKTsK
KworICAgIC8vIFdoZW4gdGhlIHJlcXVlc3RTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2Vk
LCB0aGUgdXNlciBhZ2VudCBNVVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gTGV0IGltbWVy
c2l2ZSBiZSB0cnVlIGlmIG1vZGUgaXMgImltbWVyc2l2ZS12ciIgb3IgImltbWVyc2l2ZS1hciIs
IGFuZCBmYWxzZSBvdGhlcndpc2UuCisgICAgLy8gICAyLiBJZiBpbW1lcnNpdmUgaXMgdHJ1ZToK
KyAgICAvLyAgICAgMS4gSWYgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiBpcyB0cnVlIG9yIGFj
dGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBpcyBub3QgbnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgLy8gICAgIDIuIEVsc2Ugc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gYmUg
dHJ1ZS4KKyAgICAvLyAgIDMuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAg
Ly8gICA0LiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggbnVs
bC4KKyAgICAvLyAgIDUuIEVsc2UgaWYgdGhlIFhSIGRldmljZSdzIGxpc3Qgb2Ygc3VwcG9ydGVk
IG1vZGVzIGRvZXMgbm90IGNvbnRhaW4gbW9kZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RT
dXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLgorICAgIC8vICAgNi4gRWxzZSBJZiBpbW1lcnNp
dmUgaXMgdHJ1ZSBhbmQgdGhlIGFsZ29yaXRobSBpcyBub3QgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0
aXZhdGlvbiwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJTZWN1cml0eUVycm9yIiBET01FeGNlcHRp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNy4gSWYgcHJvbWlzZSB3YXMgcmVq
ZWN0ZWQgYW5kIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lv
biB0byBmYWxzZS4KKyAgICAvLyAgIDguIElmIHByb21pc2Ugd2FzIHJlamVjdGVkLCBhYm9ydCB0
aGVzZSBzdGVwcy4KKyAgICAvLyAgIDkuIExldCBzZXNzaW9uIGJlIGEgbmV3IFhSU2Vzc2lvbiBv
YmplY3QuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgc2Vzc2lvbiB3aXRoIHNlc3Npb24g
YW5kIG1vZGUuCisgICAgLy8gICAxMS4gSWYgaW1tZXJzaXZlIGlzIHRydWUsIHNldCB0aGUgYWN0
aXZlIGltbWVyc2l2ZSBzZXNzaW9uIHRvIHNlc3Npb24sIGFuZCBzZXQgcGVuZGluZyBpbW1lcnNp
dmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAgIDEyLiBFbHNlIGFwcGVuZCBzZXNzaW9uIHRv
IHRoZSBsaXN0IG9mIGlubGluZSBzZXNzaW9ucy4KKyAgICAvLyAgIDEzLiBSZXNvbHZlIHByb21p
c2Ugd2l0aCBzZXNzaW9uLgorfQorCitjb25zdCBjaGFyKiBYUlN5c3RlbTo6YWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYUlN5c3RlbSI7Cit9CisKK3ZvaWQgWFJT
eXN0ZW06OnN0b3AoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVlYmYyZWUxZjIxZDdkYmZj
ZDA4ZGZjNTVjYmIwOWM5MmMxMWQxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1
ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJTZXNzaW9uSW5p
dDsKKworY2xhc3MgWFJTeXN0ZW0gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlN5c3RlbT4s
IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSU3lzdGVtKTsKK3B1YmxpYzoKKyAgICB1
c2luZyBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEJv
b2xlYW4+OworICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8WFJTZXNzaW9uPj47CisKKyAgICBzdGF0aWMgUmVmPFhSU3lzdGVt
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwgflhSU3lzdGVt
KCk7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFhSU3lzdGVtPjo6cmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8WFJTeXN0ZW0+OjpkZXJlZjsKKworICAgIHZvaWQgaXNTZXNzaW9uU3VwcG9ydGVk
KFhSU2Vzc2lvbk1vZGUsIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UmJik7CisgICAgdm9pZCBy
ZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0JiwgUmVxdWVz
dFNlc3Npb25Qcm9taXNlJiYpOworCitwcm90ZWN0ZWQ6CisgICAgWFJTeXN0ZW0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldElu
dGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhS
U3lzdGVtRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdm9pZCByZWZF
dmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIHN0b3AoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5YTQxY2U3
NTk1NzQyMzQ0ZDVhYjc4MTliNjE5YzhmYWZiOGU3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQWN0aXZlRE9N
T2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJm
YWNlIFhSU3lzdGVtIDogRXZlbnRUYXJnZXQgeworICAgIC8vIE1ldGhvZHMKKyAgICBQcm9taXNl
PHZvaWQ+IGlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlIG1vZGUpOworICAgIFtOZXdP
YmplY3RdIFByb21pc2U8WFJTZXNzaW9uPiByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlIG1v
ZGUsIG9wdGlvbmFsIFhSU2Vzc2lvbkluaXQgb3B0aW9ucyk7CisKKyAgICAvLyBFdmVudHMKKyAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGV2aWNlY2hhbmdlOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNTVm
MTUyMDFjYTkxNjg0ZGM2YjEwNTYwMGJiZTIwNmU5ZjYxZDUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBjbGFzcyBYUlRhcmdldFJheU1vZGUgeworICAgIEdhemUsCisgICAgVHJhY2tlZFBv
aW50ZXIsCisgICAgU2NyZWVuLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhhZDljMDFhNzYzYzM4NmY4NWZkY2QwYjRjNDBlMTRmOTQwYTZkNDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwK
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUgorXSBlbnVtIFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgImdhemUiLAorICAgICJ0cmFja2Vk
LXBvaW50ZXIiLAorICAgICJzY3JlZW4iCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMjI4NzZjYWUyNjliNmNlZGM1YzQzN2RjNWE4Mzc2MzQ2
YmU2NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
Vmlldy5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiWFJWaWV3LmgiCisKKyNpbmNsdWRlICJYUlJpZ2lkVHJhbnNmb3JtLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChYUlZpZXcpOworCitSZWY8WFJWaWV3PiBYUlZpZXc6OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJWaWV3KTsKK30KKworWFJWaWV3
OjpYUlZpZXcoKQorICAgIDogbV9leWUoWFJFeWU6OkxlZnQpCisgICAgLCBtX3Byb2plY3Rpb25N
YXRyaXgoRmxvYXQzMkFycmF5OjpjcmVhdGUoMCkpCisgICAgLCBtX3RyYW5zZm9ybShYUlJpZ2lk
VHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sKK30KKworWFJWaWV3Ojp+WFJWaWV3KCkgPSBkZWZhdWx0
OworCitYUkV5ZSBYUlZpZXc6OmV5ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZXllOworfQor
Citjb25zdCBGbG9hdDMyQXJyYXkmIFhSVmlldzo6cHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJvamVjdGlvbk1hdHJpeDsKK30KKworY29uc3QgWFJSaWdpZFRyYW5z
Zm9ybSYgWFJWaWV3Ojp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9y
bTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBiZjM1OTNlMWY5ZTU5MDJlY2VlYTM4MmFkMDhkMWU0NjAx
MGMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJW
aWV3LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlhSRXllLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhS
UmlnaWRUcmFuc2Zvcm07CisKK2NsYXNzIFhSVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPFhSVmll
dz4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJWaWV3KTsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFhSVmlldz4gY3JlYXRlKCk7CisgICAgflhSVmlldygpOworCisgICAgWFJFeWUg
ZXllKCkgY29uc3Q7CisgICAgY29uc3QgRmxvYXQzMkFycmF5JiBwcm9qZWN0aW9uTWF0cml4KCkg
Y29uc3Q7CisgICAgY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3JtKCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgWFJWaWV3KCk7CisKKyAgICBYUkV5ZSBtX2V5ZTsKKyAgICBSZWY8Rmxv
YXQzMkFycmF5PiBtX3Byb2plY3Rpb25NYXRyaXg7CisgICAgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+
IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1NmM3ZjU2ODQxYTE0YWZjZTBm
OTMxN2FmODA4NjA0ZjdiMzM5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSVmlldy5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNl
IFhSVmlldyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRXllIGV5ZTsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHByb2plY3Rpb25NYXRyaXg7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzdmYmYyYTc2MDBiZmM3MGFiNjJjNTQxZjZiMzA4YTI3MWQxMjMxMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJYUlZpZXdlclBvc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJWaWV3ZXJQ
b3NlPiBYUlZpZXdlclBvc2U6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
WFJWaWV3ZXJQb3NlKTsKK30KKworWFJWaWV3ZXJQb3NlOjpYUlZpZXdlclBvc2UoKSA9IGRlZmF1
bHQ7CitYUlZpZXdlclBvc2U6On5YUlZpZXdlclBvc2UoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFZl
Y3RvcjxSZWY8WFJWaWV3Pj4mIFhSVmlld2VyUG9zZTo6dmlld3MoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ZpZXdzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjk0MGMyZjE1MjNm
ZGQxNTE3YWE1OTdmNGQ5ZDY0ZTg2OWY4NTUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJQb3NlLmgiCisjaW5jbHVkZSAi
WFJWaWV3LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlZpZXdlclBvc2UgOiBwdWJsaWMgWFJQ
b3NlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSVmlld2VyUG9zZT4gY3JlYXRlKCk7Cisg
ICAgflhSVmlld2VyUG9zZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxYUlZpZXc+PiYgdmll
d3MoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXdlclBvc2UoKTsKKworICAgIFZlY3Rv
cjxSZWY8WFJWaWV3Pj4gbV92aWV3czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNDNjMGE5M2VmYTNhZDExODlkYjcyMzNlOGYyZjdjMTk5YmQwMWRhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsCkBAIC0w
LDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUlZpZXdlclBvc2UgOiBYUlBvc2UgeworICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8WFJWaWV3PiB2aWV3
czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3Bv
cnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41OWYwZDg5ZTczNzQ2NWZiNTA5NmQ3Mzg1MTdjNzkyNGJkM2NkYWQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmNwcApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJYUlZpZXdwb3J0LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlZp
ZXdwb3J0KTsKKworUmVmPFhSVmlld3BvcnQ+IFhSVmlld3BvcnQ6OmNyZWF0ZSgpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJWaWV3cG9ydCk7Cit9CisKK1hSVmlld3BvcnQ6OlhSVmll
d3BvcnQoKSA9IGRlZmF1bHQ7CisKK2ludCBYUlZpZXdwb3J0Ojp4KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworaW50IFhSVmlld3BvcnQ6OnkoKSBjb25zdAoreworICAgIHJldHVybiAw
OworfQorCitpbnQgWFJWaWV3cG9ydDo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCitpbnQgWFJWaWV3cG9ydDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
Vmlld3BvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjE3YmRhMTI4MmM4YmRkZGE0MjhkMzQyMjg2Zjg1MDA3
ZTljM2VkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlZpZXdwb3J0LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBY
UlZpZXdwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8WFJWaWV3cG9ydD4geworICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoWFJWaWV3cG9ydCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxYUlZp
ZXdwb3J0PiBjcmVhdGUoKTsKKworICAgIGludCB4KCkgY29uc3Q7CisgICAgaW50IHkoKSBjb25z
dDsKKyAgICBpbnQgd2lkdGgoKSBjb25zdDsKKyAgICBpbnQgaGVpZ2h0KCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgWFJWaWV3cG9ydCgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTY2YzY0MDhjZWI2Y2Y5NjMxNmExNWY3MTY2YmQ0YmNjMTcyOGI4YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5pZGwKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSVmlld3BvcnQgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWln
aHQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2li
aWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlT
dGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRjMmI2MGVkYmM5MjAxM2MzNzc5OTFjYTQ2NDM4N2FiY2E3MGJi
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlz
aWJpbGl0eVN0YXRlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVmlzaWJpbGl0eVN0YXRl
IHsKKyAgICBWaXNpYmxlLAorICAgIFZpc2libGVCbHVycmVkLAorICAgIEhpZGRlbgorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzdmZWNiYzZlMjRlYzE1MjFj
YmI4MmIxNWM3NTFjOTdiOWZmOGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUgorXSBlbnVtIFhSVmlzaWJp
bGl0eVN0YXRlIHsKKyAgICAidmlzaWJsZSIsCisgICAgInZpc2libGUtYmx1cnJlZCIsCisgICAg
ImhpZGRlbiIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
V2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXll
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTgyMGI2ZDRmZDBlYjNhYWY0YWNlZDY2ZGI0NmZmZDMyMWIxZGU0
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJH
TExheWVyLmNwcApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiWFJXZWJHTExheWVyLmgiCisKKyNpbmNsdWRlICJXZWJHTEZyYW1l
YnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaWYgRU5BQkxF
KFdFQkdMMikKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCisjZW5kaWYKKyNp
bmNsdWRlICJYUlNlc3Npb24uaCIKKyNpbmNsdWRlICJYUlZpZXdwb3J0LmgiCisjaW5jbHVkZSAi
WFJXZWJHTExheWVySW5pdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V4Y2VwdGlvbk9y
PFJlZjxYUldlYkdMTGF5ZXI+PiBYUldlYkdMTGF5ZXI6OmNyZWF0ZShjb25zdCBYUlNlc3Npb24m
IHNlc3Npb24sIFhSUmVuZGVyaW5nQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0IFhSV2ViR0xMYXll
ckluaXQmIGluaXQpCit7CisgICAgLy8gVGhlIFhSV2ViR0xMYXllcihzZXNzaW9uLCBjb250ZXh0
LCBsYXllckluaXQpIGNvbnN0cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBz
IHdoZW4gaW52b2tlZDoKKyAgICAvLyAgIDEuIExldCBsYXllciBiZSBhIG5ldyBYUldlYkdMTGF5
ZXIKKworICAgIC8vICAgMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUgaXMgdHJ1ZSwgdGhy
b3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChz
ZXNzaW9uLmVuZGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OworCisgICAgLy8gICAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDQuIElmIGNvbnRl
eHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cgYW4gSW52YWxpZFN0
YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1FOiBUT0RPCisKKyAg
ICAvLyAgIDUuIEluaXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29udGV4dC4KKyAgICAv
LyAgIDYuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXllckluaXTigJlzIGFu
dGlhbGlhcyB2YWx1ZS4KKyAgICAvLyAgIDcuIElmIGxheWVySW5pdOKAmXMgaWdub3JlRGVwdGhW
YWx1ZXMgdmFsdWUgaXMgZmFsc2UgYW5kIHRoZSBYUiBDb21wb3NpdG9yIHdpbGwgbWFrZSB1c2Ug
b2YgZGVwdGggdmFsdWVzLCBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVEZXB0aFZhbHVlcyB0
byBmYWxzZS4KKyAgICAvLyAgIDguIEVsc2UgSW5pdGlhbGl6ZSBsYXllcuKAmXMgaWdub3JlRGVw
dGhWYWx1ZXMgdG8gdHJ1ZQorICAgIC8vICAgOS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgZnJhbWVi
dWZmZXIgdG8gYSBuZXcgb3BhcXVlIGZyYW1lYnVmZmVyIGNyZWF0ZWQgd2l0aCBjb250ZXh0Lgor
ICAgIC8vICAgMTAuIEluaXRpYWxpemUgdGhlIGxheWVy4oCZcyBzd2FwIGNoYWluLgorICAgIC8v
ICAgMTEuIElmIGxheWVy4oCZcyBzd2FwIGNoYWluIHdhcyB1bmFibGUgdG8gYmUgY3JlYXRlZCBm
b3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0
ZXBzLgorICAgIC8vIEZJWE1FOiBUT0RPCisKKyAgICAvLyAgIDEyLiBSZXR1cm4gbGF5ZXIuCisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJXZWJHTExheWVyKHNlc3Npb24sIFdURk1vdmUoY29u
dGV4dCksIGluaXQpKTsKK30KKworWFJXZWJHTExheWVyOjpYUldlYkdMTGF5ZXIoY29uc3QgWFJT
ZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJXZWJHTExheWVy
SW5pdCYgaW5pdCkKKyAgICA6IG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQorICAgICwgbV9h
bnRpYWxpYXMoaW5pdC5hbnRpYWxpYXMpCisgICAgLCBtX2lnbm9yZURlcHRoVmFsdWVzKGluaXQu
aWdub3JlRGVwdGhWYWx1ZXMpCit7CisgICAgbV9mcmFtZWJ1ZmZlci5vYmplY3QgPSBXVEY6OnN3
aXRjaE9uKG1fY29udGV4dCwKKyAgICAgICAgW10oY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJHTEZy
YW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqY29udGV4
dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0sCisjaWYgRU5B
QkxFKFdFQkdMMikKKyAgICAgICAgW10oY29uc3QgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ+JiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4gZnJhbWVCdWZmZXIgPSBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUoKmNvbnRleHQpOwor
ICAgICAgICAgICAgcmV0dXJuIGZyYW1lQnVmZmVyOworICAgICAgICB9LAorI2VuZGlmCisgICAg
ICAgIFtdKFdURjo6TW9ub3N0YXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgKTsKK30KKwor
WFJXZWJHTExheWVyOjp+WFJXZWJHTExheWVyKCkgPSBkZWZhdWx0OworCitib29sIFhSV2ViR0xM
YXllcjo6YW50aWFsaWFzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hbnRpYWxpYXM7Cit9CisK
K2Jvb2wgWFJXZWJHTExheWVyOjppZ25vcmVEZXB0aFZhbHVlcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1faWdub3JlRGVwdGhWYWx1ZXM7Cit9CisKK2NvbnN0IFdlYkdMRnJhbWVidWZmZXImIFhS
V2ViR0xMYXllcjo6ZnJhbWVidWZmZXIoKSBjb25zdAoreworICAgIHJldHVybiAqbV9mcmFtZWJ1
ZmZlci5vYmplY3Q7Cit9CisKK3Vuc2lnbmVkIFhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0
aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIud2lkdGg7Cit9CisKK3Vuc2ln
bmVkIFhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2ZyYW1lYnVmZmVyLmhlaWdodDsKK30KKworUmVmUHRyPFhSVmlld3BvcnQ+IFhSV2ViR0xM
YXllcjo6Z2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3JikKK3sKKyAgICByZXR1cm4geyB9OworfQor
Citkb3VibGUgWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKGNv
bnN0IFhSU2Vzc2lvbiYpCit7CisgICAgcmV0dXJuIDEuMDsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdM
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjg4MmJmNGRkODc2NmE2OWU5MGU0NGM5NDE2Yzc2NmFiODVhMjUzNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmgK
QEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdlYkdMRnJhbWVidWZmZXI7CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7Cisj
aWYgRU5BQkxFKFdFQkdMMikKK2NsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7CisjZW5kaWYK
K2NsYXNzIFhSU2Vzc2lvbjsKK2NsYXNzIFhSVmlldzsKK2NsYXNzIFhSVmlld3BvcnQ7CitjbGFz
cyBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBYUldlYkdMTGF5ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2luZyBYUlJlbmRlcmlu
Z0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+LCAKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBSZWZQdHI8V2ViR0wyUmVuZGVy
aW5nQ29udGV4dD4sCisjZW5kaWYKKyAgICAgICAgV1RGOjpNb25vc3RhdGUKKyAgICA+OworCisg
ICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxYUldlYkdMTGF5ZXI+PiBjcmVhdGUoY29uc3QgWFJT
ZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsK
KyAgICB+WFJXZWJHTExheWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygpIGNvbnN0OworICAg
IGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0IFdlYkdMRnJhbWVi
dWZmZXImIGZyYW1lYnVmZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVidWZmZXJXaWR0
aCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkgY29uc3Q7CisKKyAg
ICBSZWZQdHI8WFJWaWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3Jik7CisKKyAgICBz
dGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgWFJTZXNz
aW9uJik7CisKK3ByaXZhdGU6CisgICAgWFJXZWJHTExheWVyKGNvbnN0IFhSU2Vzc2lvbiYsIFhS
UmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7CisKKyAgICBYUlJl
bmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxpYXMgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisKKyAgICBzdHJ1Y3Qg
eworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0OworICAgICAgICB1bnNp
Z25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9OworICAgIH0g
bV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjY0NzU4
YmVlNjExMzI2ZDllN2MwNzdhM2MxOTdlMTYxNWQwM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQpIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0OworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVD
b250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIC8vQ29uc3RydWN0b3IoWFJTZXNzaW9u
IHNlc3Npb24sIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFhSV2Vi
R0xMYXllckluaXQgbGF5ZXJJbml0KSwKKyAgICAvL0NvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRp
b24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJXZWJHTExh
eWVyIHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
YW50aWFsaWFzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlnbm9yZURlcHRoVmFs
dWVzOworCisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHTEZyYW1lYnVm
ZmVyIGZyYW1lYnVmZmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZy
YW1lYnVmZmVyV2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJh
bWVidWZmZXJIZWlnaHQ7CisKKyAgICAvLyBNZXRob2RzCisgICAgWFJWaWV3cG9ydD8gZ2V0Vmll
d3BvcnQoWFJWaWV3IHZpZXcpOworCisgICAgLy8gU3RhdGljIE1ldGhvZHMKKyAgICBzdGF0aWMg
ZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoWFJTZXNzaW9uIHNlc3Npb24p
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExh
eWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGM3MThmZGUyNDVmNjEyMzc3MzNmZjc5OTU2MGFjNDk4MzVjOTBmMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExh
eWVySW5pdC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFhSV2ViR0xMYXllckluaXQgeworICAgIGJv
b2wgYW50aWFsaWFzIHsgdHJ1ZSB9OworICAgIGJvb2wgZGVwdGggeyB0cnVlIH07CisgICAgYm9v
bCBzdGVuY2lsIHsgZmFsc2UgfTsKKyAgICBib29sIGFscGhhIHsgdHJ1ZSB9OworICAgIGJvb2wg
aWdub3JlRGVwdGhWYWx1ZXMgeyB0cnVlIH07CisgICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVG
YWN0b3IgeyAxLjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRhYTYzNzJkZjk0MGM0MDc2N2U5Nzk4NzYzOGE0ZTIzZTc0MTg1MTkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIKK10gZGljdGlvbmFyeSBYUldlYkdMTGF5ZXJJbml0IHsKKyAgICBib29sZWFuIGFudGlhbGlh
cyA9IHRydWU7CisgICAgYm9vbGVhbiBkZXB0aCA9IHRydWU7CisgICAgYm9vbGVhbiBzdGVuY2ls
ID0gZmFsc2U7CisgICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7CisgICAgYm9vbGVhbiBpZ25vcmVE
ZXB0aFZhbHVlcyA9IGZhbHNlOworICAgIGRvdWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yID0g
MS4wOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggMGQ1OTgyZTFkYzY5ZWI2ODBm
MDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4uZTc1ZWNlZjE0MGFiNWNlZWYxZDBkNmRiYzA2NmUzNWM5
MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTcwLDMgKzcwLDggQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7VVBPV0VS
R0xJQl9JTkNMVURFX0RJUlN9CiAgICAgJHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9CiAp
CisKK2lmIChVU0VfT1BFTlhSKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7
T1BFTlhSX0xJQlJBUklFU30pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVE
RV9ESVJFQ1RPUklFUyAke09QRU5YUl9JTkNMVURFX0RJUlN9KQorZW5kaWYgKCkKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGE3MjFmYmIxYWQ4YTVhYTZiZGEw
OWI2M2IzYTJhOWQ5OTdjOTExMmYuLjBhOTRhOTJlMGE4MTZlZjE2M2ZlNWQwZWI0OWFkMGQ3ZDI2
ZGJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00MTEsNiArNDExLDMxIEBAIE1vZHVsZXMvd2ViZ3B1
L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5jcHAK
IE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5hdmlnYXRvckdQVS5jcHAKIAorI2lmIEVOQUJMRV9XRUJH
TAorCitNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMv
d2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4
ci9YUkZyYW1lLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAg
QG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5jcHAgQG5vLXVuaWZ5
CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93
ZWJ4ci9YUlBvc2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBA
bm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAgQG5vLXVuaWZ5CitNb2R1
bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb24uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAg
QG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93
ZWJ4ci9YUlN5c3RlbS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgQG5v
LXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVz
L3dlYnhyL1hSVmlld3BvcnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXIuY3BwIEBuby11bmlmeQorCisjZW5kaWYKKwogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkBAIC0yMDcxLDYgKzIwOTYsOSBAQCBw
bGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
RGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAog
CitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL3hyL29wZW54
ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKKwogcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKIHBs
dWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKIHBsdWdpbnMvRE9NUGx1Z2luLmNwcApAQCAtMzUx
OCw2ICszNTQ2LDM4IEBAIEpTWFBhdGhOU1Jlc29sdmVyLmNwcAogSlNYUGF0aFJlc3VsdC5jcHAK
IEpTWFNMVFByb2Nlc3Nvci5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitKU1hSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNwcAorSlNYUkV5ZS5j
cHAKK0pTWFJGcmFtZS5jcHAKK0pTWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKK0pTWFJIYW5k
ZWRuZXNzLmNwcAorSlNYUklucHV0U291cmNlLmNwcAorSlNYUklucHV0U291cmNlQXJyYXkuY3Bw
CitKU1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKK0pTWFJQb3NlLmNwcAorSlNYUlJlZmVyZW5jZVNw
YWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hSUmVmZXJlbmNlU3BhY2VU
eXBlLmNwcAorSlNYUlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRlclN0YXRlSW5pdC5jcHAKK0pT
WFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTWFJTZXNzaW9uLmNwcAorSlNYUlNlc3Npb25FdmVudC5j
cHAKK0pTWFJTZXNzaW9uTW9kZS5jcHAKK0pTWFJTcGFjZS5jcHAKK0pTWFJTeXN0ZW0uY3BwCitK
U1hSVGFyZ2V0UmF5TW9kZS5jcHAKK0pTWFJWaWV3LmNwcAorSlNYUlZpZXdlclBvc2UuY3BwCitK
U1hSVmlld3BvcnQuY3BwCitKU1hSV2ViR0xMYXllci5jcHAKK0pTWFJXZWJHTExheWVySW5pdC5j
cHAKKworI2VuZGlmCisKICNpZiBFTkFCTEVfR0FNRVBBRAogCiBKU0dhbWVwYWQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvSURMVHlwZXMuaAppbmRleCAzMDViY2Y1MTQ0ZTAyZTM2MWU1ZDMyZjA0NzU0
MTVlNThiODY1ZmYzLi45NGYzMTY1ZTFmMjdiYTAyY2E5ZDZiMzIyNDJjZDMxMzRlYjEzMmI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKQEAgLTYyLDYgKzYyLDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KIHN0cnVjdCBJRExUeXBlIHsKICAgICB1c2luZyBJbXBsZW1lbnRhdGlvblR5
cGUgPSBUOwogICAgIHVzaW5nIFN0b3JhZ2VUeXBlID0gVDsKKyAgICB1c2luZyBTZXF1ZW5jZVN0
b3JhZ2VUeXBlID0gVDsKIAogICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBUOwogICAgIHVzaW5n
IE51bGxhYmxlUGFyYW1ldGVyVHlwZSA9IE9wdGlvbmFsPEltcGxlbWVudGF0aW9uVHlwZT47CkBA
IC04Miw2ICs4Myw3IEBAIHN0cnVjdCBJRExVbnN1cHBvcnRlZFR5cGUgOiBJRExUeXBlPHZvaWQ+
IHsgfTsKIHN0cnVjdCBJRExOdWxsIDogSURMVHlwZTxzdGQ6Om51bGxwdHJfdD4geyB9OwogCiBz
dHJ1Y3QgSURMQW55IDogSURMVHlwZTxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiB7CisgICAg
dXNpbmcgU2VxdWVuY2VTdG9yYWdlVHlwZSA9IEpTQzo6SlNWYWx1ZTsKICAgICB1c2luZyBQYXJh
bWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIE51bGxhYmxlUGFyYW1ldGVyVHlw
ZSA9IEpTQzo6SlNWYWx1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAppbmRleCBjNDlkZDkzOGZjZTI3MTY1Zjc0N2U1OGZlMDhh
NTUzZGJiZmRmNWMyLi44NmY3ZjI3NmZjMDhhZTA3YzAxMDAwMjIyZDM1OWYwZWZlYjVhZWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5j
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5j
ZXMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgRGV0YWlsIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSURMVHlwZT4KIHN0cnVjdCBHZW5lcmljU2VxdWVuY2VDb252ZXJ0ZXIgewotICAgIHVz
aW5nIFJldHVyblR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6SW1wbGVtZW50YXRpb25U
eXBlPjsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gVmVjdG9yPHR5cGVuYW1lIElETFR5cGU6OlNl
cXVlbmNlU3RvcmFnZVR5cGU+OwogCiAgICAgc3RhdGljIFJldHVyblR5cGUgY29udmVydChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTT2JqZWN0KiBvYmpl
Y3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oCmluZGV4IDQ0ZDUwYjIwN2M1MzhhMTk3OTJiNGYzMjI2YWZlNjUyODc3ODcyMDku
LjE4ODJhOWVmZmUyNDBjNDU5YmQ1ZDM0MjYxN2EwY2Q5MzNjMmQ4ODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzNSw2ICsy
MzUsMjUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFdvcmtsZXRHbG9iYWxTY29w
ZSkgXAogICAgIG1hY3JvKFdyaXRhYmxlU3RyZWFtKSBcCiAgICAgbWFjcm8oWE1MSHR0cFJlcXVl
c3QpIFwKKyAgICBtYWNybyhYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSkgXAorICAgIG1hY3JvKFhS
RnJhbWUpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlKSBcCisgICAgbWFjcm8oWFJJbnB1dFNv
dXJjZUFycmF5KSBcCisgICAgbWFjcm8oWFJJbnB1dFNvdXJjZUV2ZW50KSBcCisgICAgbWFjcm8o
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCkgXAorICAgIG1hY3JvKFhSUG9zZSkgXAorICAgIG1h
Y3JvKFhSUmVmZXJlbmNlU3BhY2UpIFwKKyAgICBtYWNybyhYUlJlZmVyZW5jZVNwYWNlRXZlbnQp
IFwKKyAgICBtYWNybyhYUlJlbmRlclN0YXRlKSBcCisgICAgbWFjcm8oWFJSaWdpZFRyYW5zZm9y
bSkgXAorICAgIG1hY3JvKFhSU2Vzc2lvbikgXAorICAgIG1hY3JvKFhSU2Vzc2lvbkV2ZW50KSBc
CisgICAgbWFjcm8oWFJTcGFjZSkgXAorICAgIG1hY3JvKFhSU3lzdGVtKSBcCisgICAgbWFjcm8o
WFJWaWV3KSBcCisgICAgbWFjcm8oWFJWaWV3ZXJQb3NlKSBcCisgICAgbWFjcm8oWFJWaWV3cG9y
dCkgXAorICAgIG1hY3JvKFhSV2ViR0xMYXllcikgXAogICAgIG1hY3JvKGFwcGVuZEZyb21KUykg
XAogICAgIG1hY3JvKGFzc29jaWF0ZWRSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyKSBcCiAg
ICAgbWFjcm8oYXV0b0FsbG9jYXRlQ2h1bmtTaXplKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApp
bmRleCBkNDk2MGI5Y2Y3NTFmNDExNDIyYjY3MDg0MWEwNWI4YmQyYzcxYzI4Li5mOGMxZDM1YWZj
ZGEzOWQzNGE2ZWVhNzM1N2NjOGMzNDhiY2FkZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
QEAgLTE0OCw2ICsxNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oaWNlZ2F0
aGVyaW5nc3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyhpbmFjdGl2ZSkgXAogICAgIG1hY3JvKGlu
cHV0KSBcCisgICAgbWFjcm8oaW5wdXRzb3VyY2VzY2hhbmdlKSBcCiAgICAgbWFjcm8oaW5zdGFs
bCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKICAgICBtYWNybyhrZXlkb3duKSBcCkBAIC0yMzEs
NiArMjMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHNlZWtlZCkgXAogICAg
IG1hY3JvKHNlZWtpbmcpIFwKICAgICBtYWNybyhzZWxlY3QpIFwKKyAgICBtYWNybyhzZWxlY3Rl
bmQpIFwKICAgICBtYWNybyhzZWxlY3Rpb25jaGFuZ2UpIFwKICAgICBtYWNybyhzZWxlY3RzdGFy
dCkgXAogICAgIG1hY3JvKHNoaXBwaW5nYWRkcmVzc2NoYW5nZSkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5pbgppbmRleCAxNTdmMzMxYzFiYTczYzEwZDVkMzM0OTZhZDI1ZmU2NTNhN2M1MWEyLi5j
NzkzZTNmNjYyYzZjM2VkOGVjNTUyZWEzODNhYzk2ZmM5ZmEwOTgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbgpAQCAtODUsMyArODUsNyBAQCBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25kaXRp
b25hbD1FTkNSWVBURURfTUVESUEKIFBvaW50ZXJFdmVudCBjb25kaXRpb25hbD1QT0lOVEVSX0VW
RU5UUwogR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9V0VCR1BVCiBFbnRlclBp
Y3R1cmVJblBpY3R1cmVFdmVudCBjb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJCitY
UklucHV0U291cmNlRXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKK1hSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKK1hSUmVmZXJlbmNlU3BhY2VFdmVudCBjb25kaXRpb25h
bD1XRUJHTAorWFJTZXNzaW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDgxZTdjYzlmMGI3NjUwNTYyYWFiZmVmZTA1
YTVhM2FkMWJiYmI4ZmYuLmViMGFlMDA2NjgzYTg3ZGI3ZjNiODRjNTVkMTQwYTQ3OTdiODNiNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNTgsNCArNTgs
NyBAQCBXb3JrZXIKIFdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1DU1NfUEFJTlRJTkdf
QVBJCiBYTUxIdHRwUmVxdWVzdAogWE1MSHR0cFJlcXVlc3RVcGxvYWQKK1hSU2Vzc2lvbiBjb25k
aXRpb25hbD1XRUJHTAorWFJTcGFjZSBjb25kaXRpb25hbD1XRUJHTAorWFJTeXN0ZW0gY29uZGl0
aW9uYWw9V0VCR0wKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaAppbmRleCBhYTI5YjgzNTVmYjU4ZTEzMTExNDA0NTE2YzQwNjcwMTM3OGExYjIwLi44OGIy
ZGNkN2E2YWI2ZDY0OTQ2NDZmMzNiZTcxMjc4NTU2MDc3YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTM4LDYgKzEzOCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQp
IHsgbV9pbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBp
bnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JBZGRp
dGlvbnNFbmFibGVkOyB9CiAKKyAgICB2b2lkIHNldFdlYlhSRW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBtX3dlYlhSRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgd2ViWFJFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV93ZWJYUkVuYWJsZWQ7IH0KKwogICAgIHZvaWQgc2V0QWNjZXNz
aWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2FjY2Vzc2liaWxp
dHlPYmplY3RNb2RlbEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGFjY2Vzc2liaWxp
dHlPYmplY3RNb2RlbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlPYmpl
Y3RNb2RlbEVuYWJsZWQ7IH0KIApAQCAtNDQxLDYgKzQ0NCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzV2ViU29ja2V0RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZmV0Y2hBUElLZWVw
QWxpdmVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5zcGVjdG9yQWRkaXRpb25zRW5h
YmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3dlYlhSRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2FjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9hcmlhUmVmbGVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2l0cERlYnVn
TW9kZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9Q
bGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE3MjY4ZWU2NzdhMzc5YTZiZjU1MTcwYjk5MDRmMzNiYmU3NzFhZjgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNw
cApAQCAtMCwwICsxLDIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSwgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUwMjkzMDJiNjA5MDkyZThk
N2Q2MzI5M2UyMGJjMTFiMzI3YmM1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG1lbW9yeT4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgUGxhdGZvcm1YUiB7CisKK2Vu
dW0gY2xhc3MgU2Vzc2lvbk1vZGUgeworICAgIElubGluZSwKKyAgICBJbW1lcnNpdmVWciwKKyAg
ICBJbW1lcnNpdmVBciwKK307CisKK2NsYXNzIERldmljZSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxEZXZpY2U+IHsKK3B1YmxpYzoKK307CisKK2NsYXNzIEluc3RhbmNlIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgSW5zdGFuY2UmIHNpbmdsZXRvbigpOworCitwcml2YXRlOgorICAgIEluc3RhbmNl
KCk7CisgICAgfkluc3RhbmNlKCk7CisKKyAgICBzdHJ1Y3QgSW1wbDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW1wbD4gbV9pbXBsOworfTsKKworfSAvLyBuYW1lc3BhY2UgUGxhdGZvcm1YUgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0MDFjOWI1ZTEzYjdkZjk3YzFiZWEwMWY3ZjdiZTZmMWY0MTllNzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUi5j
cHAKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhLCBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKworI2lmIFVT
RV9PUEVOWFIKKyNpbmNsdWRlIDxvcGVueHIvb3BlbnhyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisjZW5kaWYgLy8gVVNFX09QRU5YUgorCituYW1lc3BhY2UgUGxhdGZvcm1YUiB7CisKKyNp
ZiBVU0VfT1BFTlhSCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIFhyU3RydWN0dXJlVHlwZSBTdHJ1
Y3R1cmVUeXBlPgorVCBjcmVhdGVTdHJ1Y3R1cmUoKQoreworICAgIFQgb2JqZWN0OworICAgIHN0
ZDo6bWVtc2V0KCZvYmplY3QsIDAsIHNpemVvZihUKSk7CisgICAgb2JqZWN0LnR5cGUgPSBTdHJ1
Y3R1cmVUeXBlOworICAgIG9iamVjdC5uZXh0ID0gbnVsbHB0cjsKKyAgICByZXR1cm4gb2JqZWN0
OworfQorCitTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2Ug
aW5zdGFuY2UpCit7CisgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07
CisgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUs
IGJ1ZmZlcik7CisgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQorICAgICAgICByZXR1cm4g
U3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjx1bmtub3duICIsIGludCh2
YWx1ZSksICI+Iik7Cit9CisKKyNkZWZpbmUgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsIGNhbGws
IGluc3RhbmNlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIGlmIChYUl9GQUlMRUQocmVzdWx0KSkgeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiJXMgJXM6ICVzXG4iLCBfX2Z1bmNfXywgY2FsbCwgcmVzdWx0
VG9TdHJpbmcocmVzdWx0LCBpbnN0YW5jZSkudXRmOCgpLmRhdGEoKSk7IFwKKyAgICAgICAgcmV0
dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisKKyNlbmRpZiAvLyBVU0VfT1BFTlhSCisKK3N0cnVj
dCBJbnN0YW5jZTo6SW1wbCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgSW1wbCgpOworICAgIH5JbXBsKCk7CisKKyNpZiBVU0VfT1BFTlhSCisgICAgWHJJbnN0
YW5jZSBtX2luc3RhbmNlIHsgWFJfTlVMTF9IQU5ETEUgfTsKKyNlbmRpZiAvLyBVU0VfT1BFTlhS
Cit9OworCitJbnN0YW5jZTo6SW1wbDo6SW1wbCgpCit7CisjaWYgVVNFX09QRU5YUgorICAgIFdU
RkxvZ0Fsd2F5cygiT3BlblhSOiBpbml0aWFsaXppbmdcbiIpOworCisgICAgWyZdIHsKKyAgICAg
ICAgdWludDMyX3QgcHJvcGVydHlDb3VudE91dHB1dCB7IDAgfTsKKyAgICAgICAgWHJSZXN1bHQg
cmVzdWx0ID0geHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoMCwgJnByb3BlcnR5Q291bnRP
dXRwdXQsIG51bGxwdHIpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51
bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBpZiAo
IXByb3BlcnR5Q291bnRPdXRwdXQpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVt
ZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTogbm8gcHJvcGVydGllc1xuIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8WHJBcGlMYXllclByb3BlcnRp
ZXM+IHByb3BlcnRpZXMocHJvcGVydHlDb3VudE91dHB1dCk7CisgICAgICAgIHJlc3VsdCA9IHhy
RW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRwdXQsIG51bGxwdHIs
IHByb3BlcnRpZXMuZGF0YSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4
ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpOiAlenUgcHJvcGVy
dGllc1xuIiwgcHJvcGVydGllcy5zaXplKCkpOworICAgIH0oKTsKKworICAgIFsmXSB7CisgICAg
ICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAgICAgIFhyUmVzdWx0
IHJlc3VsdCA9IHhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKG51bGxwdHIs
IDAsICZwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZB
SUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpIiwg
bV9pbnN0YW5jZSk7CisKKyAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0cHV0KSB7CisgICAg
ICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0
aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgVmVjdG9yPFhyRXh0ZW5zaW9uUHJvcGVydGllcz4gcHJvcGVydGllcyhwcm9w
ZXJ0eUNvdW50T3V0cHV0LAorICAgICAgICAgICAgW10geworICAgICAgICAgICAgICAgIFhyRXh0
ZW5zaW9uUHJvcGVydGllcyBvYmplY3Q7CisgICAgICAgICAgICAgICAgc3RkOjptZW1zZXQoJm9i
amVjdCwgMCwgc2l6ZW9mKFhyRXh0ZW5zaW9uUHJvcGVydGllcykpOworICAgICAgICAgICAgICAg
IG9iamVjdC50eXBlID0gWFJfVFlQRV9FWFRFTlNJT05fUFJPUEVSVElFUzsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICAgICAgfSgpKTsKKyAgICAgICAgdWludDMyX3Qg
cHJvcGVydHlDb3VudFdyaXR0ZW4geyAwIH07CisgICAgICAgIHJlc3VsdCA9IHhyRW51bWVyYXRl
SW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKG51bGxwdHIsIHByb3BlcnR5Q291bnRPdXRwdXQs
ICZwcm9wZXJ0eUNvdW50V3JpdHRlbiwgcHJvcGVydGllcy5kYXRhKCkpOworICAgICAgICBSRVRV
Uk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0
aWVzKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRl
SW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKCk6ICV6dSBleHRlbnNpb24gcHJvcGVydGllc1xu
IiwgcHJvcGVydGllcy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIHByb3BlcnR5IDogcHJv
cGVydGllcykgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIgIGV4dGVuc2lvbiAnJXMnLCB2
ZXJzaW9uICV1XG4iLAorICAgICAgICAgICAgICAgIHByb3BlcnR5LmV4dGVuc2lvbk5hbWUsIHBy
b3BlcnR5LmV4dGVuc2lvblZlcnNpb24pOworICAgICAgICB9CisgICAgfSgpOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHNfYXBwbGljYXRpb25OYW1lID0gIldlYlhSIChXZWJLaXQpIjsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19hcHBsaWNhdGlvblZlcnNpb24gPSAxOworCisgICAg
eworICAgICAgICBhdXRvIGNyZWF0ZUluZm8gPSBjcmVhdGVTdHJ1Y3R1cmU8WHJJbnN0YW5jZUNy
ZWF0ZUluZm8sIFhSX1RZUEVfSU5TVEFOQ0VfQ1JFQVRFX0lORk8+KCk7CisgICAgICAgIGNyZWF0
ZUluZm8uY3JlYXRlRmxhZ3MgPSAwOworICAgICAgICBzdGQ6Om1lbWNweShjcmVhdGVJbmZvLmFw
cGxpY2F0aW9uSW5mby5hcHBsaWNhdGlvbk5hbWUsIHNfYXBwbGljYXRpb25OYW1lLCBYUl9NQVhf
QVBQTElDQVRJT05fTkFNRV9TSVpFKTsKKyAgICAgICAgY3JlYXRlSW5mby5hcHBsaWNhdGlvbklu
Zm8uYXBpVmVyc2lvbiA9IFhSX0NVUlJFTlRfQVBJX1ZFUlNJT047CisgICAgICAgIGNyZWF0ZUlu
Zm8uYXBwbGljYXRpb25JbmZvLmFwcGxpY2F0aW9uVmVyc2lvbiA9IHNfYXBwbGljYXRpb25WZXJz
aW9uOworICAgICAgICBjcmVhdGVJbmZvLmVuYWJsZWRBcGlMYXllckNvdW50ID0gMDsKKyAgICAg
ICAgY3JlYXRlSW5mby5lbmFibGVkRXh0ZW5zaW9uQ291bnQgPSAwOworCisgICAgICAgIFhySW5z
dGFuY2UgaW5zdGFuY2U7CisgICAgICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyQ3JlYXRlSW5zdGFu
Y2UoJmNyZWF0ZUluZm8sICZpbnN0YW5jZSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVz
dWx0LCAieHJDcmVhdGVJbnN0YW5jZSgpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgbV9pbnN0
YW5jZSA9IGluc3RhbmNlOworICAgICAgICBXVEZMb2dBbHdheXMoInhyQ3JlYXRlSW5zdGFuY2Uo
KTogdXNpbmcgaW5zdGFuY2UgJXBcbiIsIG1faW5zdGFuY2UpOworICAgIH0KKyNlbmRpZiAvLyBV
U0VfT1BFTlhSCit9CisKK0luc3RhbmNlOjpJbXBsOjp+SW1wbCgpCit7Cit9CisKK0luc3RhbmNl
JiBJbnN0YW5jZTo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgSW5zdGFuY2Ugc19pbnN0YW5j
ZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxf
b25jZShzX29uY2VGbGFnLAorICAgICAgICBbJl0geworICAgICAgICAgICAgc19pbnN0YW5jZS5t
X2ltcGwgPSBtYWtlVW5pcXVlPEltcGw+KCk7CisgICAgICAgIH0pOworICAgIHJldHVybiBzX2lu
c3RhbmNlOworfQorCitJbnN0YW5jZTo6SW5zdGFuY2UoKSA9IGRlZmF1bHQ7CitJbnN0YW5jZTo6
fkluc3RhbmNlKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBQbGF0Zm9ybVhSCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA1MDEwNGE5YzliYmNhYTk4
MmZkMmYzZDcxYWEyM2Y1YTNmNmVlOThhLi5mYjQ5NGI4MGRiZWYxYTQxNjY3YTRlN2ZlNzRiYmVm
ODQ4Y2FiMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAg
LTE5NzUsNiArMTk3NSwxNSBAQCBXZWJTaGFyZUZpbGVBUElFbmFibGVkOgogICAgIHdlYmNvcmVC
aW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRh
bAogCitXZWJYUkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQor
ICBodW1hblJlYWRhYmxlTmFtZTogIldlYlhSIERldmljZSBBUEkiCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkFkZHMgc3VwcG9ydCBmb3IgYWNjZXNzaW5nIHZpcnR1YWwgcmVhbGl0eSAo
VlIpIGFuZCBhdWdtZW50ZWQgcmVhbGl0eSAoQVIpIGRldmljZXMsIGluY2x1ZGluZyBzZW5zb3Jz
IGFuZCBoZWFkLW1vdW50ZWQgZGlzcGxheXMsIG9uIHRoZSBXZWIiCisgIGNhdGVnb3J5OiBleHBl
cmltZW50YWwKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKKyAgY29u
ZGl0aW9uOiBFTkFCTEUoV0VCR0wpICYmIFBMQVRGT1JNKFdQRSkKKwogIyBEZXByZWNhdGVkCiAK
IElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZE9wZW5YUi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJiZmRmMDRjMTFlZGQwMzkwMGZjNGMxNDJjZTc2YTY2MTQ4MzBmNmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisj
IC0gVHJ5IHRvIGZpbmQgT3BlblhSLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMK
KyMgIE9QRU5YUl9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLgorIyAgT1BFTlhSX0lOQ0xVREVfRElS
UyAtIHRoZSBXUEUgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgT1BFTlhSX0xJQlJBUklFUyAtIGxp
bmsgdGhlc2UgdG8gdXNlIFdQRS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBD
X09QRU5YUiBRVUlFVCBvcGVueHIpCisKK2ZpbmRfcGF0aChPUEVOWFJfSU5DTFVERV9ESVJTCisg
ICAgTkFNRVMgb3BlbnhyL29wZW54ci5oCisgICAgSElOVFMgJHtQQ19PUEVOWFJfSU5DTFVERURJ
Un0gJHtQQ19PUEVOWFJfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoT1BFTlhSX0xJ
QlJBUklFUworICAgIE5BTUVTIG9wZW54cl9sb2FkZXIKKyAgICBISU5UUyAke1BDX09QRU5YUl9M
SUJESVJ9ICR7UENfT1BFTlhSX0xJQlJBUllfRElSU30KKykKKworbWFya19hc19hZHZhbmNlZChP
UEVOWFJfSU5DTFVERV9ESVJTIE9QRU5YUl9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBhY2th
Z2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3Mo
T3BlblhSIFJFUVVJUkVEX1ZBUlMgT1BFTlhSX0lOQ0xVREVfRElSUyBPUEVOWFJfTElCUkFSSUVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCAxYWJlOTUzMjBkNWE2Mzc4Y2YyYTdkMDlhYTlmZjhk
NGE3YTA0YzRjLi44MGVjOTZjMGNlNzA5OTcyZTI5NGE5ZTFlNDJkMzI4MWJhNzljNmM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc1dQRS5jbWFrZQpAQCAtMTEyLDYgKzExMiwxMCBAQCBXRUJLSVRfT1BUSU9OX0RFUEVO
RChVU0VfRVhURVJOQUxfSE9MRVBVTkNIIEVOQUJMRV9WSURFTykKIAogaW5jbHVkZShHU3RyZWFt
ZXJEZXBlbmRlbmNpZXMpCiAKK1dFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOWFIgIldoZXRo
ZXIgdG8gdXNlIE9wZW5YUiBmb3IgaW1wbGVtZW50aW5nIFdlYlhSIERldmljZSBBUEkuIiBQUklW
QVRFIE9OKQorV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX09QRU5YUiBFTkFCTEVfV0VCR0wpCitX
RUJLSVRfT1BUSU9OX0RFUEVORChVU0VfT1BFTlhSIEVOQUJMRV9XRUJHTDIpCisKIFdFQktJVF9P
UFRJT05fRU5EKCkKIAogaWYgKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQpAQCAtMTcyLDYgKzE3Niwx
MCBAQCBpZiAoRU5BQkxFX1dQRV9RVF9BUEkgT1IgVVNFX1dQRV9WSURFT19QTEFORV9ESVNQTEFZ
X0RNQUJVRikKICAgICBmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8gMS41LjAgUkVRVUlSRUQp
CiBlbmRpZiAoKQogCitpZiAoVVNFX09QRU5YUikKKyAgICBmaW5kX3BhY2thZ2UoT3BlblhSIFJF
UVVJUkVEKQorZW5kaWYgKCkKKwogYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV1BFX189MSkK
IGFkZF9kZWZpbml0aW9ucygtREdFVFRFWFRfUEFDS0FHRT0iV1BFIikKIGFkZF9kZWZpbml0aW9u
cygtREpTQ19HTElCX0FQSV9FTkFCTEVEKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IDhmODUwMTIzNjA0OTIwNTNmZDAzM2FkYzVkZDZkOGRkMWIxN2E5ZGQuLjM5NGZk
MThlMzJjYzc1YjUwMGExYzE3ZTkzOTZjYzJlNGMyYWU5ZTcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0wNiAgU2VyZ2lvIFZp
bGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMs
IHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIE9wZW5YUiBkZXRlY3Rpb24gYW5k
IFVTRV9PUEVOWFIgZGVmaW5lIHRvIGJlIHVzZWQgaW4gdGhlIHNvdXJjZXMuCisgICAgICAgIEl0
IGFsc28gYWRkcyBhIGRlcGVuZGVuY3kgYmV0d2VlbiBVU0VfT1BFTlhSIGFuZCBFTkFCTEVfV0VC
R0wuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZTogQWRkZWQuCisg
ICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMjAtMDMtMDMgIEZ1
amlpIEhpcm9ub3JpICA8ZnVqaWkuaGlyb25vcmlAZ21haWwuY29tPgogCiAgICAgICAgIFtDdXJs
XSBBZGQgVExTIGRlYnVnZ2luZyBmZWF0dXJlIHRvIGxvZyBlbmNyeXB0aW9uIGtleXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392700</attachid>
            <date>2020-03-06 03:15:43 -0800</date>
            <delta_ts>2020-03-09 02:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208702-20200306121539.patch</filename>
            <type>text/plain</type>
            <size>225616</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5NzEyZjYwZWYyMzNhNDE0NzllMGNk
ZDViYmZjMzg5MmUxNTU5ODIuLmM1MmI1MzA1MjM1ZTYyZGYxODhjNjE1YzI0NmM2YjBkMGU2Mjg4
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQg
YnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBEZWZpbmUgVVNFX09QRU5YUiAo
ZGlzYWJsZWQpIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBieSB0aGUgYnVpbGQgc3lzdGVtIGp1c3Qg
aW4gY2FzZQorICAgICAgICBFTkFCTEVfV0VCR0wgaXMgZGVmaW5lZCBhbmQgYWN0aXZlLgorCisg
ICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOgorCiAyMDIwLTAzLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgRml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2OWQyYmJkOTFm
ZDVmNTFiOTZmNjA1ZjVjY2JiOTdjMTkxZDkyOC4uMmVjY2EzODkyZTlhNWMzYTM5MWYzYjEzNDMw
NTY2Nzk5NTk3MzgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBAQAorMjAyMC0wMy0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
WFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBJRExzIGRl
ZmluZWQgYnkgdGhlIHNwZWMgd2l0aCB2ZXJ5IGJhc2ljIGVtcHR5IGltcGxlbWVudGF0aW9ucyB0
byBnZXQgdGhlbQorICAgICAgICBidWlsdC4gQXBhcnQgZnJvbSB0aGF0IGEgdmVyeSBiYXNpYyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVxdWlyZWQgcGxhdGZvcm0gY29kZSB1c2luZworICAgICAg
ICBPcGVuWFIgQVBJIHdhcyBhbHNvIGFkZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBu
byBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgcmVhbGx5IGFkZGVkIChlbXB0eSBpbXBsZW1lbnRhdGlv
bnMpLiBIb3dldmVyCisgICAgICAgIGZvbGxvdyB1cCBwYXRjaGVzIHdpbGwgaW1wb3J0IHRoZSBh
bHJlYWR5IGF2YWlsYWJsZSBXUFQgdGVzdHMgZm9yIFdlYlhSLgorCisgICAgICAgIExhcmdlbHkg
YmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcldlYlhSOjp4cik6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJYUjo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2U6OmJvdW5kc0dlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUkV5ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
RXllLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJGcmFtZTo6WFJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpzZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSRnJhbWU6OmdldFZpZXdlclBvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJGcmFtZTo6Z2V0UG9zZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUkZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2U6OlhSSW5wdXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJj
ZTo6aGFuZGVkbmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjp0
YXJnZXRSYXlNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnRh
cmdldFJheVNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6Omdy
aXBTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpwcm9maWxl
cyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlQXJyYXk6Omxlbmd0aCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpYUklucHV0U291cmNlQXJyYXk6Oml0ZW0gY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlhSSW5wdXRTb3VyY2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRT
b3VyY2VFdmVudDo6WFJJbnB1dFNvdXJjZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VFdmVudDo6ZnJhbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNv
dXJjZUV2ZW50OjppbnB1dFNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0
U291cmNlRXZlbnQ6OmJ1dHRvbkluZGV4IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2VFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6c2Vzc2lvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjphZGRlZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpyZW1vdmVkIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQu
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlhSUG9zZTo6WFJQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUG9zZTo6dHJhbnNmb3JtIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUG9zZTo6ZW11bGF0ZWRQb3NpdGlvbiBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNl
U3BhY2U6OlhSUmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VT
cGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVm
ZXJlbmNlU3BhY2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJl
bmNlU3BhY2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VT
cGFjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VTcGFjZUV2
ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVu
Y2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpY
UlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhS
UmVuZGVyU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjpY
UlJlbmRlclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVh
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjpkZXB0aEZhciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxk
T2ZWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OmJhc2VMYXll
ciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmln
aWRUcmFuc2Zvcm06OlhSUmlnaWRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdp
ZFRyYW5zZm9ybTo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRy
YW5zZm9ybTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRy
YW5zZm9ybTo6bWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmlnaWRUcmFuc2Zv
cm06OmludmVyc2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5z
Zm9ybS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0u
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlbmRlclN0YXRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6aW5wdXRTb3VyY2VzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhSU2Vzc2lvbjo6dXBkYXRlUmVuZGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
WFJTZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6WFJT
ZXNzaW9uOjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNz
aW9uOjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246
OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OmFjdGl2ZURPTU9iamVjdE5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9u
RXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uRXZlbnQ6OlhSU2Vzc2lvbkV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbkluaXQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb25Jbml0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6WFJTcGFjZTo6WFJTcGFjZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9YUlNwYWNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTcGFjZS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0ZW0uY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
WFJTeXN0ZW06OlhSU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjppc1Nlc3Np
b25TdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6WFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1hSU3lzdGVtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0
ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpYUlZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OlhS
Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OmV5ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUlZpZXc6OnByb2plY3Rpb25NYXRyaXggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3Ojp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJW
aWV3Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3LmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhSVmlld2VyUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhS
Vmlld2VyUG9zZTo6dmlld3MgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3
ZXJQb3NlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3cG9ydDo6eCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0Ojp5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OndpZHRoIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OmhlaWdodCBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlZpZXdwb3J0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJWaWV3cG9ydC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaXNpYmls
aXR5U3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlT
dGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OlhSV2ViR0xMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpYUldlYkdMTGF5ZXI6OmFudGlhbGlhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpY
UldlYkdMTGF5ZXI6Omlnbm9yZURlcHRoVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJX
ZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
V2ViR0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
WFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5
ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IpOgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVyLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXJJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBBZGQgT3BlblhSIGlu
Y2x1ZGVzIGFuZCBsaWJzLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJpbmRp
bmdzL0lETFR5cGVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVu
Y2VzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAg
ICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46Cisg
ICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBwYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaDogQWRkZWQgV2ViWFIgZmVhdHVyZS4KKyAgICAgICAgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhSRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJYUkVuYWJsZWQgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS94ci9QbGF0Zm9ybVhSLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3hyL29wZW54
ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgIChQbGF0Zm9ybVhSOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoUGxhdGZvcm1YUjo6cmVzdWx0VG9TdHJpbmcpOgorICAgICAgICAo
UGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6OkltcGwpOgorICAgICAgICAoUGxhdGZvcm1YUjo6
SW5zdGFuY2U6OkltcGw6On5JbXBsKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Okluc3RhbmNlOjpz
aW5nbGV0b24pOgorCiAyMDIwLTAzLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVzZSByZXN0b3JlIHZpZXcgaWNvbiBm
b3IgZXhpdCBmdWxsc2NyZWVuIGJ1dHRvbiBpbiBtZWRpYSBjb250cm9scwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3
ZjQ5NzdmMzcyNzA2ZDMzMGFhZWYxYzM5MzM1MDBhYzQwNjQyOTI1Li5iY2UyYjg0ZmY5MTc5YTE5
YjIxYmFiMTAyMDhlYWNlMGUyYzU2NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTAzLTA2ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIFdQRQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGFyZ2VseSBi
YXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6IEFkZGVkIGluZm8gYWJvdXQgdGhlIFdlYlhSIGltcGxl
bWVudGF0aW9uIHN0YXR1cy4KKwogMjAyMC0wMy0wMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmUtYWRkIGBJbnNwZWN0b3JGcm9u
dGVuZEhvc3RgIHN1cHBvcnQgZm9yIG1vdmluZyB0aGUgaW5zcGVjdGVkIHdpbmRvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggZGVkZmExNGQ1YTVkZGRhODRlMzM1YmZkNDg1ZTc1NTA5N2ZhZWM1Ny4uZGFhN2Qz
NjNhNTRlMjI0MzJkYjQ5ZTc4MWM4MzExMzcyNWFkYzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xODAs
NiArMTgwLDEwIEBACiAjaWYgKFVTRV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdM
X0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01B
UFBFUikKICNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwg
VVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAogI2VuZGlmCisKKyNpZiAhZGVmaW5lZChVU0VfT1BF
TlhSKQorI2RlZmluZSBVU0VfT1BFTlhSIDAKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBVU0UoVEVY
VFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVmaW5lZChV
U0VfVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDM3Y2IxYmVlNDlj
N2U5NTVhNzEyNGQxZTJkNmFlOWNkMTU1YzA3OWIuLmE5MjZmMmI3NDcyZDk2YzEyNTM2OTA1MDk4
N2UwN2UwZTI2MjlkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTc5LDYgKzExNzksNDcg
QEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfV0VC
R0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2VieHIiCisgICAgICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS94ciIKKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCisgICAgICAgIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRs
CisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUkV5ZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCisgICAgICAg
IE1vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKKyAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSUG9zZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5p
ZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKKyAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFu
c2Zvcm0uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkluaXQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSU3lzdGVtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
WFJWaWV3ZXJQb3NlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCisgICAgICAgIE1vZHVs
ZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSV2ViR0xM
YXllckluaXQuaWRsCisgICAgKQorZW5kaWYgKCkKKwogc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAg
ICAgJHtXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTfQogICAgICR7V2ViQ29yZV9TVkdfSURMX0ZJ
TEVTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JX
ZWJYUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kM2ZhMmI4MjY5ZWE0ZWU1ZGE2NDZiODk1N2Y1NWExZTRmZGU5MmUzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JX
ZWJYUi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIKKworI2luY2x1ZGUgIk5hdmlnYXRvci5o
IgorI2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFJTeXN0
ZW0mIE5hdmlnYXRvcldlYlhSOjp4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBOYXZpZ2F0b3ImIG5hdmlnYXRvck9iamVjdCkKK3sKKyAgICBhdXRvJiBu
YXZpZ2F0b3IgPSBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShuYXZpZ2F0b3JPYmplY3QpOworICAgIGlm
ICghbmF2aWdhdG9yLm1feHIpCisgICAgICAgIG5hdmlnYXRvci5tX3hyID0gWFJTeXN0ZW06OmNy
ZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICByZXR1cm4gKm5hdmlnYXRvci5tX3hy
OworfQorCitOYXZpZ2F0b3JXZWJYUiYgTmF2aWdhdG9yV2ViWFI6OmZyb20oTmF2aWdhdG9yJiBu
YXZpZ2F0b3IpCit7CisgICAgYXV0byogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRv
cldlYlhSKj4oU3VwcGxlbWVudDxOYXZpZ2F0b3I+Ojpmcm9tKCZuYXZpZ2F0b3IsICJOYXZpZ2F0
b3JXZWJYUiIpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdTdXBw
bGVtZW50ID0gbWFrZVVuaXF1ZTxOYXZpZ2F0b3JXZWJYUj4oKTsKKyAgICAgICAgc3VwcGxlbWVu
dCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbygmbmF2aWdhdG9yLCAi
TmF2aWdhdG9yV2ViWFIiLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0
dXJuICpzdXBwbGVtZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZjMGY5
OGU0OTgxMDMyZWIyNmRhMzExYTFlY2M0ODM1N2YzOWNmNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3VwcGxlbWVudGFi
bGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgTmF2aWdhdG9yOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFhS
U3lzdGVtOworCitjbGFzcyBOYXZpZ2F0b3JXZWJYUiBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50
PE5hdmlnYXRvcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHN0YXRpYyBYUlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYp
OworCitwcml2YXRlOgorICAgIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3Im
KTsKKworICAgIFJlZlB0cjxYUlN5c3RlbT4gbV94cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9y
V2ViWFIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWZmMjlkMTY2OWU3YmQ3ZDI3MTViZWUwZjRlZWJmNmVmMmVkN2MxOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9y
V2ViWFIuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViWFIKK10gcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKKyAgICBbU2Vj
dXJlQ29udGV4dCwgU2FtZU9iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
cmVhZG9ubHkgYXR0cmlidXRlIFhSU3lzdGVtIHhyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzUzMDdiZjc3OTNhMWViMmVmNDI2NmRiMjc5OWFkMzhlNDkzNmVkYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIFhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
Ym91bmRzR2VvbWV0cnk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YjVjOGU5NWRkZDVjMzk5NDU1MjY1MTgyYzAwYzYzYzExMzUxOWRiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
T01Qb2ludFJlYWRPbmx5OworCitjbGFzcyBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSA6IHB1Ymxp
YyBYUlJlZmVyZW5jZVNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4m
IGJvdW5kc0dlb21ldHJ5KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZjxET01Q
b2ludFJlYWRPbmx5Pj4gbV9ib3VuZHNHZW9tZXRyeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM4MTBhYmMxYTBjYjE3MDM2NGMxMzVi
NWE3ZTAxZjRmMjcwNWVkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgU2VjdXJlQ29u
dGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UgOiBYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVu
QXJyYXk8RE9NUG9pbnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZWZhYzFlYzgwYjAyMjE0Zjk5YWEyZjJhNzkwYjU1OTc5Y2I5YWU2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50Qmxl
bmRNb2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUg
eworICAgIE9wYXF1ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBoYUJsZW5kCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjMzMTQwMGYzNTE3
YmYwZDA3YzlmNjcwN2Y0NmRlMjhkZjEwM2JkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGVu
dW0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisgICAgImFkZGl0aXZl
IiwKKyAgICAiYWxwaGEtYmxlbmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUkV5ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxZTcwZTU0NDQzNTY0MjYxZDM3OWM5MzBiOWQ1OTlkOTIxMmJmMzIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSRXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAg
UmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJFeWUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZmEzMzIzZGZjM2Y2Yjc5MjUxYzdjMjlhMGY5
ZmZmMWE4ZGU4ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRXllLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSCitdIGVudW0gWFJFeWUgeworICAgICJub25lIiwKKyAgICAibGVm
dCIsCisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNjNTA0YWQxYzk3NjNkYWJkM2U1ODY4ZDMwMzI5ODQ4YTdkNDExYWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUu
Y3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlhSRnJhbWUuaCIKKworI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUg
IlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSRnJhbWUp
OworCitSZWY8WFJGcmFtZT4gWFJGcmFtZTo6Y3JlYXRlKFJlZjxYUlNlc3Npb24+JiYgc2Vzc2lv
bikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUkZyYW1lKFdURk1vdmUoc2Vzc2lvbikp
KTsKK30KKworWFJGcmFtZTo6WFJGcmFtZShSZWY8WFJTZXNzaW9uPiYmIHNlc3Npb24pCisgICAg
OiBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sKK30KKworWFJGcmFtZTo6flhSRnJhbWUo
KSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSU2Vzc2lvbiYgWFJGcmFtZTo6c2Vzc2lvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFhSVmlld2VyUG9zZT4gWFJG
cmFtZTo6Z2V0Vmlld2VyUG9zZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlJikKK3sKKyAgICByZXR1
cm4geyB9OworfQorCitSZWZQdHI8WFJQb3NlPiBYUkZyYW1lOjpnZXRQb3NlKGNvbnN0IFhSU3Bh
Y2UmLCBjb25zdCBYUlNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcxOTZkMWYyNWM4YmViZDNiYWRhNGUxYzNmNDQzMmIzZmUxMjgxOTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBYUlBvc2U7CitjbGFzcyBYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgWFJTZXNzaW9uOworY2xh
c3MgWFJTcGFjZTsKK2NsYXNzIFhSVmlld2VyUG9zZTsKKworY2xhc3MgWFJGcmFtZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFhSRnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSRnJh
bWUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJGcmFtZT4gY3JlYXRlKFJlZjxYUlNlc3Np
b24+JiYpOworICAgIH5YUkZyYW1lKCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNlc3Npb24o
KSBjb25zdDsKKworICAgIFJlZlB0cjxYUlZpZXdlclBvc2U+IGdldFZpZXdlclBvc2UoY29uc3Qg
WFJSZWZlcmVuY2VTcGFjZSYpOworICAgIFJlZlB0cjxYUlBvc2U+IGdldFBvc2UoY29uc3QgWFJT
cGFjZSYsIGNvbnN0IFhSU3BhY2UmKTsKKworcHJpdmF0ZToKKyAgICBYUkZyYW1lKFJlZjxYUlNl
c3Npb24+JiYpOworCisgICAgUmVmPFhSU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIGJvb2wgbV9h
Y3RpdmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9hbmltYXRpb25GcmFtZSB7IGZhbHNlIH07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSRnJhbWUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkZyYW1lLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjYxMGRlY2U4ODgyNzk4NTFlMDI3NDNjMTcxMjI5Mzc3
MGYzZDVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkZyYW1lLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRl
eHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQor
XSBpbnRlcmZhY2UgWFJGcmFtZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBYUlNlc3Npb24gc2Vzc2lvbjsKKworICAgIFhSVmlld2VyUG9zZT8gZ2V0Vmlld2VyUG9zZShY
UlJlZmVyZW5jZVNwYWNlIHJlZmVyZW5jZVNwYWNlKTsKKyAgICBYUlBvc2U/IGdldFBvc2UoWFJT
cGFjZSBzcGFjZSwgWFJTcGFjZSBiYXNlU3BhY2UpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTk1OGZkYzIwNDM3ODFmYTZmOTk3OGJjMmJkN2RlYzg0MjBlYjQ3ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBY
UkZyYW1lOworCitjbGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50
ZWQ8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7Citw
dWJsaWM6CisgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOwor
CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUgaGln
aFJlc1RpbWVNcywgWFJGcmFtZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0
Q2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMWQ0YmQyYzU4NmIxMDU2YTM3ZDEyMmM2NGZlZDE5
ODA5YWU1MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworY2FsbGJhY2sgWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjayA9IHZvaWQgKERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZSwgWFJGcmFt
ZSBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFu
ZGVkbmVzcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lMjdhYTM5YjNkZTJmN2Y4NjI5NWFlOTNhODFmNDczMWRjOWNkNzRiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3Mu
aApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJIYW5kZWRuZXNzIHsKKyAgICBOb25lLAorICAg
IExlZnQsCisgICAgUmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRi
OWQ4MTM5NjM2ODQ3NjNkYTBjYWJkMmY0YTVlOTM0MzlkOWUzMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGVu
dW0gWFJIYW5kZWRuZXNzIHsKKyAgICAibm9uZSIsCisgICAgImxlZnQiLAorICAgICJyaWdodCIK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MmJiNDIyYjc4NWFkMzJhYzQxZTExYzliODdjMzdkN2ZhZThmOWIzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
LmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJYUklucHV0U291cmNlLmgiCisKKyNpbmNsdWRlICJYUlNwYWNlLmgiCisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWFJJbnB1dFNvdXJjZSk7CisKK1JlZjxYUklucHV0
U291cmNlPiBYUklucHV0U291cmNlOjpjcmVhdGUoUmVmPFhSU3BhY2U+JiYgdGFyZ2V0UmF5U3Bh
Y2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZShXVEZNb3ZlKHRh
cmdldFJheVNwYWNlKSkpOworfQorCitYUklucHV0U291cmNlOjpYUklucHV0U291cmNlKFJlZjxY
UlNwYWNlPiYmIHRhcmdldFJheVNwYWNlKQorICAgIDogbV9oYW5kZWRuZXNzKFhSSGFuZGVkbmVz
czo6Tm9uZSkKKyAgICAsIG1fdGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1vZGU6OkdhemUpCisg
ICAgLCBtX3RhcmdldFJheVNwYWNlKFdURk1vdmUodGFyZ2V0UmF5U3BhY2UpKQoreworfQorCitY
UklucHV0U291cmNlOjp+WFJJbnB1dFNvdXJjZSgpID0gZGVmYXVsdDsKKworWFJIYW5kZWRuZXNz
IFhSSW5wdXRTb3VyY2U6OmhhbmRlZG5lc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRl
ZG5lc3M7Cit9CisKK1hSVGFyZ2V0UmF5TW9kZSBYUklucHV0U291cmNlOjp0YXJnZXRSYXlNb2Rl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90YXJnZXRSYXlNb2RlOworfQorCitjb25zdCBYUlNw
YWNlJiBYUklucHV0U291cmNlOjp0YXJnZXRSYXlTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fdGFyZ2V0UmF5U3BhY2U7Cit9CisKK1JlZlB0cjxYUlNwYWNlPiBYUklucHV0U291cmNlOjpn
cmlwU3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK2NvbnN0IFZlY3RvcjxT
dHJpbmc+JiBYUklucHV0U291cmNlOjpwcm9maWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cHJvZmlsZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE4N2Y3MDM5YWU1ZDMz
ZjZiOTA1NmQ0NDdiN2JmNTk2MzAzYTZhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNs
dWRlICJYUlRhcmdldFJheU1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlNwYWNlOwor
CitjbGFzcyBYUklucHV0U291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8WFJJbnB1dFNvdXJjZT4g
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJJbnB1dFNvdXJjZSk7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxYUklucHV0U291cmNlPiBjcmVhdGUoUmVmPFhSU3BhY2U+JiYpOworICAg
IH5YUklucHV0U291cmNlKCk7CisKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzcygpIGNvbnN0
OworICAgIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKCkgY29uc3Q7CisgICAgY29uc3Qg
WFJTcGFjZSYgdGFyZ2V0UmF5U3BhY2UoKSBjb25zdDsKKyAgICBSZWZQdHI8WFJTcGFjZT4gZ3Jp
cFNwYWNlKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb2ZpbGVzKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZShSZWY8WFJTcGFjZT4mJik7CisKKyAg
ICBYUkhhbmRlZG5lc3MgbV9oYW5kZWRuZXNzOworICAgIFhSVGFyZ2V0UmF5TW9kZSBtX3Rhcmdl
dFJheU1vZGU7CisgICAgUmVmPFhSU3BhY2U+IG1fdGFyZ2V0UmF5U3BhY2U7CisgICAgVmVjdG9y
PFN0cmluZz4gbV9wcm9maWxlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU2YjQwNjlmMGNiNDIwNWQ1MDg2Y2I1MTYxM2E0ODE0MzQ5NjE2OGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCkBAIC0w
LDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2Vk
PVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUklu
cHV0U291cmNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJIYW5kZWRuZXNzIGhhbmRlZG5l
c3M7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2Rl
IDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSU3BhY2UgdGFyZ2V0UmF5
U3BhY2U7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNwYWNlPyBncmlw
U3BhY2UgOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8
RE9NU3RyaW5nPiBwcm9maWxlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZkNGM0NjVkYWEzZjcz
ZGU2NGY0MWFiZDI4YTk4N2NkNjRlMGU4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmNwcApAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUklucHV0U291
cmNlQXJyYXkuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSSW5wdXRTb3Vy
Y2VBcnJheSk7CisKK3Vuc2lnbmVkIFhSSW5wdXRTb3VyY2VBcnJheTo6bGVuZ3RoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gMDsKK30KKworWFJJbnB1dFNvdXJjZSogWFJJbnB1dFNvdXJjZUFycmF5
OjppdGVtKHVuc2lnbmVkKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTUyMWI1NWZkMTU5Mjk3NTkwYjY0NzE0
ZTRjMWY4YzUwNTZkN2ZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJJbnB1
dFNvdXJjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZUFycmF5IDogcHVibGljIFJlZkNvdW50ZWQ8
WFJJbnB1dFNvdXJjZUFycmF5PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUklucHV0
U291cmNlQXJyYXkpOworcHVibGljOgorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAg
IFhSSW5wdXRTb3VyY2UqIGl0ZW0odW5zaWduZWQpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0
U291cmNlQXJyYXkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZjAwOGUxZTQwOTk4OWQ3MTUyODFmNDc4ODI1
ZTE1MDZmN2Y3M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VBcnJheS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJm
YWNlIFhSSW5wdXRTb3VyY2VBcnJheSB7CisgICAgaXRlcmFibGU8WFJJbnB1dFNvdXJjZT47Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBY
UklucHV0U291cmNlKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
YTQ3NjkwYmYzM2RkMzEyMmJjYTRjYzhkNzk2MTBjMTMyYzRlZDMyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwCkBA
IC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlhSSW5wdXRTb3VyY2VFdmVudC5oIgorCisjaW5jbHVkZSAiWFJGcmFtZS5oIgorI2luY2x1
ZGUgIlhSSW5wdXRTb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJJbnB1
dFNvdXJjZUV2ZW50PiBYUklucHV0U291cmNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUklucHV0U291cmNlRXZlbnQodHlwZSwgaW5pdGlh
bGl6ZXIsIGlzVHJ1c3RlZCkpOworfQorCitYUklucHV0U291cmNlRXZlbnQ6OlhSSW5wdXRTb3Vy
Y2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwg
SXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1Ry
dXN0ZWQpCisgICAgLCBtX2ZyYW1lKGluaXRpYWxpemVyLmZyYW1lKQorICAgICwgbV9pbnB1dFNv
dXJjZShpbml0aWFsaXplci5pbnB1dFNvdXJjZSkKKyAgICAsIG1fYnV0dG9uSW5kZXgoaW5pdGlh
bGl6ZXIuYnV0dG9uSW5kZXgpCit7CisgICAgQVNTRVJUKG1fZnJhbWUpOworICAgIEFTU0VSVCht
X2lucHV0U291cmNlKTsKK30KKworWFJJbnB1dFNvdXJjZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZUV2
ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBYUkZyYW1lJiBYUklucHV0U291cmNlRXZlbnQ6OmZy
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fZnJhbWU7Cit9CisKK2NvbnN0IFhSSW5wdXRT
b3VyY2UmIFhSSW5wdXRTb3VyY2VFdmVudDo6aW5wdXRTb3VyY2UoKSBjb25zdAoreworICAgIHJl
dHVybiAqbV9pbnB1dFNvdXJjZTsKK30KKworT3B0aW9uYWw8aW50PiBYUklucHV0U291cmNlRXZl
bnQ6OmJ1dHRvbkluZGV4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9idXR0b25JbmRleDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNkYzdjMGUzYzQ5MTA1ZDRi
ZDI5NWE2MDY2ZTZhNzM1ZjBiNWYxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFhSRnJhbWU7CitjbGFzcyBYUklucHV0U291cmNlOworCitjbGFzcyBY
UklucHV0U291cmNlRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0
cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFhSRnJhbWU+IGZyYW1lOwor
ICAgICAgICBSZWZQdHI8WFJJbnB1dFNvdXJjZT4gaW5wdXRTb3VyY2U7CisgICAgICAgIE9wdGlv
bmFsPGludD4gYnV0dG9uSW5kZXg7CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJJbnB1dFNv
dXJjZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUklucHV0U291cmNlRXZlbnQoKTsK
KworICAgIGNvbnN0IFhSRnJhbWUmIGZyYW1lKCkgY29uc3Q7CisgICAgY29uc3QgWFJJbnB1dFNv
dXJjZSYgaW5wdXRTb3VyY2UoKSBjb25zdDsKKyAgICBPcHRpb25hbDxpbnQ+IGJ1dHRvbkluZGV4
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZUV2ZW50KGNvbnN0IEF0b21T
dHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKworICAgIFJlZlB0cjxYUkZyYW1lPiBt
X2ZyYW1lOworICAgIFJlZlB0cjxYUklucHV0U291cmNlPiBtX2lucHV0U291cmNlOworICAgIE9w
dGlvbmFsPGludD4gbV9idXR0b25JbmRleDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZWVjZjk5ZjM3YjhiYzFiNDAyZWJjZGQwMzc2YzMwMTlhNGIyZTMy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0
U291cmNlRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitdIGRpY3Rpb25h
cnkgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgWFJG
cmFtZSBmcmFtZTsKKyAgICByZXF1aXJlZCBYUklucHV0U291cmNlIGlucHV0U291cmNlOworfTsK
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3Rv
cihET01TdHJpbmcgdHlwZSwgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQor
XSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk1NDJjZTEzMmU1NmI1ZTBmNDRkNWE0ZTIzNDJiNzU5MGVl
ZTljNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dC5oIgorCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZS5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlc0NoYW5nZUV2ZW50
PiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCh0eXBlLCBpbml0
aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5p
dCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBp
bml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKCppbml0aWFsaXplci5zZXNz
aW9uKQorICAgICwgbV9hZGRlZChpbml0aWFsaXplci5hZGRlZCkKKyAgICAsIG1fcmVtb3ZlZChp
bml0aWFsaXplci5yZW1vdmVkKQoreworfQorCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojp+
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNzaW9u
JiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zZXNzaW9uOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYg
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRkZWQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2FkZGVkOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVt
b3ZlZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMTkyZjI0MDI1ODdjMWFmYTZhYzJkNzFlMzNkMzU1ZTdjZWI0ZGQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUklucHV0U291cmNlOwor
Y2xhc3MgWFJTZXNzaW9uOworCitjbGFzcyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7
CisgICAgICAgIFJlZlB0cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQ
dHI8WFJJbnB1dFNvdXJjZT4+IGFkZGVkOworICAgICAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRT
b3VyY2U+PiByZW1vdmVkOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1
c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQoKTsKKworICAgIGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwg
Y29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWY8WFJTZXNzaW9uPiBtX3Nlc3Npb247
CisgICAgVmVjdG9yPFJlZlB0cjxYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0b3I8
UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Njk3ZjI3MmQ3YzMwMWZkZjg0
ZjgzZDU4NGU4ZjE0ODg5MWFkYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorXSBkaWN0
aW9uYXJ5IFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICBy
ZXF1aXJlZCBYUlNlc3Npb24gc2Vzc2lvbjsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxYUklu
cHV0U291cmNlPiBhZGRlZDsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxYUklucHV0U291cmNl
PiByZW1vdmVkOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgU2Vj
dXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJp
bmcgdHlwZSwgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCkKK10g
aW50ZXJmYWNlIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNlc3Npb24gc2Vzc2lvbjsKKyAgICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFhSSW5wdXRTb3VyY2U+IGFkZGVk
OworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8WFJJbnB1
dFNvdXJjZT4gcmVtb3ZlZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSUG9zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDkwMzU0ZTZkYzU3Zjk2NDU5NDA3NzU0YjkwZGU1ZTIwOGY4ZWMwMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNw
cApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJYUlBvc2UuaCIKKworI2luY2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlBvc2UpOworCitSZWY8WFJQb3NlPiBYUlBvc2U6
OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJQb3NlKTsKK30KKworWFJQ
b3NlOjpYUlBvc2UoKQorICAgIDogbV90cmFuc2Zvcm0oWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRl
KCkpCit7Cit9CisKK1hSUG9zZTo6flhSUG9zZSgpID0gZGVmYXVsdDsKKworY29uc3QgWFJSaWdp
ZFRyYW5zZm9ybSYgWFJQb3NlOjp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiBtX3Ry
YW5zZm9ybTsKK30KKworYm9vbCBYUlBvc2U6OmVtdWxhdGVkUG9zaXRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2VtdWxhdGVkUG9zaXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNDgxOWNl
MjRkYTkyMzY2YTY1OWJlMjRjZjRkN2EyOTM3OTI3ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJQb3NlIDog
cHVibGljIFJlZkNvdW50ZWQ8WFJQb3NlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChY
UlBvc2UpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJQb3NlPiBjcmVhdGUoKTsKKyAgICB+
WFJQb3NlKCk7CisKKyAgICBjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25z
dDsKKyAgICBib29sIGVtdWxhdGVkUG9zaXRpb24oKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAg
IFhSUG9zZSgpOworCisgICAgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworICAg
IGJvb2wgbV9lbXVsYXRlZFBvc2l0aW9uIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3Nl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMDNmMWZjYjQzMDFiOGIyYTkyYjdjOWQ3ODY3ODI2ZjZhNDEzZjRhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsCkBAIC0wLDAgKzEs
MzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
U2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxh
Y2tzVlRhYmxlCitdIGludGVyZmFjZSBYUlBvc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzdhY2Jl
YTVlODk3MjcyZTg1Yjg2OTE3ZjI5NzZmNzc2N2RmODhiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJl
ZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFJSZWZlcmVuY2VTcGFj
ZTo6WFJSZWZlcmVuY2VTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAg
IDogWFJTcGFjZShjb250ZXh0KQoreworfQorCitYUlJlZmVyZW5jZVNwYWNlOjp+WFJSZWZlcmVu
Y2VTcGFjZSgpID0gZGVmYXVsdDsKKworUmVmPFhSUmVmZXJlbmNlU3BhY2U+IFhSUmVmZXJlbmNl
U3BhY2U6OmdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhSUmlnaWRUcmFuc2Zvcm0mKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmVmZXJlbmNlU3BhY2UoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
ZTE0ZDQ4M2Q0ZjU4MDc4NGU4OWI0OGY3MDJmNWE0NGE2MWUxMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaApAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJTcGFj
ZS5oIgorCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFhSUmlnaWRUcmFuc2Zvcm07CisKK2NsYXNzIFhSUmVmZXJlbmNlU3BhY2UgOiBwdWJsaWMg
WFJTcGFjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+WFJSZWZlcmVuY2VTcGFjZSgpOworCisg
ICAgUmVmPFhSUmVmZXJlbmNlU3BhY2U+IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhS
UmlnaWRUcmFuc2Zvcm0mKTsKKworcHJpdmF0ZToKKyAgICBYUlJlZmVyZW5jZVNwYWNlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ5ODA5OTczNTUzOTM5OWNiZDA0ZDk4NDI4NzU2MzQ5MWYyZDU3M2MKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2Uu
aWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKK10gaW50
ZXJmYWNlIFhSUmVmZXJlbmNlU3BhY2UgOiBYUlNwYWNlIHsKKyAgICBbTmV3T2JqZWN0XSBYUlJl
ZmVyZW5jZVNwYWNlIGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKFhSUmlnaWRUcmFuc2Zvcm0gb3Jp
Z2luT2Zmc2V0KTsKKworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXNldDsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFhMDRhMDEwZDAxMmEzYTBiZGM4ZTBlNzhiZTRkNWJlYzFk
NDUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJS
ZWZlcmVuY2VTcGFjZUV2ZW50LmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCIKKwor
I2luY2x1ZGUgIlhSUmVmZXJlbmNlU3BhY2UuaCIKKyNpbmNsdWRlICJYUlJpZ2lkVHJhbnNmb3Jt
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSUmVmZXJlbmNlU3BhY2VFdmVudD4g
WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBp
c1RydXN0ZWQpKTsKK30KKworWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpYUlJlZmVyZW5jZVNwYWNl
RXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElz
VHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKQorICAgICwgbV9yZWZlcmVuY2VTcGFjZShpbml0aWFsaXplci5yZWZlcmVuY2VTcGFjZSkK
KyAgICAsIG1fdHJhbnNmb3JtKGluaXRpYWxpemVyLnRyYW5zZm9ybSkKK3sKKyAgICBBU1NFUlQo
bV9yZWZlcmVuY2VTcGFjZSk7CisgICAgQVNTRVJUKG1fdHJhbnNmb3JtKTsKK30KKworWFJSZWZl
cmVuY2VTcGFjZUV2ZW50Ojp+WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCkgPSBkZWZhdWx0OworCitj
b25zdCBYUlJlZmVyZW5jZVNwYWNlJiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnJlZmVyZW5jZVNw
YWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fcmVmZXJlbmNlU3BhY2U7Cit9CisKK2NvbnN0
IFhSUmlnaWRUcmFuc2Zvcm0mIFhSUmVmZXJlbmNlU3BhY2VFdmVudDo6dHJhbnNmb3JtKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gKm1fdHJhbnNmb3JtOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOThkMzlmZDI4ZjBkOTAyYjA4NjVmYjgxMDhlMzNkNWQ1
MGNjZWJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJlZmVyZW5jZVNwYWNlRXZlbnQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhS
UmVmZXJlbmNlU3BhY2U7CitjbGFzcyBYUlJpZ2lkVHJhbnNmb3JtOworCitjbGFzcyBYUlJlZmVy
ZW5jZVNwYWNlRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0
IDogRXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFhSUmVmZXJlbmNlU3BhY2U+IHJlZmVyZW5j
ZVNwYWNlOworICAgICAgICBSZWZQdHI8WFJSaWdpZFRyYW5zZm9ybT4gdHJhbnNmb3JtOworICAg
IH07CisKKyAgICBzdGF0aWMgUmVmPFhSUmVmZXJlbmNlU3BhY2VFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7Cisg
ICAgdmlydHVhbCB+WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCk7CisKKyAgICBjb25zdCBYUlJlZmVy
ZW5jZVNwYWNlJiByZWZlcmVuY2VTcGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFhSUmlnaWRUcmFu
c2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3Bh
Y2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAg
ICBSZWZQdHI8WFJSZWZlcmVuY2VTcGFjZT4gbV9yZWZlcmVuY2VTcGFjZTsKKyAgICBSZWZQdHI8
WFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI4NTFmZGQzYTBjNGVjOWUyYjQzNWE5NzZkYTUz
YzM5ZjhlOGMzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorXSBkaWN0aW9uYXJ5IFhSUmVmZXJl
bmNlU3BhY2VFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFhSUmVmZXJlbmNl
U3BhY2UgcmVmZXJlbmNlU3BhY2U7CisgICAgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9
OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpCitdIGludGVyZmFjZSBYUlJlZmVy
ZW5jZVNwYWNlRXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBYUlJlZmVyZW5jZVNwYWNlIHJlZmVyZW5jZVNwYWNlOworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRlYTRmOWQ1ZTYxZmMzNzQzMjNjM2YwMzE2YzU0OTVjODBkOTg3NWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3Bh
Y2VUeXBlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSUmVmZXJlbmNlU3BhY2VUeXBlIHsK
KyAgICBWaWV3ZXIsCisgICAgTG9jYWwsCisgICAgTG9jYWxGbG9vciwKKyAgICBCb3VuZGVkRmxv
b3IsCisgICAgVW5ib3VuZGVkCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUxMzM0ZGExOThjNDY4NTQzYjg0MmM1YjI0MmY1MmY4ZmFkMDlhZjUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VUeXBlLmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSCitdIGVudW0gWFJSZWZlcmVuY2VTcGFjZVR5cGUgeworICAgICJ2
aWV3ZXIiLAorICAgICJsb2NhbCIsCisgICAgImxvY2FsLWZsb29yIiwKKyAgICAiYm91bmRlZC1m
bG9vciIsCisgICAgInVuYm91bmRlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJlbmRlclN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWFiZmZhMmQyNjdlYzJiMGJhY2Jm
MGEzNGYzNmUwOTUxY2ZlNDM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisKKyNp
bmNsdWRlICJYUlJlbmRlclN0YXRlSW5pdC5oIgorI2luY2x1ZGUgIlhSV2ViR0xMYXllci5oIgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoWFJSZW5kZXJTdGF0ZSk7CisKK1JlZjxYUlJlbmRlclN0YXRlPiBYUlJlbmRlclN0YXRlOjpj
cmVhdGUoY29uc3QgWFJTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIC8vIFdoZW4gYW4gWFJSZW5k
ZXJTdGF0ZSBvYmplY3QgaXMgY3JlYXRlZCBmb3IgYW4gWFJTZXNzaW9uIHNlc3Npb24sIHRoZSB1
c2VyIGFnZW50IE1VU1QgaW5pdGlhbGl6ZSB0aGUgcmVuZGVyIHN0YXRlIGJ5IHJ1bm5pbmcgdGhl
IGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyAgIDEuIExldCBzdGF0ZSBiZSB0aGUgbmV3bHkgY3Jl
YXRlZCBYUlJlbmRlclN0YXRlIG9iamVjdC4KKworICAgIC8vICAgMi4gSW5pdGlhbGl6ZSBzdGF0
ZeKAmXMgZGVwdGhOZWFyIHRvIDAuMS4KKyAgICAvLyAgIDMuIEluaXRpYWxpemUgc3RhdGXigJlz
IGRlcHRoRmFyIHRvIDEwMDAuMC4KKyAgICAvLyAoRGVmYXVsdC1pbml0aWFsaXplZCBpbiB0aGUg
WFJSZW5kZXJTdGF0ZSBjbGFzcyBkZWZpbml0aW9uLikKKworICAgIC8vICAgNC4gSWYgc2Vzc2lv
biBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVy
dGljYWxGaWVsZE9mVmlldyB0byBudWxsLgorICAgIC8vICAgNS4gRWxzZSBpbml0aWFsaXplIHN0
YXRl4oCZcyBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHRvIFBJICogMC41LgorICAgIC8vIEZJ
WE1FOiAiaW1tZXJzaXZlIHNlc3Npb24iIHN1cHBvcnQKKyAgICBVTlVTRURfUEFSQU0oc2Vzc2lv
bik7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHsgcGlP
dmVyVHdvRG91YmxlIH07CisKKyAgICAvLyAgIDYuIEluaXRpYWxpemUgc3RhdGXigJlzIGJhc2VM
YXllciB0byBudWxsLgorICAgIC8vICAgNy4gSW5pdGlhbGl6ZSBzdGF0ZeKAmXMgb3V0cHV0Q29u
dGV4dCB0byBudWxsLgorICAgIC8vIChJbml0aWFsaXplZCB0byBudWxsIGJ5IGRlZmF1bHQuKQor
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSZW5kZXJTdGF0ZShXVEZNb3ZlKGlubGluZVZl
cnRpY2FsRmllbGRPZlZpZXcpKSk7Cit9CisKK1hSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUo
T3B0aW9uYWw8ZG91YmxlPiYmIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcpCisgICAgOiBtX2lu
bGluZVZlcnRpY2FsRmllbGRPZlZpZXcoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3
KSkKK3sKK30KKworWFJSZW5kZXJTdGF0ZTo6WFJSZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRlclN0
YXRlSW5pdCYpCit7Cit9CisKK1hSUmVuZGVyU3RhdGU6On5YUlJlbmRlclN0YXRlKCkgPSBkZWZh
dWx0OworCitkb3VibGUgWFJSZW5kZXJTdGF0ZTo6ZGVwdGhOZWFyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9kZXB0aC5uZWFyOworfQorCitkb3VibGUgWFJSZW5kZXJTdGF0ZTo6ZGVwdGhGYXIo
KSBjb25zdAoreworICAgIHJldHVybiBtX2RlcHRoLmZhcjsKK30KKworT3B0aW9uYWw8ZG91Ymxl
PiBYUlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworfQorCitSZWZQdHI8WFJXZWJH
TExheWVyPiBYUlJlbmRlclN0YXRlOjpiYXNlTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X2Jhc2VMYXllcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzYwNWM0MzE3ZjZj
YTBmYWY5OWE0NWFlMGRhNWQ3NTBmOGU0MTMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmgKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgWFJXZWJHTExheWVyOworY2xhc3MgWFJSZW5kZXJTdGF0ZUluaXQ7
CitjbGFzcyBYUlNlc3Npb247CisKK2NsYXNzIFhSUmVuZGVyU3RhdGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxYUlJlbmRlclN0YXRlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJlbmRl
clN0YXRlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmVuZGVyU3RhdGU+IGNyZWF0ZShj
b25zdCBYUlNlc3Npb24mKTsKKyAgICB+WFJSZW5kZXJTdGF0ZSgpOworCisgICAgZG91YmxlIGRl
cHRoTmVhcigpIGNvbnN0OworICAgIGRvdWJsZSBkZXB0aEZhcigpIGNvbnN0OworICAgIE9wdGlv
bmFsPGRvdWJsZT4gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0OworICAgIFJlZlB0
cjxYUldlYkdMTGF5ZXI+IGJhc2VMYXllcigpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSUmVu
ZGVyU3RhdGUoT3B0aW9uYWw8ZG91YmxlPiYmKTsKKyAgICBYUlJlbmRlclN0YXRlKGNvbnN0IFhS
UmVuZGVyU3RhdGVJbml0Jik7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBkb3VibGUgbmVhciB7
IDAuMSB9OworICAgICAgICBkb3VibGUgZmFyIHsgMTAwMCB9OworICAgIH0gbV9kZXB0aDsKKyAg
ICBPcHRpb25hbDxkb3VibGU+IG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBSZWZQ
dHI8WFJXZWJHTExheWVyPiBtX2Jhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ3ODVkNWI1ZTE3NWNlNjRiYzBjNWZjOGY5OTE2MTdhOTMzOWQ3MzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUu
aWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAg
ICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVy
ZmFjZSBYUlJlbmRlclN0YXRlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRo
TmVhcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoRmFyOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBkb3VibGU/IGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXc7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MTU1ZmQ5OWQ1ZjAyYmZmMDllODgzMDhlOWY0ZDhkYmU5NmM4YmRiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUldl
YkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOwor
ICAgIGRvdWJsZSBkZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmll
dzsKKyAgICBSZWZQdHI8WFJXZWJHTExheWVyPiBiYXNlTGF5ZXI7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmVuZGVyU3RhdGVJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5k
ZXJTdGF0ZUluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2NDJlYjk4ODYxMzFmNDcxZjYzYzI2NjdhNDZi
MGRmYTE2YzAyODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAor
XSBkaWN0aW9uYXJ5IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOwor
ICAgIGRvdWJsZSBkZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmll
dzsKKyAgICBYUldlYkdMTGF5ZXI/IGJhc2VMYXllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2M0Yjdl
NjhkMzUyNDBmMjA4MWUzMTcyMTcxYWI3ZDkyMGY3MzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmNwcApAQCAtMCwwICsx
LDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJS
aWdpZFRyYW5zZm9ybS5oIgorCisjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgorI2luY2x1
ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlw
ZWRBcnJheUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlJpZ2lk
VHJhbnNmb3JtKTsKKworUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IFhSUmlnaWRUcmFuc2Zvcm06OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSaWdpZFRyYW5zZm9ybSh7IH0s
IHsgfSkpOworfQorCitFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+IFhSUmlnaWRU
cmFuc2Zvcm06OmNyZWF0ZShjb25zdCBET01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBET01Q
b2ludEluaXQmIG9yaWVudGF0aW9uKQoreworICAgIC8vIFRoZSBYUlJpZ2lkVHJhbnNmb3JtKHBv
c2l0aW9uLCBvcmllbnRhdGlvbikgY29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dp
bmcgc3RlcHMgd2hlbiBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0IHRyYW5zZm9ybSBiZSBhIG5l
dyBYUlJpZ2lkVHJhbnNmb3JtLgorCisgICAgLy8gICAyLiBJZiBwb3NpdGlvbiBpcyBub3QgYSBE
T01Qb2ludEluaXQgaW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIHBvc2l0aW9uIHRvIHsgeDogMC4w
LCB5OiAwLjAsIHo6IDAuMCwgdzogMS4wIH0uCisgICAgLy8gICAzLiBJZiBwb3NpdGlvbuKAmXMg
dyB2YWx1ZSBpcyBub3QgMS4wLCB0aHJvdyBhIFR5cGVFcnJvci4KKyAgICAvLyAgIDQuIEVsc2Ug
aW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIHBvc2l0aW9u4oCZcyB4IHZhbHVlIHRvIHBvc2l0aW9u
4oCZcyB4IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVlIHRvIHBvc2l0aW9u4oCZcyB5IGRpY3Rp
b25hcnkgbWVtYmVyLCB6IHZhbHVlIHRvIHBvc2l0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVy
IGFuZCB3IHRvIDEuMC4KKyAgICBpZiAocG9zaXRpb24udyAhPSAxLjApCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKKyAgICBET01Qb2ludEluaXQgcG9zaXRpb25Jbml0
IHsgcG9zaXRpb24ueCwgcG9zaXRpb24ueSwgcG9zaXRpb24ueiwgMSB9OworCisgICAgLy8gICA1
LiBJZiBvcmllbnRhdGlvbiBpcyBub3QgYSBET01Qb2ludEluaXQgaW5pdGlhbGl6ZSB0cmFuc2Zv
cm3igJlzIG9yaWVudGF0aW9uIHRvIHsgeDogMC4wLCB5OiAwLjAsIHo6IDAuMCwgdzogMS4wIH0u
CisgICAgLy8gICA2LiBFbHNlIGluaXRpYWxpemUgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbuKA
mXMgeCB2YWx1ZSB0byBvcmllbnRhdGlvbuKAmXMgeCBkaWN0aW9uYXJ5IG1lbWJlciwgeSB2YWx1
ZSB0byBvcmllbnRhdGlvbuKAmXMgeSBkaWN0aW9uYXJ5IG1lbWJlciwgeiB2YWx1ZSB0byBvcmll
bnRhdGlvbuKAmXMgeiBkaWN0aW9uYXJ5IG1lbWJlciBhbmQgdyB2YWx1ZSB0byBvcmllbnRhdGlv
buKAmXMgdyBkaWN0aW9uYXJ5IG1lbWJlci4KKyAgICAvLyAgIDcuIE5vcm1hbGl6ZSB4LCB5LCB6
LCBhbmQgdyBjb21wb25lbnRzIG9mIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb24uCisgICAgRE9N
UG9pbnRJbml0IG9yaWVudGF0aW9uSW5pdCB7IG9yaWVudGF0aW9uLngsIG9yaWVudGF0aW9uLnks
IG9yaWVudGF0aW9uLnosIG9yaWVudGF0aW9uLncgfTsKKyAgICB7CisgICAgICAgIGRvdWJsZSBs
ZW5ndGggPSBzdGQ6OnNxcnQob3JpZW50YXRpb25Jbml0LnggKiBvcmllbnRhdGlvbkluaXQueCAr
IG9yaWVudGF0aW9uSW5pdC55ICogb3JpZW50YXRpb25Jbml0LnkKKyAgICAgICAgICAgICsgb3Jp
ZW50YXRpb25Jbml0LnogKiBvcmllbnRhdGlvbkluaXQueiArIG9yaWVudGF0aW9uSW5pdC53ICog
b3JpZW50YXRpb25Jbml0LncpOworICAgICAgICBpZiAoV1RGOjphcmVFc3NlbnRpYWxseUVxdWFs
PGRvdWJsZT4obGVuZ3RoLCAwKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9OworCisgICAgICAgIG9yaWVudGF0aW9uSW5pdD0geworICAgICAgICAg
ICAgb3JpZW50YXRpb25Jbml0LnggLyBsZW5ndGgsIG9yaWVudGF0aW9uSW5pdC55IC8gbGVuZ3Ro
LAorICAgICAgICAgICAgb3JpZW50YXRpb25Jbml0LnogLyBsZW5ndGgsIG9yaWVudGF0aW9uSW5p
dC53IC8gbGVuZ3RoLAorICAgICAgICB9OworICAgIH0KKworICAgIC8vICAgOC4gUmV0dXJuIHRy
YW5zZm9ybS4KKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlJpZ2lkVHJhbnNmb3JtKHBvc2l0
aW9uSW5pdCwgb3JpZW50YXRpb25Jbml0KSk7Cit9CisKK1hSUmlnaWRUcmFuc2Zvcm06OlhSUmln
aWRUcmFuc2Zvcm0oY29uc3QgRE9NUG9pbnRJbml0JiBwb3NpdGlvbiwgY29uc3QgRE9NUG9pbnRJ
bml0JiBvcmllbnRhdGlvbikKKyAgICA6IG1fcG9zaXRpb24oRE9NUG9pbnRSZWFkT25seTo6Y3Jl
YXRlKHBvc2l0aW9uKSkKKyAgICAsIG1fb3JpZW50YXRpb24oRE9NUG9pbnRSZWFkT25seTo6Y3Jl
YXRlKG9yaWVudGF0aW9uKSkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3Blcmx5LCBw
ZXIgc3BlYy4KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXg7CisgICAgYXV0byBtYXRy
aXhEYXRhID0gbWF0cml4LnRvQ29sdW1uTWFqb3JGbG9hdEFycmF5KCk7CisgICAgbV9tYXRyaXgg
PSBGbG9hdDMyQXJyYXk6OmNyZWF0ZShtYXRyaXhEYXRhLmRhdGEoKSwgbWF0cml4RGF0YS5zaXpl
KCkpOworfQorCitYUlJpZ2lkVHJhbnNmb3JtOjp+WFJSaWdpZFRyYW5zZm9ybSgpID0gZGVmYXVs
dDsKKworY29uc3QgRE9NUG9pbnRSZWFkT25seSYgWFJSaWdpZFRyYW5zZm9ybTo6cG9zaXRpb24o
KSBjb25zdAoreworICAgIHJldHVybiBtX3Bvc2l0aW9uOworfQorCitjb25zdCBET01Qb2ludFJl
YWRPbmx5JiBYUlJpZ2lkVHJhbnNmb3JtOjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fb3JpZW50YXRpb247Cit9CisKK1JlZjxGbG9hdDMyQXJyYXk+ICBYUlJpZ2lkVHJhbnNm
b3JtOjptYXRyaXgoKSBjb25zdAoreworICAgIGF1dG8gbWF0cml4ID0gRmxvYXQzMkFycmF5Ojpj
cmVhdGUoMTYpOworICAgIG1hdHJpeC0+emVyb0ZpbGwoKTsKKyAgICByZXR1cm4gbWF0cml4Owor
fQorCitSZWY8WFJSaWdpZFRyYW5zZm9ybT4gWFJSaWdpZFRyYW5zZm9ybTo6aW52ZXJzZSgpIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCBwcm9wZXJseS4KKyAgICByZXR1cm4gWFJS
aWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDc2Y2Y3YWZmZGUwMDI1ZWI1NjVkMzg5MGRjMTJhYTI0NTQ3YTgyYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5o
CkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVBvaW50SW5pdDsKK2NsYXNzIERP
TVBvaW50UmVhZE9ubHk7CisKK2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291
bnRlZDxYUlJpZ2lkVHJhbnNmb3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJp
Z2lkVHJhbnNmb3JtKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+
IGNyZWF0ZSgpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+
IGNyZWF0ZShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+
WFJSaWdpZFRyYW5zZm9ybSgpOworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRp
b24oKSBjb25zdDsKKyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNv
bnN0OworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxYUlJp
Z2lkVHJhbnNmb3JtPiBpbnZlcnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSaWdpZFRy
YW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAg
IFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBtX29yaWVudGF0aW9uOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY4M2FiNDE2YmM1ZmNi
MzNkZTNlMDE1YzljZWM3NTQzNzdjNTE2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVD
b250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFsIERP
TVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0aW9uKSwK
KyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmlnaWRUcmFuc2Zvcm0geworICAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seSBwb3NpdGlvbjsKKyAgICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVBvaW50UmVhZE9ubHkgb3JpZW50YXRpb247
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBtYXRyaXg7CisgICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYy
NzYyNTMyZjcxNzBiMjVlY2Q2MDZlZWJkZWMxMmE1OTM1NzQ1NzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw4
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTZXNz
aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlNlc3Npb24pOworCitY
UlNlc3Npb246On5YUlNlc3Npb24oKSA9IGRlZmF1bHQ7CisKK1hSRW52aXJvbm1lbnRCbGVuZE1v
ZGUgWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7Cit9CisKK1hSVmlzaWJpbGl0eVN0YXRlIFhSU2Vzc2lv
bjo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmlsaXR5U3Rh
dGU7Cit9CisKK2NvbnN0IFhSUmVuZGVyU3RhdGUmIFhSU2Vzc2lvbjo6cmVuZGVyU3RhdGUoKSBj
b25zdAoreworICAgIHJldHVybiAqbV9yZW5kZXJTdGF0ZTsKK30KKworY29uc3QgWFJJbnB1dFNv
dXJjZUFycmF5JiBYUlNlc3Npb246OmlucHV0U291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICptX2lucHV0U291cmNlczsKK30KKwordm9pZCBYUlNlc3Npb246OnVwZGF0ZVJlbmRlclN0YXRl
KGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0JikKK3sKK30KKwordm9pZCBYUlNlc3Npb246OnJlcXVl
c3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZl
cmVuY2VTcGFjZVByb21pc2UmJikKK3sKK30KKworaW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1h
dGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJldHVybiAw
OworfQorCit2b2lkIFhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQoreworfQor
Cit2b2lkIFhSU2Vzc2lvbjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3QgY2hhciog
WFJTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlhS
U2Vzc2lvbiI7Cit9CisKK3ZvaWQgWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTRiNmYxYzllYzQ2NTUzNjJkMzMzNjE0MDQ2OGViOTI2MDdmOTMyNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmgKQEAg
LTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRNb2RlLmgi
CisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5LmgiCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAiWFJTcGFj
ZS5oIgorI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBY
UkZyYW1lUmVxdWVzdENhbGxiYWNrOworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK2NsYXNzIFhS
UmVuZGVyU3RhdGVJbml0OworCitjbGFzcyBYUlNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291
bnRlZDxYUlNlc3Npb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGlj
IEFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlNlc3Npb24p
OworcHVibGljOgorICAgIHVzaW5nIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21pc2UgPSBET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFhSUmVmZXJlbmNlU3BhY2U+PjsKKyAgICB1c2lu
ZyBFbmRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+OworCisgICAgdmlydHVhbCB+
WFJTZXNzaW9uKCk7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFhSU2Vzc2lvbj46OnJlZjsKKyAg
ICB1c2luZyBSZWZDb3VudGVkPFhSU2Vzc2lvbj46OmRlcmVmOworCisgICAgWFJFbnZpcm9ubWVu
dEJsZW5kTW9kZSBlbnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0OworICAgIFhSVmlzaWJpbGl0
eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IFhSUmVuZGVyU3RhdGUm
IHJlbmRlclN0YXRlKCkgY29uc3Q7CisgICAgY29uc3QgWFJJbnB1dFNvdXJjZUFycmF5JiBpbnB1
dFNvdXJjZXMoKSBjb25zdDsKKworICAgIHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUoY29uc3QgWFJS
ZW5kZXJTdGF0ZUluaXQmKTsKKyAgICB2b2lkIHJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBY
UlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21pc2UmJik7CisK
KyAgICBpbnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNr
PiYmKTsKKyAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBoYW5kbGUpOworCisgICAg
dm9pZCBlbmQoRW5kUHJvbWlzZSYmKTsKKworICAgIGJvb2wgZW5kZWQoKSBjb25zdCB7IHJldHVy
biBtX2VuZGVkOyB9CisKK3Byb3RlY3RlZDoKKyAgICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50
VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gWFJTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9i
amVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKworICAgIFhSRW52aXJvbm1lbnRCbGVuZE1v
ZGUgbV9lbnZpcm9ubWVudEJsZW5kTW9kZTsKKyAgICBYUlZpc2liaWxpdHlTdGF0ZSBtX3Zpc2li
aWxpdHlTdGF0ZTsKKyAgICBSZWZQdHI8WFJSZW5kZXJTdGF0ZT4gbV9yZW5kZXJTdGF0ZTsKKyAg
ICBSZWZQdHI8WFJJbnB1dFNvdXJjZUFycmF5PiBtX2lucHV0U291cmNlczsKKyAgICBib29sIG1f
ZW5kZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyM2E1MmY1OTIz
YTRmYjhiMTM1YzU5OGMwNzNjNjMwOTE1OWNlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5pZGwKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25h
bD1XRUJHTCwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBF
eHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJTZXNzaW9uIDogRXZlbnRUYXJnZXQgeworICAg
IC8vIEF0dHJpYnV0ZXMKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJFbnZpcm9ubWVudEJsZW5k
TW9kZSBlbnZpcm9ubWVudEJsZW5kTW9kZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJWaXNp
YmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgWFJSZW5kZXJTdGF0ZSByZW5kZXJTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFhSSW5wdXRTb3VyY2VBcnJheSBpbnB1dFNvdXJjZXM7CisKKyAgICAv
LyBNZXRob2RzCisgICAgdm9pZCB1cGRhdGVSZW5kZXJTdGF0ZShvcHRpb25hbCBYUlJlbmRlclN0
YXRlSW5pdCBzdGF0ZUluaXQpOworICAgIFtOZXdPYmplY3RdIFByb21pc2U8WFJSZWZlcmVuY2VT
cGFjZT4gcmVxdWVzdFJlZmVyZW5jZVNwYWNlKFhSUmVmZXJlbmNlU3BhY2VUeXBlIHR5cGUpOwor
CisgICAgbG9uZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoWFJGcmFtZVJlcXVlc3RDYWxsYmFjayBj
YWxsYmFjayk7CisgICAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZShsb25nIGhhbmRsZSk7CisK
KyAgICBQcm9taXNlPHZvaWQ+IGVuZCgpOworCisgICAgLy8gRXZlbnRzCisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbmVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0
OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25pbnB1dHNvdXJjZXNjaGFuZ2U7CisgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNlbGVjdHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25zZWxlY3RlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnZpc2li
aWxpdHljaGFuZ2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTU5ZGFiYjZmM2NlNjUzZmEzOTJjZDc2MTcwY2Ri
N2VhNTQxMTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25FdmVudC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uRXZlbnQuaCIKKworI2luY2x1ZGUg
IlhSU2Vzc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUlNlc3Npb25FdmVu
dD4gWFJTZXNzaW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJ
bml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBYUlNlc3Npb25FdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7
Cit9CisKK1hSU2Vzc2lvbkV2ZW50OjpYUlNlc3Npb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0
eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6
IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3Nlc3Npb24oaW5p
dGlhbGl6ZXIuc2Vzc2lvbikKK3sKKyAgICBBU1NFUlQobV9zZXNzaW9uKTsKK30KKworWFJTZXNz
aW9uRXZlbnQ6On5YUlNlc3Npb25FdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNzaW9u
JiBYUlNlc3Npb25FdmVudDo6c2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX3Nlc3Np
b247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2UxZjllNmExOGUzOTA2Mzdm
NGI3MDYyYTY3ZWI3MWJjMGUyNWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFhSU2Vzc2lvbjsKKworY2xhc3MgWFJTZXNzaW9uRXZlbnQgZmluYWwg
OiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsK
KyAgICAgICAgUmVmUHRyPFhSU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICB9OworCisgICAgc3RhdGlj
IFJlZjxYUlNlc3Npb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0
JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+WFJTZXNzaW9uRXZl
bnQoKTsKKworICAgIGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworCitwcml2YXRl
OgorICAgIFhSU2Vzc2lvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNU
cnVzdGVkKTsKKworICAgIFJlZlB0cjxYUlNlc3Npb24+IG1fc2Vzc2lvbjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNl
c3Npb25FdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY0NDM2NmRmNjEzZWY5MTBjODI1MGYxYjRhMzM5
MzI4NmY4N2FhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitdIGRp
Y3Rpb25hcnkgWFJTZXNzaW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBY
UlNlc3Npb24gc2Vzc2lvbjsKK307CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAor
ICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1X
aW5kb3csCisgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFhSU2Vzc2lvbkV2ZW50SW5p
dCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJTZXNzaW9uRXZlbnQgOiBFdmVudCB7Cisg
ICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNlc3Npb24gc2Vzc2lvbjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYyYjQ3Y2MyNmE0MTgyNzljNWY5Y2ZlMmZiMWU2MWExNTkwZWMyZjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNw
YWNlIEpTQyB7CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBYUlNlc3Npb25Jbml0IHsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVlPiByZXF1aXJlZEZl
YXR1cmVzOworICAgIFZlY3RvcjxKU0M6OkpTVmFsdWU+IG9wdGlvbmFsRmVhdHVyZXM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25Jbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOGM5MjhlOGJiN2U1MTdhNTk5ZjYxNzQw
YmFiNTMyZjg0OGU5NjEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGRpY3Rpb25hcnkgWFJTZXNzaW9uSW5p
dCB7CisgICAgc2VxdWVuY2U8YW55PiByZXF1aXJlZEZlYXR1cmVzOworICAgIHNlcXVlbmNlPGFu
eT4gb3B0aW9uYWxGZWF0dXJlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJTZXNzaW9uTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMWVjNjU4ZmZiYmJkNzQ5OTliNGI5N2ViODdh
NzliOTllY2JiOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSU2Vzc2lvbk1vZGUuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIFhSU2Vzc2lvbk1vZGUgPSBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlNlc3Npb25Nb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uTW9kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYxNTUxNzk2ZmNkMDgwZWExNzkwZjVlZTM2Mzhk
NDMyMmQxODQwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uTW9kZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUgorXSBlbnVtIFhSU2Vzc2lvbk1vZGUgeworICAgICJp
bmxpbmUiLAorICAgICJpbW1lcnNpdmUtdnIiLAorICAgICJpbW1lcnNpdmUtYXIiCit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRhNzAwODlh
NTM4MmIyMmVkOGZmNTM1MmM1NDFkOGRjYjZjYTdjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWFJTcGFjZSk7CisKK1hSU3BhY2U6OlhSU3Bh
Y2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyKCZjb250ZXh0KQoreworfQorCitYUlNwYWNlOjp+WFJTcGFjZSgpID0gZGVm
YXVsdDsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU3BhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTU5MTM5Mjk2NjM3NzhiMGI3YTQ0ZmNlZTBkNDIxZjFm
YzQ3MjRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNwYWNlLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIFhSU3BhY2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxYUlNwYWNlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChYUlNwYWNlKTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUlNwYWNlKCk7CisK
KyAgICB1c2luZyBSZWZDb3VudGVkPFhSU3BhY2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRl
ZDxYUlNwYWNlPjo6ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAgICBYUlNwYWNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
KworcHJpdmF0ZToKKyAgICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWFJTcGFjZUV2
ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBk
ZXJlZigpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNwYWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWExZjhhMDFmMDVkMDUyMzk4ZDcy
NDI1NWFjNWUyNWFmMjI5MTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNwYWNlLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhw
b3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFhSU3BhY2UgOiBFdmVudFRhcmdldCB7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTc0NTNl
MzY0ODBlZTRkNGNlMmIzN2FjYjFmOTkwMTI5Nzc1YzEwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAKQEAgLTAsMCArMSw4OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTeXN0ZW0uaCIK
KworI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChYUlN5c3RlbSk7CisKK1JlZjxYUlN5c3RlbT4gWFJTeXN0ZW06OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFhSU3lzdGVtKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKK30KKworWFJTeXN0
ZW06OlhSU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7Cit9
CisKK1hSU3lzdGVtOjp+WFJTeXN0ZW0oKSA9IGRlZmF1bHQ7CisKK3ZvaWQgWFJTeXN0ZW06Omlz
U2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNl
JiYpCit7CisgICAgLy8gV2hlbiB0aGUgc3VwcG9ydHNTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBp
bnZva2VkLCBpdCBNVVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1biB0aGUg
Zm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gRW5zdXJlIGFuIFhSIGRl
dmljZSBpcyBzZWxlY3RlZC4KKyAgICAvLyAgIDIuIElmIHRoZSBYUiBkZXZpY2UgaXMgbnVsbCwg
cmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDMuIElmIHRoZSBYUiBkZXZpY2UncyBsaXN0
IG9mIHN1cHBvcnRlZCBtb2RlcyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJlamVjdCBwcm9taXNl
IHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCisgICAgLy8gICA0LiBFbHNlIHJlc29sdmUgcHJvbWlzZS4KK30KKwordm9pZCBYUlN5
c3RlbTo6cmVxdWVzdFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYs
IFJlcXVlc3RTZXNzaW9uUHJvbWlzZSYmKQoreworICAgIFBsYXRmb3JtWFI6Okluc3RhbmNlOjpz
aW5nbGV0b24oKTsKKworICAgIC8vIFdoZW4gdGhlIHJlcXVlc3RTZXNzaW9uKG1vZGUpIG1ldGhv
ZCBpcyBpbnZva2VkLCB0aGUgdXNlciBhZ2VudCBNVVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHBy
b21pc2UgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAg
MS4gTGV0IGltbWVyc2l2ZSBiZSB0cnVlIGlmIG1vZGUgaXMgImltbWVyc2l2ZS12ciIgb3IgImlt
bWVyc2l2ZS1hciIsIGFuZCBmYWxzZSBvdGhlcndpc2UuCisgICAgLy8gICAyLiBJZiBpbW1lcnNp
dmUgaXMgdHJ1ZToKKyAgICAvLyAgICAgMS4gSWYgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiBp
cyB0cnVlIG9yIGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBpcyBub3QgbnVsbCwgcmVqZWN0IHBy
b21pc2Ugd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgLy8gICAgIDIuIEVsc2Ugc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNl
c3Npb24gdG8gYmUgdHJ1ZS4KKyAgICAvLyAgIDMuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2Vs
ZWN0ZWQuCisgICAgLy8gICA0LiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9t
aXNlIHdpdGggbnVsbC4KKyAgICAvLyAgIDUuIEVsc2UgaWYgdGhlIFhSIGRldmljZSdzIGxpc3Qg
b2Ygc3VwcG9ydGVkIG1vZGVzIGRvZXMgbm90IGNvbnRhaW4gbW9kZSwgcmVqZWN0IHByb21pc2Ug
d2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLgorICAgIC8vICAgNi4gRWxz
ZSBJZiBpbW1lcnNpdmUgaXMgdHJ1ZSBhbmQgdGhlIGFsZ29yaXRobSBpcyBub3QgdHJpZ2dlcmVk
IGJ5IHVzZXIgYWN0aXZhdGlvbiwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJTZWN1cml0eUVycm9y
IiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNy4gSWYgcHJv
bWlzZSB3YXMgcmVqZWN0ZWQgYW5kIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgcGVuZGluZyBpbW1l
cnNpdmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAgIDguIElmIHByb21pc2Ugd2FzIHJlamVj
dGVkLCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDkuIExldCBzZXNzaW9uIGJlIGEgbmV3
IFhSU2Vzc2lvbiBvYmplY3QuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgc2Vzc2lvbiB3
aXRoIHNlc3Npb24gYW5kIG1vZGUuCisgICAgLy8gICAxMS4gSWYgaW1tZXJzaXZlIGlzIHRydWUs
IHNldCB0aGUgYWN0aXZlIGltbWVyc2l2ZSBzZXNzaW9uIHRvIHNlc3Npb24sIGFuZCBzZXQgcGVu
ZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAgIDEyLiBFbHNlIGFwcGVu
ZCBzZXNzaW9uIHRvIHRoZSBsaXN0IG9mIGlubGluZSBzZXNzaW9ucy4KKyAgICAvLyAgIDEzLiBS
ZXNvbHZlIHByb21pc2Ugd2l0aCBzZXNzaW9uLgorfQorCitjb25zdCBjaGFyKiBYUlN5c3RlbTo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYUlN5c3RlbSI7Cit9
CisKK3ZvaWQgWFJTeXN0ZW06OnN0b3AoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVlYmYy
ZWUxZjIxZDdkYmZjZDA4ZGZjNTVjYmIwOWM5MmMxMWQxYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaApAQCAtMCwwICsxLDcwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgWFJTZXNzaW9uOworY2xhc3Mg
WFJTZXNzaW9uSW5pdDsKKworY2xhc3MgWFJTeXN0ZW0gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxYUlN5c3RlbT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0
aXZlRE9NT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSU3lzdGVtKTsKK3B1
YmxpYzoKKyAgICB1c2luZyBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlID0gRE9NUHJvbWlzZURl
ZmVycmVkPElETEJvb2xlYW4+OworICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8WFJTZXNzaW9uPj47CisKKyAgICBzdGF0aWMg
UmVmPFhSU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1
YWwgflhSU3lzdGVtKCk7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFhSU3lzdGVtPjo6cmVmOwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8WFJTeXN0ZW0+OjpkZXJlZjsKKworICAgIHZvaWQgaXNTZXNz
aW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUsIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UmJik7
CisgICAgdm9pZCByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlLCBjb25zdCBYUlNlc3Npb25J
bml0JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYpOworCitwcm90ZWN0ZWQ6CisgICAgWFJTeXN0
ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBF
dmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFhSU3lzdGVtRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9Cisg
ICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURP
TU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTQ5YTQxY2U3NTk1NzQyMzQ0ZDVhYjc4MTliNjE5YzhmYWZiOGU3ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaWRsCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5k
b3cKK10gaW50ZXJmYWNlIFhSU3lzdGVtIDogRXZlbnRUYXJnZXQgeworICAgIC8vIE1ldGhvZHMK
KyAgICBQcm9taXNlPHZvaWQ+IGlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlIG1vZGUp
OworICAgIFtOZXdPYmplY3RdIFByb21pc2U8WFJTZXNzaW9uPiByZXF1ZXN0U2Vzc2lvbihYUlNl
c3Npb25Nb2RlIG1vZGUsIG9wdGlvbmFsIFhSU2Vzc2lvbkluaXQgb3B0aW9ucyk7CisKKyAgICAv
LyBFdmVudHMKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGV2aWNlY2hhbmdlOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZmNTVmMTUyMDFjYTkxNjg0ZGM2YjEwNTYwMGJiZTIwNmU5ZjYxZDUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5o
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBYUlRhcmdldFJheU1vZGUgeworICAgIEdhemUsCisg
ICAgVHJhY2tlZFBvaW50ZXIsCisgICAgU2NyZWVuLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJh
eU1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhhZDljMDFhNzYzYzM4NmY4NWZkY2QwYjRjNDBlMTRmOTQwYTZkNDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0
UmF5TW9kZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUgorXSBlbnVtIFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgImdhemUiLAor
ICAgICJ0cmFja2VkLXBvaW50ZXIiLAorICAgICJzY3JlZW4iCit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMjI4NzZjYWUyNjliNmNlZGM1YzQz
N2RjNWE4Mzc2MzQ2YmU2NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSVmlldy5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJWaWV3LmgiCisKKyNpbmNsdWRlICJYUlJpZ2lk
VHJhbnNmb3JtLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlZpZXcpOworCitSZWY8WFJWaWV3
PiBYUlZpZXc6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJWaWV3KTsK
K30KKworWFJWaWV3OjpYUlZpZXcoKQorICAgIDogbV9leWUoWFJFeWU6OkxlZnQpCisgICAgLCBt
X3Byb2plY3Rpb25NYXRyaXgoRmxvYXQzMkFycmF5OjpjcmVhdGUoMCkpCisgICAgLCBtX3RyYW5z
Zm9ybShYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sKK30KKworWFJWaWV3Ojp+WFJWaWV3
KCkgPSBkZWZhdWx0OworCitYUkV5ZSBYUlZpZXc6OmV5ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZXllOworfQorCitjb25zdCBGbG9hdDMyQXJyYXkmIFhSVmlldzo6cHJvamVjdGlvbk1hdHJp
eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvamVjdGlvbk1hdHJpeDsKK30KKworY29uc3Qg
WFJSaWdpZFRyYW5zZm9ybSYgWFJWaWV3Ojp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVy
biBtX3RyYW5zZm9ybTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBiZjM1OTNlMWY5ZTU5MDJlY2VlYTM4
MmFkMDhkMWU0NjAxMGMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJWaWV3LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIlhSRXllLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxv
YXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm07CisKK2NsYXNzIFhSVmlldyA6IHB1YmxpYyBSZWZD
b3VudGVkPFhSVmlldz4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJWaWV3KTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSVmlldz4gY3JlYXRlKCk7CisgICAgflhSVmlldygpOwor
CisgICAgWFJFeWUgZXllKCkgY29uc3Q7CisgICAgY29uc3QgRmxvYXQzMkFycmF5JiBwcm9qZWN0
aW9uTWF0cml4KCkgY29uc3Q7CisgICAgY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3Jt
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJWaWV3KCk7CisKKyAgICBYUkV5ZSBtX2V5ZTsK
KyAgICBSZWY8RmxvYXQzMkFycmF5PiBtX3Byb2plY3Rpb25NYXRyaXg7CisgICAgUmVmPFhSUmln
aWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1NmM3ZjU2
ODQxYTE0YWZjZTBmOTMxN2FmODA4NjA0ZjdiMzM5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUK
K10gaW50ZXJmYWNlIFhSVmlldyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRXllIGV5ZTsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxvYXQzMkFycmF5IHByb2plY3Rpb25NYXRyaXg7Cisg
ICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIHRyYW5z
Zm9ybTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmll
d2VyUG9zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzdmYmYyYTc2MDBiZmM3MGFiNjJjNTQxZjZiMzA4YTI3MWQxMjMxMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQ
b3NlLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJYUlZpZXdlclBvc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitS
ZWY8WFJWaWV3ZXJQb3NlPiBYUlZpZXdlclBvc2U6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgWFJWaWV3ZXJQb3NlKTsKK30KKworWFJWaWV3ZXJQb3NlOjpYUlZpZXdlclBv
c2UoKSA9IGRlZmF1bHQ7CitYUlZpZXdlclBvc2U6On5YUlZpZXdlclBvc2UoKSA9IGRlZmF1bHQ7
CisKK2NvbnN0IFZlY3RvcjxSZWY8WFJWaWV3Pj4mIFhSVmlld2VyUG9zZTo6dmlld3MoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZpZXdzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
Zjk0MGMyZjE1MjNmZGQxNTE3YWE1OTdmNGQ5ZDY0ZTg2OWY4NTUyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaApAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJQb3NlLmgi
CisjaW5jbHVkZSAiWFJWaWV3LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlZpZXdlclBvc2Ug
OiBwdWJsaWMgWFJQb3NlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSVmlld2VyUG9zZT4g
Y3JlYXRlKCk7CisgICAgflhSVmlld2VyUG9zZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxY
UlZpZXc+PiYgdmlld3MoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXdlclBvc2UoKTsK
KworICAgIFZlY3RvcjxSZWY8WFJWaWV3Pj4gbV92aWV3czsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3
ZXJQb3NlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNDNjMGE5M2VmYTNhZDExODlkYjcyMzNlOGYyZjdjMTk5YmQwMWRhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBv
c2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUlZpZXdlclBvc2UgOiBY
UlBvc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8
WFJWaWV3PiB2aWV3czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlld3BvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdw
b3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41OWYwZDg5ZTczNzQ2NWZiNTA5NmQ3Mzg1MTdjNzkyNGJkM2Nk
YWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZp
ZXdwb3J0LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJYUlZpZXdwb3J0LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChYUlZpZXdwb3J0KTsKKworUmVmPFhSVmlld3BvcnQ+IFhSVmlld3BvcnQ6OmNyZWF0
ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJWaWV3cG9ydCk7Cit9CisKK1hSVmll
d3BvcnQ6OlhSVmlld3BvcnQoKSA9IGRlZmF1bHQ7CisKK2ludCBYUlZpZXdwb3J0Ojp4KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworaW50IFhSVmlld3BvcnQ6OnkoKSBjb25zdAorewor
ICAgIHJldHVybiAwOworfQorCitpbnQgWFJWaWV3cG9ydDo6d2lkdGgoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCitpbnQgWFJWaWV3cG9ydDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSVmlld3BvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjE3YmRhMTI4MmM4YmRkZGE0Mjhk
MzQyMjg2Zjg1MDA3ZTljM2VkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBYUlZpZXdwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8WFJWaWV3cG9ydD4gewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJWaWV3cG9ydCk7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxYUlZpZXdwb3J0PiBjcmVhdGUoKTsKKworICAgIGludCB4KCkgY29uc3Q7CisgICAg
aW50IHkoKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoKSBjb25zdDsKKyAgICBpbnQgaGVpZ2h0KCkg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJWaWV3cG9ydCgpOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZp
ZXdwb3J0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTY2YzY0MDhjZWI2Y2Y5NjMxNmExNWY3MTY2YmQ0YmNjMTcyOGI4YgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5p
ZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIElt
cGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSVmlld3BvcnQgeworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeTsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyBoZWlnaHQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlZpc2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMmI2MGVkYmM5MjAxM2MzNzc5OTFjYTQ2
NDM4N2FiY2E3MGJiYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVmlz
aWJpbGl0eVN0YXRlIHsKKyAgICBWaXNpYmxlLAorICAgIFZpc2libGVCbHVycmVkLAorICAgIEhp
ZGRlbgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzdmZWNi
YzZlMjRlYzE1MjFjYmI4MmIxNWM3NTFjOTdiOWZmOGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUgorXSBl
bnVtIFhSVmlzaWJpbGl0eVN0YXRlIHsKKyAgICAidmlzaWJsZSIsCisgICAgInZpc2libGUtYmx1
cnJlZCIsCisgICAgImhpZGRlbiIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSV2ViR0xMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyMGI2ZDRmZDBlYjNhYWY0YWNlZDY2ZGI0
NmZmZDMyMWIxZGU0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVyLmNwcApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJXZWJHTExheWVyLmgiCisKKyNpbmNsdWRl
ICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmgi
CisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmgi
CisjZW5kaWYKKyNpbmNsdWRlICJYUlNlc3Npb24uaCIKKyNpbmNsdWRlICJYUlZpZXdwb3J0Lmgi
CisjaW5jbHVkZSAiWFJXZWJHTExheWVySW5pdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0V4Y2VwdGlvbk9yPFJlZjxYUldlYkdMTGF5ZXI+PiBYUldlYkdMTGF5ZXI6OmNyZWF0ZShjb25z
dCBYUlNlc3Npb24mIHNlc3Npb24sIFhSUmVuZGVyaW5nQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0
IFhSV2ViR0xMYXllckluaXQmIGluaXQpCit7CisgICAgLy8gVGhlIFhSV2ViR0xMYXllcihzZXNz
aW9uLCBjb250ZXh0LCBsYXllckluaXQpIGNvbnN0cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9s
bG93aW5nIHN0ZXBzIHdoZW4gaW52b2tlZDoKKyAgICAvLyAgIDEuIExldCBsYXllciBiZSBhIG5l
dyBYUldlYkdMTGF5ZXIKKworICAgIC8vICAgMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUg
aXMgdHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgorICAgIGlmIChzZXNzaW9uLmVuZGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgLy8gICAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRo
cm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAg
IDQuIElmIGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1F
OiBUT0RPCisKKyAgICAvLyAgIDUuIEluaXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29u
dGV4dC4KKyAgICAvLyAgIDYuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXll
ckluaXTigJlzIGFudGlhbGlhcyB2YWx1ZS4KKyAgICAvLyAgIDcuIElmIGxheWVySW5pdOKAmXMg
aWdub3JlRGVwdGhWYWx1ZXMgdmFsdWUgaXMgZmFsc2UgYW5kIHRoZSBYUiBDb21wb3NpdG9yIHdp
bGwgbWFrZSB1c2Ugb2YgZGVwdGggdmFsdWVzLCBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVE
ZXB0aFZhbHVlcyB0byBmYWxzZS4KKyAgICAvLyAgIDguIEVsc2UgSW5pdGlhbGl6ZSBsYXllcuKA
mXMgaWdub3JlRGVwdGhWYWx1ZXMgdG8gdHJ1ZQorICAgIC8vICAgOS4gSW5pdGlhbGl6ZSBsYXll
cuKAmXMgZnJhbWVidWZmZXIgdG8gYSBuZXcgb3BhcXVlIGZyYW1lYnVmZmVyIGNyZWF0ZWQgd2l0
aCBjb250ZXh0LgorICAgIC8vICAgMTAuIEluaXRpYWxpemUgdGhlIGxheWVy4oCZcyBzd2FwIGNo
YWluLgorICAgIC8vICAgMTEuIElmIGxheWVy4oCZcyBzd2FwIGNoYWluIHdhcyB1bmFibGUgdG8g
YmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFi
b3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1FOiBUT0RPCisKKyAgICAvLyAgIDEyLiBSZXR1
cm4gbGF5ZXIuCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJXZWJHTExheWVyKHNlc3Npb24s
IFdURk1vdmUoY29udGV4dCksIGluaXQpKTsKK30KKworWFJXZWJHTExheWVyOjpYUldlYkdMTGF5
ZXIoY29uc3QgWFJTZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3Qg
WFJXZWJHTExheWVySW5pdCYgaW5pdCkKKyAgICA6IG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQp
KQorICAgICwgbV9hbnRpYWxpYXMoaW5pdC5hbnRpYWxpYXMpCisgICAgLCBtX2lnbm9yZURlcHRo
VmFsdWVzKGluaXQuaWdub3JlRGVwdGhWYWx1ZXMpCit7CisgICAgbV9mcmFtZWJ1ZmZlci5vYmpl
Y3QgPSBXVEY6OnN3aXRjaE9uKG1fY29udGV4dCwKKyAgICAgICAgW10oY29uc3QgUmVmUHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJl
ZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNy
ZWF0ZSgqY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAg
IH0sCisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgW10oY29uc3QgUmVmUHRyPFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ+JiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gZnJhbWVCdWZmZXIgPSBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUo
KmNvbnRleHQpOworICAgICAgICAgICAgcmV0dXJuIGZyYW1lQnVmZmVyOworICAgICAgICB9LAor
I2VuZGlmCisgICAgICAgIFtdKFdURjo6TW9ub3N0YXRlKSB7CisgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9Cisg
ICAgKTsKK30KKworWFJXZWJHTExheWVyOjp+WFJXZWJHTExheWVyKCkgPSBkZWZhdWx0OworCiti
b29sIFhSV2ViR0xMYXllcjo6YW50aWFsaWFzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hbnRp
YWxpYXM7Cit9CisKK2Jvb2wgWFJXZWJHTExheWVyOjppZ25vcmVEZXB0aFZhbHVlcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faWdub3JlRGVwdGhWYWx1ZXM7Cit9CisKK2NvbnN0IFdlYkdMRnJh
bWVidWZmZXImIFhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXIoKSBjb25zdAoreworICAgIHJldHVy
biAqbV9mcmFtZWJ1ZmZlci5vYmplY3Q7Cit9CisKK3Vuc2lnbmVkIFhSV2ViR0xMYXllcjo6ZnJh
bWVidWZmZXJXaWR0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIud2lkdGg7
Cit9CisKK3Vuc2lnbmVkIFhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQoKSBjb25zdAor
eworICAgIHJldHVybiBtX2ZyYW1lYnVmZmVyLmhlaWdodDsKK30KKworUmVmUHRyPFhSVmlld3Bv
cnQ+IFhSV2ViR0xMYXllcjo6Z2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3JikKK3sKKyAgICByZXR1
cm4geyB9OworfQorCitkb3VibGUgWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNj
YWxlRmFjdG9yKGNvbnN0IFhSU2Vzc2lvbiYpCit7CisgICAgcmV0dXJuIDEuMDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUldlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJH
TExheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg4MmJmNGRkODc2NmE2OWU5MGU0NGM5NDE2Yzc2NmFiODVh
MjUzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMRnJhbWVidWZmZXI7CitjbGFzcyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ7CisjaWYgRU5BQkxFKFdFQkdMMikKK2NsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ7CisjZW5kaWYKK2NsYXNzIFhSU2Vzc2lvbjsKK2NsYXNzIFhSVmlldzsKK2NsYXNzIFhSVmll
d3BvcnQ7CitjbGFzcyBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBYUldlYkdMTGF5ZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2lu
ZyBYUlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+LCAKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBSZWZQdHI8
V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4sCisjZW5kaWYKKyAgICAgICAgV1RGOjpNb25vc3RhdGUK
KyAgICA+OworCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxYUldlYkdMTGF5ZXI+PiBjcmVh
dGUoY29uc3QgWFJTZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xM
YXllckluaXQmKTsKKyAgICB+WFJXZWJHTExheWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygp
IGNvbnN0OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0
IFdlYkdMRnJhbWVidWZmZXImIGZyYW1lYnVmZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJh
bWVidWZmZXJXaWR0aCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkg
Y29uc3Q7CisKKyAgICBSZWZQdHI8WFJWaWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3
Jik7CisKKyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3Io
Y29uc3QgWFJTZXNzaW9uJik7CisKK3ByaXZhdGU6CisgICAgWFJXZWJHTExheWVyKGNvbnN0IFhS
U2Vzc2lvbiYsIFhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7
CisKKyAgICBYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxp
YXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisK
KyAgICBzdHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0Owor
ICAgICAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsg
MCB9OworICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YjY0NzU4YmVlNjExMzI2ZDllN2MwNzdhM2MxOTdlMTYxNWQwM2Q3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250
ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0Owor
CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwK
KyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIC8vQ29uc3RydWN0
b3IoWFJTZXNzaW9uIHNlc3Npb24sIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQsIG9w
dGlvbmFsIFhSV2ViR0xMYXllckluaXQgbGF5ZXJJbml0KSwKKyAgICAvL0NvbnN0cnVjdG9yTWF5
VGhyb3dFeGNlcHRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZh
Y2UgWFJXZWJHTExheWVyIHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gYW50aWFsaWFzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGln
bm9yZURlcHRoVmFsdWVzOworCisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBX
ZWJHTEZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGZyYW1lYnVmZmVyV2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgZnJhbWVidWZmZXJIZWlnaHQ7CisKKyAgICAvLyBNZXRob2RzCisgICAgWFJWaWV3
cG9ydD8gZ2V0Vmlld3BvcnQoWFJWaWV3IHZpZXcpOworCisgICAgLy8gU3RhdGljIE1ldGhvZHMK
KyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoWFJTZXNz
aW9uIHNlc3Npb24pOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJXZWJHTExheWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldl
YkdMTGF5ZXJJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM3MThmZGUyNDVmNjEyMzc3MzNmZjc5OTU2MGFj
NDk4MzVjOTBmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJXZWJHTExheWVySW5pdC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFhSV2ViR0xMYXllcklu
aXQgeworICAgIGJvb2wgYW50aWFsaWFzIHsgdHJ1ZSB9OworICAgIGJvb2wgZGVwdGggeyB0cnVl
IH07CisgICAgYm9vbCBzdGVuY2lsIHsgZmFsc2UgfTsKKyAgICBib29sIGFscGhhIHsgdHJ1ZSB9
OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMgeyB0cnVlIH07CisgICAgZG91YmxlIGZyYW1l
YnVmZmVyU2NhbGVGYWN0b3IgeyAxLjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRhYTYzNzJkZjk0MGM0MDc2N2U5Nzk4NzYzOGE0ZTIzZTc0MTg1MTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXll
ckluaXQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViWFIKK10gZGljdGlvbmFyeSBYUldlYkdMTGF5ZXJJbml0IHsKKyAgICBib29s
ZWFuIGFudGlhbGlhcyA9IHRydWU7CisgICAgYm9vbGVhbiBkZXB0aCA9IHRydWU7CisgICAgYm9v
bGVhbiBzdGVuY2lsID0gZmFsc2U7CisgICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7CisgICAgYm9v
bGVhbiBpZ25vcmVEZXB0aFZhbHVlcyA9IGZhbHNlOworICAgIGRvdWJsZSBmcmFtZWJ1ZmZlclNj
YWxlRmFjdG9yID0gMS4wOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggMGQ1OTgy
ZTFkYzY5ZWI2ODBmMDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4uZTc1ZWNlZjE0MGFiNWNlZWYxZDBk
NmRiYzA2NmUzNWM5MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
UEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTcwLDMg
KzcwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICR7VVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9CiAgICAgJHtXUEVCQUNLRU5EX0ZET19JTkNM
VURFX0RJUlN9CiApCisKK2lmIChVU0VfT1BFTlhSKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTICR7T1BFTlhSX0xJQlJBUklFU30pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
WVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke09QRU5YUl9JTkNMVURFX0RJUlN9KQorZW5kaWYg
KCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGE3MjFmYmIx
YWQ4YTVhYTZiZGEwOWI2M2IzYTJhOWQ5OTdjOTExMmYuLjBhOTRhOTJlMGE4MTZlZjE2M2ZlNWQw
ZWI0OWFkMGQ3ZDI2ZGJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00MTEsNiArNDExLDMxIEBAIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0
dXJlVmlldy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5hdmlnYXRvckdQVS5jcHAKIAorI2lm
IEVOQUJMRV9XRUJHTAorCitNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcCBAbm8tdW5p
ZnkKK01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIEBuby11bmlmeQor
TW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5j
cHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlJl
ZmVyZW5jZVNwYWNlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAgQG5v
LXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwIEBuby11bmlmeQorTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25FdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hS
Vmlldy5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4
ci9YUldlYkdMTGF5ZXIuY3BwIEBuby11bmlmeQorCisjZW5kaWYKKwogYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3Bw
CiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkBAIC0yMDcxLDYg
KzIwOTYsOSBAQCBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKIHBsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcAogCitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKK3BsYXRm
b3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKKwogcGx1Z2lucy9ET01NaW1l
VHlwZS5jcHAKIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKIHBsdWdpbnMvRE9NUGx1Z2lu
LmNwcApAQCAtMzUxOCw2ICszNTQ2LDM4IEBAIEpTWFBhdGhOU1Jlc29sdmVyLmNwcAogSlNYUGF0
aFJlc3VsdC5jcHAKIEpTWFNMVFByb2Nlc3Nvci5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitK
U1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNw
cAorSlNYUkV5ZS5jcHAKK0pTWFJGcmFtZS5jcHAKK0pTWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5j
cHAKK0pTWFJIYW5kZWRuZXNzLmNwcAorSlNYUklucHV0U291cmNlLmNwcAorSlNYUklucHV0U291
cmNlQXJyYXkuY3BwCitKU1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKK0pTWFJQb3NlLmNwcAorSlNY
UlJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hSUmVm
ZXJlbmNlU3BhY2VUeXBlLmNwcAorSlNYUlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRlclN0YXRl
SW5pdC5jcHAKK0pTWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTWFJTZXNzaW9uLmNwcAorSlNYUlNl
c3Npb25FdmVudC5jcHAKK0pTWFJTZXNzaW9uTW9kZS5jcHAKK0pTWFJTcGFjZS5jcHAKK0pTWFJT
eXN0ZW0uY3BwCitKU1hSVGFyZ2V0UmF5TW9kZS5jcHAKK0pTWFJWaWV3LmNwcAorSlNYUlZpZXdl
clBvc2UuY3BwCitKU1hSVmlld3BvcnQuY3BwCitKU1hSV2ViR0xMYXllci5jcHAKK0pTWFJXZWJH
TExheWVySW5pdC5jcHAKKworI2VuZGlmCisKICNpZiBFTkFCTEVfR0FNRVBBRAogCiBKU0dhbWVw
YWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAppbmRleCAzMDViY2Y1MTQ0ZTAyZTM2
MWU1ZDMyZjA0NzU0MTVlNThiODY1ZmYzLi45NGYzMTY1ZTFmMjdiYTAyY2E5ZDZiMzIyNDJjZDMx
MzRlYjEzMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKQEAgLTYyLDYgKzYyLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBJRExUeXBlIHsKICAgICB1c2luZyBJbXBs
ZW1lbnRhdGlvblR5cGUgPSBUOwogICAgIHVzaW5nIFN0b3JhZ2VUeXBlID0gVDsKKyAgICB1c2lu
ZyBTZXF1ZW5jZVN0b3JhZ2VUeXBlID0gVDsKIAogICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBU
OwogICAgIHVzaW5nIE51bGxhYmxlUGFyYW1ldGVyVHlwZSA9IE9wdGlvbmFsPEltcGxlbWVudGF0
aW9uVHlwZT47CkBAIC04Miw2ICs4Myw3IEBAIHN0cnVjdCBJRExVbnN1cHBvcnRlZFR5cGUgOiBJ
RExUeXBlPHZvaWQ+IHsgfTsKIHN0cnVjdCBJRExOdWxsIDogSURMVHlwZTxzdGQ6Om51bGxwdHJf
dD4geyB9OwogCiBzdHJ1Y3QgSURMQW55IDogSURMVHlwZTxKU0M6OlN0cm9uZzxKU0M6OlVua25v
d24+PiB7CisgICAgdXNpbmcgU2VxdWVuY2VTdG9yYWdlVHlwZSA9IEpTQzo6SlNWYWx1ZTsKICAg
ICB1c2luZyBQYXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIE51bGxhYmxl
UGFyYW1ldGVyVHlwZSA9IEpTQzo6SlNWYWx1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAppbmRleCBjNDlkZDkzOGZjZTI3MTY1
Zjc0N2U1OGZlMDhhNTUzZGJiZmRmNWMyLi44NmY3ZjI3NmZjMDhhZTA3YzAxMDAwMjIyZDM1OWYw
ZWZlYjVhZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgRGV0YWlsIHsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KIHN0cnVjdCBHZW5lcmljU2VxdWVuY2VDb252ZXJ0
ZXIgewotICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6SW1w
bGVtZW50YXRpb25UeXBlPjsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gVmVjdG9yPHR5cGVuYW1l
IElETFR5cGU6OlNlcXVlbmNlU3RvcmFnZVR5cGU+OwogCiAgICAgc3RhdGljIFJldHVyblR5cGUg
Y29udmVydChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpT
T2JqZWN0KiBvYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDQ0ZDUwYjIwN2M1MzhhMTk3OTJiNGYzMjI2YWZl
NjUyODc3ODcyMDkuLjE4ODJhOWVmZmUyNDBjNDU5YmQ1ZDM0MjYxN2EwY2Q5MzNjMmQ4ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
QEAgLTIzNSw2ICsyMzUsMjUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFdvcmts
ZXRHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKFdyaXRhYmxlU3RyZWFtKSBcCiAgICAgbWFjcm8o
WE1MSHR0cFJlcXVlc3QpIFwKKyAgICBtYWNybyhYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSkgXAor
ICAgIG1hY3JvKFhSRnJhbWUpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlKSBcCisgICAgbWFj
cm8oWFJJbnB1dFNvdXJjZUFycmF5KSBcCisgICAgbWFjcm8oWFJJbnB1dFNvdXJjZUV2ZW50KSBc
CisgICAgbWFjcm8oWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCkgXAorICAgIG1hY3JvKFhSUG9z
ZSkgXAorICAgIG1hY3JvKFhSUmVmZXJlbmNlU3BhY2UpIFwKKyAgICBtYWNybyhYUlJlZmVyZW5j
ZVNwYWNlRXZlbnQpIFwKKyAgICBtYWNybyhYUlJlbmRlclN0YXRlKSBcCisgICAgbWFjcm8oWFJS
aWdpZFRyYW5zZm9ybSkgXAorICAgIG1hY3JvKFhSU2Vzc2lvbikgXAorICAgIG1hY3JvKFhSU2Vz
c2lvbkV2ZW50KSBcCisgICAgbWFjcm8oWFJTcGFjZSkgXAorICAgIG1hY3JvKFhSU3lzdGVtKSBc
CisgICAgbWFjcm8oWFJWaWV3KSBcCisgICAgbWFjcm8oWFJWaWV3ZXJQb3NlKSBcCisgICAgbWFj
cm8oWFJWaWV3cG9ydCkgXAorICAgIG1hY3JvKFhSV2ViR0xMYXllcikgXAogICAgIG1hY3JvKGFw
cGVuZEZyb21KUykgXAogICAgIG1hY3JvKGFzc29jaWF0ZWRSZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyKSBcCiAgICAgbWFjcm8oYXV0b0FsbG9jYXRlQ2h1bmtTaXplKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAppbmRleCBkNDk2MGI5Y2Y3NTFmNDExNDIyYjY3MDg0MWEwNWI4YmQyYzcxYzI4
Li5mOGMxZDM1YWZjZGEzOWQzNGE2ZWVhNzM1N2NjOGMzNDhiY2FkZjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyhpbmFjdGl2ZSkgXAog
ICAgIG1hY3JvKGlucHV0KSBcCisgICAgbWFjcm8oaW5wdXRzb3VyY2VzY2hhbmdlKSBcCiAgICAg
bWFjcm8oaW5zdGFsbCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKICAgICBtYWNybyhrZXlkb3du
KSBcCkBAIC0yMzEsNiArMjMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHNl
ZWtlZCkgXAogICAgIG1hY3JvKHNlZWtpbmcpIFwKICAgICBtYWNybyhzZWxlY3QpIFwKKyAgICBt
YWNybyhzZWxlY3RlbmQpIFwKICAgICBtYWNybyhzZWxlY3Rpb25jaGFuZ2UpIFwKICAgICBtYWNy
byhzZWxlY3RzdGFydCkgXAogICAgIG1hY3JvKHNoaXBwaW5nYWRkcmVzc2NoYW5nZSkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCAxNTdmMzMxYzFiYTczYzEwZDVkMzM0OTZhZDI1ZmU2
NTNhN2M1MWEyLi5jNzkzZTNmNjYyYzZjM2VkOGVjNTUyZWEzODNhYzk2ZmM5ZmEwOTgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtODUsMyArODUsNyBAQCBNZWRpYUtleU1lc3NhZ2VF
dmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIFBvaW50ZXJFdmVudCBjb25kaXRpb25h
bD1QT0lOVEVSX0VWRU5UUwogR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9V0VC
R1BVCiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCBjb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJCitYUklucHV0U291cmNlRXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKK1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKK1hSUmVmZXJlbmNlU3BhY2VFdmVu
dCBjb25kaXRpb25hbD1XRUJHTAorWFJTZXNzaW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDgxZTdjYzlmMGI3NjUw
NTYyYWFiZmVmZTA1YTVhM2FkMWJiYmI4ZmYuLmViMGFlMDA2NjgzYTg3ZGI3ZjNiODRjNTVkMTQw
YTQ3OTdiODNiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpA
QCAtNTgsNCArNTgsNyBAQCBXb3JrZXIKIFdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1D
U1NfUEFJTlRJTkdfQVBJCiBYTUxIdHRwUmVxdWVzdAogWE1MSHR0cFJlcXVlc3RVcGxvYWQKK1hS
U2Vzc2lvbiBjb25kaXRpb25hbD1XRUJHTAorWFJTcGFjZSBjb25kaXRpb25hbD1XRUJHTAorWFJT
eXN0ZW0gY29uZGl0aW9uYWw9V0VCR0wKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTI5YjgzNTVmYjU4ZTEzMTExNDA0NTE2YzQwNjcwMTM3
OGExYjIwLi44OGIyZGNkN2E2YWI2ZDY0OTQ2NDZmMzNiZTcxMjc4NTU2MDc3YzFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTM4LDYgKzEz
OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgbV9pbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkID0gaXNFbmFibGVkOyB9
CiAgICAgYm9vbCBpbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
bnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkOyB9CiAKKyAgICB2b2lkIHNldFdlYlhSRW5hYmxlZChi
b29sIGlzRW5hYmxlZCkgeyBtX3dlYlhSRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wg
d2ViWFJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJYUkVuYWJsZWQ7IH0KKwogICAgIHZv
aWQgc2V0QWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBt
X2FjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29s
IGFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vz
c2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ7IH0KIApAQCAtNDQxLDYgKzQ0NCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzV2ViU29ja2V0RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1f
ZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5zcGVjdG9y
QWRkaXRpb25zRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3dlYlhSRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2FjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9hcmlhUmVmbGVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9v
bCBtX2l0cERlYnVnTW9kZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1Bs
YXRmb3JtWFIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MjY4ZWU2NzdhMzc5YTZiZjU1MTcwYjk5MDRmMzNi
YmU3NzFhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9Q
bGF0Zm9ybVhSLmNwcApAQCAtMCwwICsxLDIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUwMjkz
MDJiNjA5MDkyZThkN2Q2MzI5M2UyMGJjMTFiMzI3YmM1NAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgUGxhdGZv
cm1YUiB7CisKK2VudW0gY2xhc3MgU2Vzc2lvbk1vZGUgeworICAgIElubGluZSwKKyAgICBJbW1l
cnNpdmVWciwKKyAgICBJbW1lcnNpdmVBciwKK307CisKK2NsYXNzIERldmljZSA6IHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxEZXZpY2U+IHsKK3B1YmxpYzoKK307CisKK2NsYXNzIEluc3RhbmNlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgSW5zdGFuY2UmIHNpbmdsZXRvbigpOworCitwcml2YXRlOgor
ICAgIEluc3RhbmNlKCk7CisgICAgfkluc3RhbmNlKCk7CisKKyAgICBzdHJ1Y3QgSW1wbDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW1wbD4gbV9pbXBsOworfTsKKworfSAvLyBuYW1lc3BhY2UgUGxh
dGZvcm1YUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1Bs
YXRmb3JtWFIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3Jt
WFIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA0MDFjOWI1ZTEzYjdkZjk3YzFiZWEwMWY3ZjdiZTZmMWY0MTll
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIv
UGxhdGZvcm1YUi5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhLCBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtWFIu
aCIKKworI2lmIFVTRV9PUEVOWFIKKyNpbmNsdWRlIDxvcGVueHIvb3BlbnhyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjZW5kaWYgLy8gVVNFX09QRU5YUgorCituYW1lc3BhY2UgUGxhdGZv
cm1YUiB7CisKKyNpZiBVU0VfT1BFTlhSCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIFhyU3RydWN0
dXJlVHlwZSBTdHJ1Y3R1cmVUeXBlPgorVCBjcmVhdGVTdHJ1Y3R1cmUoKQoreworICAgIFQgb2Jq
ZWN0OworICAgIHN0ZDo6bWVtc2V0KCZvYmplY3QsIDAsIHNpemVvZihUKSk7CisgICAgb2JqZWN0
LnR5cGUgPSBTdHJ1Y3R1cmVUeXBlOworICAgIG9iamVjdC5uZXh0ID0gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gb2JqZWN0OworfQorCitTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUs
IFhySW5zdGFuY2UgaW5zdGFuY2UpCit7CisgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9T
VFJJTkdfU0laRV07CisgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0
YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CisgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQorICAg
ICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjx1bmtu
b3duICIsIGludCh2YWx1ZSksICI+Iik7Cit9CisKKyNkZWZpbmUgUkVUVVJOX0lGX0ZBSUxFRChy
ZXN1bHQsIGNhbGwsIGluc3RhbmNlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChYUl9GQUlMRUQocmVzdWx0KSkgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMgJXM6ICVzXG4iLCBfX2Z1bmNfXywg
Y2FsbCwgcmVzdWx0VG9TdHJpbmcocmVzdWx0LCBpbnN0YW5jZSkudXRmOCgpLmRhdGEoKSk7IFwK
KyAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisKKyNlbmRpZiAvLyBVU0VfT1BF
TlhSCisKK3N0cnVjdCBJbnN0YW5jZTo6SW1wbCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgSW1wbCgpOworICAgIH5JbXBsKCk7CisKKyNpZiBVU0VfT1BFTlhS
CisgICAgWHJJbnN0YW5jZSBtX2luc3RhbmNlIHsgWFJfTlVMTF9IQU5ETEUgfTsKKyNlbmRpZiAv
LyBVU0VfT1BFTlhSCit9OworCitJbnN0YW5jZTo6SW1wbDo6SW1wbCgpCit7CisjaWYgVVNFX09Q
RU5YUgorICAgIFdURkxvZ0Fsd2F5cygiT3BlblhSOiBpbml0aWFsaXppbmdcbiIpOworCisgICAg
WyZdIHsKKyAgICAgICAgdWludDMyX3QgcHJvcGVydHlDb3VudE91dHB1dCB7IDAgfTsKKyAgICAg
ICAgWHJSZXN1bHQgcmVzdWx0ID0geHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoMCwgJnBy
b3BlcnR5Q291bnRPdXRwdXQsIG51bGxwdHIpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJl
c3VsdCwgInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsKKwor
ICAgICAgICBpZiAoIXByb3BlcnR5Q291bnRPdXRwdXQpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fs
d2F5cygieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTogbm8gcHJvcGVydGllc1xuIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8WHJBcGlM
YXllclByb3BlcnRpZXM+IHByb3BlcnRpZXMocHJvcGVydHlDb3VudE91dHB1dCk7CisgICAgICAg
IHJlc3VsdCA9IHhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRw
dXQsIG51bGxwdHIsIHByb3BlcnRpZXMuZGF0YSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxF
RChyZXN1bHQsICJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7
CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygp
OiAlenUgcHJvcGVydGllc1xuIiwgcHJvcGVydGllcy5zaXplKCkpOworICAgIH0oKTsKKworICAg
IFsmXSB7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAg
ICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0
aWVzKG51bGxwdHIsIDAsICZwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyKTsKKyAgICAgICAg
UkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJv
cGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0
cHV0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlSW5zdGFuY2VFeHRl
bnNpb25Qcm9wZXJ0aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFhyRXh0ZW5zaW9uUHJvcGVydGllcz4gcHJv
cGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0LAorICAgICAgICAgICAgW10geworICAgICAgICAg
ICAgICAgIFhyRXh0ZW5zaW9uUHJvcGVydGllcyBvYmplY3Q7CisgICAgICAgICAgICAgICAgc3Rk
OjptZW1zZXQoJm9iamVjdCwgMCwgc2l6ZW9mKFhyRXh0ZW5zaW9uUHJvcGVydGllcykpOworICAg
ICAgICAgICAgICAgIG9iamVjdC50eXBlID0gWFJfVFlQRV9FWFRFTlNJT05fUFJPUEVSVElFUzsK
KyAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICAgICAgfSgpKTsKKyAgICAg
ICAgdWludDMyX3QgcHJvcGVydHlDb3VudFdyaXR0ZW4geyAwIH07CisgICAgICAgIHJlc3VsdCA9
IHhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKG51bGxwdHIsIHByb3BlcnR5
Q291bnRPdXRwdXQsICZwcm9wZXJ0eUNvdW50V3JpdHRlbiwgcHJvcGVydGllcy5kYXRhKCkpOwor
ICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlSW5zdGFuY2VFeHRl
bnNpb25Qcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBXVEZMb2dBbHdheXMo
InhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKCk6ICV6dSBleHRlbnNpb24g
cHJvcGVydGllc1xuIiwgcHJvcGVydGllcy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIHBy
b3BlcnR5IDogcHJvcGVydGllcykgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIgIGV4dGVu
c2lvbiAnJXMnLCB2ZXJzaW9uICV1XG4iLAorICAgICAgICAgICAgICAgIHByb3BlcnR5LmV4dGVu
c2lvbk5hbWUsIHByb3BlcnR5LmV4dGVuc2lvblZlcnNpb24pOworICAgICAgICB9CisgICAgfSgp
OworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNfYXBwbGljYXRpb25OYW1lID0gIldlYlhSIChX
ZWJLaXQpIjsKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19hcHBsaWNhdGlvblZlcnNpb24g
PSAxOworCisgICAgeworICAgICAgICBhdXRvIGNyZWF0ZUluZm8gPSBjcmVhdGVTdHJ1Y3R1cmU8
WHJJbnN0YW5jZUNyZWF0ZUluZm8sIFhSX1RZUEVfSU5TVEFOQ0VfQ1JFQVRFX0lORk8+KCk7Cisg
ICAgICAgIGNyZWF0ZUluZm8uY3JlYXRlRmxhZ3MgPSAwOworICAgICAgICBzdGQ6Om1lbWNweShj
cmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5mby5hcHBsaWNhdGlvbk5hbWUsIHNfYXBwbGljYXRpb25O
YW1lLCBYUl9NQVhfQVBQTElDQVRJT05fTkFNRV9TSVpFKTsKKyAgICAgICAgY3JlYXRlSW5mby5h
cHBsaWNhdGlvbkluZm8uYXBpVmVyc2lvbiA9IFhSX0NVUlJFTlRfQVBJX1ZFUlNJT047CisgICAg
ICAgIGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwcGxpY2F0aW9uVmVyc2lvbiA9IHNfYXBw
bGljYXRpb25WZXJzaW9uOworICAgICAgICBjcmVhdGVJbmZvLmVuYWJsZWRBcGlMYXllckNvdW50
ID0gMDsKKyAgICAgICAgY3JlYXRlSW5mby5lbmFibGVkRXh0ZW5zaW9uQ291bnQgPSAwOworCisg
ICAgICAgIFhySW5zdGFuY2UgaW5zdGFuY2U7CisgICAgICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhy
Q3JlYXRlSW5zdGFuY2UoJmNyZWF0ZUluZm8sICZpbnN0YW5jZSk7CisgICAgICAgIFJFVFVSTl9J
Rl9GQUlMRUQocmVzdWx0LCAieHJDcmVhdGVJbnN0YW5jZSgpIiwgbV9pbnN0YW5jZSk7CisKKyAg
ICAgICAgbV9pbnN0YW5jZSA9IGluc3RhbmNlOworICAgICAgICBXVEZMb2dBbHdheXMoInhyQ3Jl
YXRlSW5zdGFuY2UoKTogdXNpbmcgaW5zdGFuY2UgJXBcbiIsIG1faW5zdGFuY2UpOworICAgIH0K
KyNlbmRpZiAvLyBVU0VfT1BFTlhSCit9CisKK0luc3RhbmNlOjpJbXBsOjp+SW1wbCgpCit7Cit9
CisKK0luc3RhbmNlJiBJbnN0YW5jZTo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgSW5zdGFu
Y2Ugc19pbnN0YW5jZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAg
ICBzdGQ6OmNhbGxfb25jZShzX29uY2VGbGFnLAorICAgICAgICBbJl0geworICAgICAgICAgICAg
c19pbnN0YW5jZS5tX2ltcGwgPSBtYWtlVW5pcXVlPEltcGw+KCk7CisgICAgICAgIH0pOworICAg
IHJldHVybiBzX2luc3RhbmNlOworfQorCitJbnN0YW5jZTo6SW5zdGFuY2UoKSA9IGRlZmF1bHQ7
CitJbnN0YW5jZTo6fkluc3RhbmNlKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBQbGF0
Zm9ybVhSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA1MDEw
NGE5YzliYmNhYTk4MmZkMmYzZDcxYWEyM2Y1YTNmNmVlOThhLi5mYjQ5NGI4MGRiZWYxYTQxNjY3
YTRlN2ZlNzRiYmVmODQ4Y2FiMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwKQEAgLTE5NzUsNiArMTk3NSwxNSBAQCBXZWJTaGFyZUZpbGVBUElFbmFibGVkOgog
ICAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgICAgY2F0ZWdvcnk6
IGV4cGVyaW1lbnRhbAogCitXZWJYUkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZh
bHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIldlYlhSIERldmljZSBBUEkiCisgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFkZHMgc3VwcG9ydCBmb3IgYWNjZXNzaW5nIHZpcnR1
YWwgcmVhbGl0eSAoVlIpIGFuZCBhdWdtZW50ZWQgcmVhbGl0eSAoQVIpIGRldmljZXMsIGluY2x1
ZGluZyBzZW5zb3JzIGFuZCBoZWFkLW1vdW50ZWQgZGlzcGxheXMsIG9uIHRoZSBXZWIiCisgIGNh
dGVnb3J5OiBleHBlcmltZW50YWwKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMKKyAgY29uZGl0aW9uOiBFTkFCTEUoV0VCR0wpICYmIFBMQVRGT1JNKFdQRSkKKwogIyBE
ZXByZWNhdGVkCiAKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNt
YWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiZmRmMDRjMTFlZGQwMzkwMGZjNGMxNDJjZTc2YTY2MTQ4MzBmNmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZQpAQCAtMCww
ICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZpbmQgT3BlblhSLgorIyBPbmNlIGRvbmUsIHRoaXMgd2ls
bCBkZWZpbmUKKyMKKyMgIE9QRU5YUl9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLgorIyAgT1BFTlhS
X0lOQ0xVREVfRElSUyAtIHRoZSBXUEUgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgT1BFTlhSX0xJ
QlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5
IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
IyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVj
a19tb2R1bGVzKFBDX09QRU5YUiBRVUlFVCBvcGVueHIpCisKK2ZpbmRfcGF0aChPUEVOWFJfSU5D
TFVERV9ESVJTCisgICAgTkFNRVMgb3BlbnhyL29wZW54ci5oCisgICAgSElOVFMgJHtQQ19PUEVO
WFJfSU5DTFVERURJUn0gJHtQQ19PUEVOWFJfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJh
cnkoT1BFTlhSX0xJQlJBUklFUworICAgIE5BTUVTIG9wZW54cl9sb2FkZXIKKyAgICBISU5UUyAk
e1BDX09QRU5YUl9MSUJESVJ9ICR7UENfT1BFTlhSX0xJQlJBUllfRElSU30KKykKKworbWFya19h
c19hZHZhbmNlZChPUEVOWFJfSU5DTFVERV9ESVJTIE9QRU5YUl9MSUJSQVJJRVMpCisKK2luY2x1
ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0
YW5kYXJkX2FyZ3MoT3BlblhSIFJFUVVJUkVEX1ZBUlMgT1BFTlhSX0lOQ0xVREVfRElSUyBPUEVO
WFJfTElCUkFSSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCAxYWJlOTUzMjBkNWE2Mzc4Y2Yy
YTdkMDlhYTlmZjhkNGE3YTA0YzRjLi44MGVjOTZjMGNlNzA5OTcyZTI5NGE5ZTFlNDJkMzI4MWJh
NzljNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtMTEyLDYgKzExMiwxMCBAQCBXRUJLSVRf
T1BUSU9OX0RFUEVORChVU0VfRVhURVJOQUxfSE9MRVBVTkNIIEVOQUJMRV9WSURFTykKIAogaW5j
bHVkZShHU3RyZWFtZXJEZXBlbmRlbmNpZXMpCiAKK1dFQktJVF9PUFRJT05fREVGSU5FKFVTRV9P
UEVOWFIgIldoZXRoZXIgdG8gdXNlIE9wZW5YUiBmb3IgaW1wbGVtZW50aW5nIFdlYlhSIERldmlj
ZSBBUEkuIiBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX09QRU5YUiBFTkFC
TEVfV0VCR0wpCitXRUJLSVRfT1BUSU9OX0RFUEVORChVU0VfT1BFTlhSIEVOQUJMRV9XRUJHTDIp
CisKIFdFQktJVF9PUFRJT05fRU5EKCkKIAogaWYgKEVOQUJMRV9BQ0NFU1NJQklMSVRZKQpAQCAt
MTcyLDYgKzE3NiwxMCBAQCBpZiAoRU5BQkxFX1dQRV9RVF9BUEkgT1IgVVNFX1dQRV9WSURFT19Q
TEFORV9ESVNQTEFZX0RNQUJVRikKICAgICBmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8gMS41
LjAgUkVRVUlSRUQpCiBlbmRpZiAoKQogCitpZiAoVVNFX09QRU5YUikKKyAgICBmaW5kX3BhY2th
Z2UoT3BlblhSIFJFUVVJUkVEKQorZW5kaWYgKCkKKwogYWRkX2RlZmluaXRpb25zKC1EQlVJTERJ
TkdfV1BFX189MSkKIGFkZF9kZWZpbml0aW9ucygtREdFVFRFWFRfUEFDS0FHRT0iV1BFIikKIGFk
ZF9kZWZpbml0aW9ucygtREpTQ19HTElCX0FQSV9FTkFCTEVEKQpkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDhmODUwMTIzNjA0OTIwNTNmZDAzM2FkYzVkZDZkOGRkMWIx
N2E5ZGQuLjBiYTJlYzQxNjEyZmQ4ZjZmZWE1NzVhNGU2OTg1MDUzZjZjZGQ0NGYgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMy0w
NiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIE9wZW5YUiBk
ZXRlY3Rpb24gYW5kIFVTRV9PUEVOWFIgZGVmaW5lIHRvIGJlIHVzZWQgaW4gdGhlIHNvdXJjZXMu
CisgICAgICAgIEl0IGFsc28gYWRkcyBhIGRlcGVuZGVuY3kgYmV0d2VlbiBVU0VfT1BFTlhSIGFu
ZCBFTkFCTEVfV0VCR0wuCisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBwcmV2aW91cyB3b3Jr
IGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIu
Y21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlOgor
CiAyMDIwLTAzLTAzICBGdWppaSBIaXJvbm9yaSAgPGZ1amlpLmhpcm9ub3JpQGdtYWlsLmNvbT4K
IAogICAgICAgICBbQ3VybF0gQWRkIFRMUyBkZWJ1Z2dpbmcgZmVhdHVyZSB0byBsb2cgZW5jcnlw
dGlvbiBrZXlzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393019</attachid>
            <date>2020-03-09 02:45:46 -0700</date>
            <delta_ts>2020-03-09 09:58:39 -0700</delta_ts>
            <desc>Buildfixes for Mac/iOS</desc>
            <filename>bug-208702-20200309104544.patch</filename>
            <type>text/plain</type>
            <size>228365</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5NzEyZjYwZWYyMzNhNDE0NzllMGNk
ZDViYmZjMzg5MmUxNTU5ODIuLmM1MmI1MzA1MjM1ZTYyZGYxODhjNjE1YzI0NmM2YjBkMGU2Mjg4
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQg
YnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBEZWZpbmUgVVNFX09QRU5YUiAo
ZGlzYWJsZWQpIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBieSB0aGUgYnVpbGQgc3lzdGVtIGp1c3Qg
aW4gY2FzZQorICAgICAgICBFTkFCTEVfV0VCR0wgaXMgZGVmaW5lZCBhbmQgYWN0aXZlLgorCisg
ICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOgorCiAyMDIwLTAzLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgRml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2OWQyYmJkOTFm
ZDVmNTFiOTZmNjA1ZjVjY2JiOTdjMTkxZDkyOC4uMmVjY2EzODkyZTlhNWMzYTM5MWYzYjEzNDMw
NTY2Nzk5NTk3MzgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBAQAorMjAyMC0wMy0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
WFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBJRExzIGRl
ZmluZWQgYnkgdGhlIHNwZWMgd2l0aCB2ZXJ5IGJhc2ljIGVtcHR5IGltcGxlbWVudGF0aW9ucyB0
byBnZXQgdGhlbQorICAgICAgICBidWlsdC4gQXBhcnQgZnJvbSB0aGF0IGEgdmVyeSBiYXNpYyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVxdWlyZWQgcGxhdGZvcm0gY29kZSB1c2luZworICAgICAg
ICBPcGVuWFIgQVBJIHdhcyBhbHNvIGFkZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBu
byBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgcmVhbGx5IGFkZGVkIChlbXB0eSBpbXBsZW1lbnRhdGlv
bnMpLiBIb3dldmVyCisgICAgICAgIGZvbGxvdyB1cCBwYXRjaGVzIHdpbGwgaW1wb3J0IHRoZSBh
bHJlYWR5IGF2YWlsYWJsZSBXUFQgdGVzdHMgZm9yIFdlYlhSLgorCisgICAgICAgIExhcmdlbHkg
YmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcldlYlhSOjp4cik6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJYUjo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2U6OmJvdW5kc0dlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUkV5ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
RXllLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJGcmFtZTo6WFJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpzZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSRnJhbWU6OmdldFZpZXdlclBvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJGcmFtZTo6Z2V0UG9zZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUkZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2U6OlhSSW5wdXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJj
ZTo6aGFuZGVkbmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjp0
YXJnZXRSYXlNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnRh
cmdldFJheVNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6Omdy
aXBTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpwcm9maWxl
cyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlQXJyYXk6Omxlbmd0aCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpYUklucHV0U291cmNlQXJyYXk6Oml0ZW0gY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlhSSW5wdXRTb3VyY2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRT
b3VyY2VFdmVudDo6WFJJbnB1dFNvdXJjZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VFdmVudDo6ZnJhbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNv
dXJjZUV2ZW50OjppbnB1dFNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0
U291cmNlRXZlbnQ6OmJ1dHRvbkluZGV4IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2VFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6c2Vzc2lvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjphZGRlZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpyZW1vdmVkIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQu
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlhSUG9zZTo6WFJQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUG9zZTo6dHJhbnNmb3JtIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUG9zZTo6ZW11bGF0ZWRQb3NpdGlvbiBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNl
U3BhY2U6OlhSUmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VT
cGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVm
ZXJlbmNlU3BhY2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJl
bmNlU3BhY2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VT
cGFjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VTcGFjZUV2
ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVu
Y2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpY
UlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhS
UmVuZGVyU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjpY
UlJlbmRlclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVh
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjpkZXB0aEZhciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxk
T2ZWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OmJhc2VMYXll
ciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmln
aWRUcmFuc2Zvcm06OlhSUmlnaWRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdp
ZFRyYW5zZm9ybTo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRy
YW5zZm9ybTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRy
YW5zZm9ybTo6bWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmlnaWRUcmFuc2Zv
cm06OmludmVyc2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5z
Zm9ybS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0u
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlbmRlclN0YXRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6aW5wdXRTb3VyY2VzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhSU2Vzc2lvbjo6dXBkYXRlUmVuZGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
WFJTZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6WFJT
ZXNzaW9uOjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNz
aW9uOjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246
OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OmFjdGl2ZURPTU9iamVjdE5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9u
RXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uRXZlbnQ6OlhSU2Vzc2lvbkV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbkluaXQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb25Jbml0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6WFJTcGFjZTo6WFJTcGFjZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9YUlNwYWNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTcGFjZS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0ZW0uY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
WFJTeXN0ZW06OlhSU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjppc1Nlc3Np
b25TdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6WFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU3lzdGVtOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1hSU3lzdGVtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0
ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpYUlZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OlhS
Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OmV5ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUlZpZXc6OnByb2plY3Rpb25NYXRyaXggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3Ojp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJW
aWV3Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3LmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhSVmlld2VyUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhS
Vmlld2VyUG9zZTo6dmlld3MgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3
ZXJQb3NlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3cG9ydDo6eCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0Ojp5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OndpZHRoIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OmhlaWdodCBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlZpZXdwb3J0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJWaWV3cG9ydC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaXNpYmls
aXR5U3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlT
dGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OlhSV2ViR0xMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpYUldlYkdMTGF5ZXI6OmFudGlhbGlhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpY
UldlYkdMTGF5ZXI6Omlnbm9yZURlcHRoVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJX
ZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
V2ViR0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
WFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5
ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IpOgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVyLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXJJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBBZGQgT3BlblhSIGlu
Y2x1ZGVzIGFuZCBsaWJzLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGJpbmRp
bmdzL0lETFR5cGVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVu
Y2VzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAg
ICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46Cisg
ICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBwYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaDogQWRkZWQgV2ViWFIgZmVhdHVyZS4KKyAgICAgICAgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhSRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJYUkVuYWJsZWQgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS94ci9QbGF0Zm9ybVhSLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3hyL29wZW54
ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgIChQbGF0Zm9ybVhSOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoUGxhdGZvcm1YUjo6cmVzdWx0VG9TdHJpbmcpOgorICAgICAgICAo
UGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6OkltcGwpOgorICAgICAgICAoUGxhdGZvcm1YUjo6
SW5zdGFuY2U6OkltcGw6On5JbXBsKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Okluc3RhbmNlOjpz
aW5nbGV0b24pOgorCiAyMDIwLTAzLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVzZSByZXN0b3JlIHZpZXcgaWNvbiBm
b3IgZXhpdCBmdWxsc2NyZWVuIGJ1dHRvbiBpbiBtZWRpYSBjb250cm9scwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3
ZjQ5NzdmMzcyNzA2ZDMzMGFhZWYxYzM5MzM1MDBhYzQwNjQyOTI1Li5iY2UyYjg0ZmY5MTc5YTE5
YjIxYmFiMTAyMDhlYWNlMGUyYzU2NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTAzLTA2ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIFdQRQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGFyZ2VseSBi
YXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6IEFkZGVkIGluZm8gYWJvdXQgdGhlIFdlYlhSIGltcGxl
bWVudGF0aW9uIHN0YXR1cy4KKwogMjAyMC0wMy0wMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmUtYWRkIGBJbnNwZWN0b3JGcm9u
dGVuZEhvc3RgIHN1cHBvcnQgZm9yIG1vdmluZyB0aGUgaW5zcGVjdGVkIHdpbmRvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggZGVkZmExNGQ1YTVkZGRhODRlMzM1YmZkNDg1ZTc1NTA5N2ZhZWM1Ny4uZGFhN2Qz
NjNhNTRlMjI0MzJkYjQ5ZTc4MWM4MzExMzcyNWFkYzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xODAs
NiArMTgwLDEwIEBACiAjaWYgKFVTRV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdM
X0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01B
UFBFUikKICNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwg
VVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAogI2VuZGlmCisKKyNpZiAhZGVmaW5lZChVU0VfT1BF
TlhSKQorI2RlZmluZSBVU0VfT1BFTlhSIDAKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBVU0UoVEVY
VFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVmaW5lZChV
U0VfVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDM3Y2IxYmVlNDlj
N2U5NTVhNzEyNGQxZTJkNmFlOWNkMTU1YzA3OWIuLmE5MjZmMmI3NDcyZDk2YzEyNTM2OTA1MDk4
N2UwN2UwZTI2MjlkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTc5LDYgKzExNzksNDcg
QEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfV0VC
R0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2VieHIiCisgICAgICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS94ciIKKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCisgICAgICAgIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRs
CisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUkV5ZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCisgICAgICAg
IE1vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKKyAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSUG9zZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5p
ZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKKyAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFu
c2Zvcm0uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkluaXQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSU3lzdGVtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
WFJWaWV3ZXJQb3NlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCisgICAgICAgIE1vZHVs
ZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSV2ViR0xM
YXllckluaXQuaWRsCisgICAgKQorZW5kaWYgKCkKKwogc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAg
ICAgJHtXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTfQogICAgICR7V2ViQ29yZV9TVkdfSURMX0ZJ
TEVTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNWJhMjZiODA4MmRlNjg5MDFj
MmUxMjY2MmY2NDc0YTg2NzA3MjQyMy4uZjk1NjcxNWM1NmQyY2M3MzQ1YjgxMjk5ZGVhM2QyY2U1
MWU0MWEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02NCw2ICs2NCw3IEBA
IFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkcml2ZXIgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJncHUgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRz
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIgXAogICAgICQoV2ViQ29yZSkvYWNjZXNz
aWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmlu
ZGluZ3MvanMgXApAQCAtNDYwLDYgKzQ2MSwzNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VieHIvWFJFeWUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJG
cmFtZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENh
bGxiYWNrLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4
ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9Y
UlRhcmdldFJheU1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJWaWV3
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSb2xlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5
L0FyaWFBdHRyaWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJs
ZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0
b3JXZWJYUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhS
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kM2ZhMmI4MjY5ZWE0ZWU1ZGE2NDZiODk1N2Y1NWExZTRmZGU5MmUz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0
b3JXZWJYUi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIKKworI2luY2x1ZGUgIk5hdmlnYXRv
ci5oIgorI2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFJT
eXN0ZW0mIE5hdmlnYXRvcldlYlhSOjp4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBOYXZpZ2F0b3ImIG5hdmlnYXRvck9iamVjdCkKK3sKKyAgICBhdXRv
JiBuYXZpZ2F0b3IgPSBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShuYXZpZ2F0b3JPYmplY3QpOworICAg
IGlmICghbmF2aWdhdG9yLm1feHIpCisgICAgICAgIG5hdmlnYXRvci5tX3hyID0gWFJTeXN0ZW06
OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICByZXR1cm4gKm5hdmlnYXRvci5t
X3hyOworfQorCitOYXZpZ2F0b3JXZWJYUiYgTmF2aWdhdG9yV2ViWFI6OmZyb20oTmF2aWdhdG9y
JiBuYXZpZ2F0b3IpCit7CisgICAgYXV0byogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmln
YXRvcldlYlhSKj4oU3VwcGxlbWVudDxOYXZpZ2F0b3I+Ojpmcm9tKCZuYXZpZ2F0b3IsICJOYXZp
Z2F0b3JXZWJYUiIpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdT
dXBwbGVtZW50ID0gbWFrZVVuaXF1ZTxOYXZpZ2F0b3JXZWJYUj4oKTsKKyAgICAgICAgc3VwcGxl
bWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbygmbmF2aWdhdG9y
LCAiTmF2aWdhdG9yV2ViWFIiLCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICB9CisgICAg
cmV0dXJuICpzdXBwbGVtZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZj
MGY5OGU0OTgxMDMyZWIyNmRhMzExYTFlY2M0ODM1N2YzOWNmNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3VwcGxlbWVu
dGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTmF2aWdhdG9yOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNz
IFhSU3lzdGVtOworCitjbGFzcyBOYXZpZ2F0b3JXZWJYUiBmaW5hbCA6IHB1YmxpYyBTdXBwbGVt
ZW50PE5hdmlnYXRvcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBYUlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRv
ciYpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJvbShOYXZpZ2F0
b3ImKTsKKworICAgIFJlZlB0cjxYUlN5c3RlbT4gbV94cjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJY
Ui5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODUzZWNmOTU5NGQyYzRmNDA2OTMyOWM5M2ViZjQ2YmE1ZmZlNmNh
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gcGFydGlhbCBpbnRl
cmZhY2UgTmF2aWdhdG9yIHsKKyAgICBbU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdCwgQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSU3lzdGVtIHhy
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUzMDdiZjc3OTNhMWViMmVmNDI2NmRi
Mjc5OWFkMzhlNDkzNmVkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSQm91bmRlZFJlZmVy
ZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgVmVjdG9yPFJlZjxE
T01Qb2ludFJlYWRPbmx5Pj4mIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRy
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYm91bmRzR2VvbWV0cnk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjVjOGU5NWRkZDVjMzk5NDU1
MjY1MTgyYzAwYzYzYzExMzUxOWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNl
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01Qb2ludFJlYWRPbmx5OworCitjbGFzcyBYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBYUlJlZmVyZW5jZVNwYWNlIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSgpOworCisgICAgY29uc3QgVmVj
dG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5kc0dlb21ldHJ5KCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4gbV9ib3VuZHNHZW9tZXRy
eTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmM3NjRjOTY3YzQyMWQxNDVkYzQ4ZTVkMzUzMmQwZGU1OTA2NjNiNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwK
KyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Ug
OiBYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8
RE9NUG9pbnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZWZhYzFlYzgwYjAyMjE0Zjk5YWEyZjJhNzkwYjU1OTc5Y2I5YWU2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2Rl
LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgeworICAg
IE9wYXF1ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBoYUJsZW5kCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDk1MTNjY2MzYTVmNDRjMjgw
NTcxNTdhOWFhNTQ5OGViYTA0MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApAQCAtMCwwICsxLDMzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRp
dGlvbmFsPVdFQkdMCitdIGVudW0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZSB7CisgICAgIm9wYXF1
ZSIsCisgICAgImFkZGl0aXZlIiwKKyAgICAiYWxwaGEtYmxlbmQiCit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZTcwZTU0NDQzNTY0MjYxZDM3OWM5MzBi
OWQ1OTlkOTIxMmJmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRXllIHsKKyAgICBOb25l
LAorICAgIExlZnQsCisgICAgUmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjlhMGY1MTIw
NGQ4ODI2Yjk5OWRkYTFmMDIxNDgzNTQyYmIxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdF
QkdMCitdIGVudW0gWFJFeWUgeworICAgICJub25lIiwKKyAgICAibGVmdCIsCisgICAgInJpZ2h0
IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNjNTA0YWQxYzk3NjNkYWJkM2U1ODY4ZDMwMzI5ODQ4YTdkNDExYWMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSRnJh
bWUuaCIKKworI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlhSVmlld2VyUG9zZS5o
IgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSRnJhbWUpOworCitSZWY8WFJGcmFt
ZT4gWFJGcmFtZTo6Y3JlYXRlKFJlZjxYUlNlc3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBYUkZyYW1lKFdURk1vdmUoc2Vzc2lvbikpKTsKK30KKworWFJGcmFt
ZTo6WFJGcmFtZShSZWY8WFJTZXNzaW9uPiYmIHNlc3Npb24pCisgICAgOiBtX3Nlc3Npb24oV1RG
TW92ZShzZXNzaW9uKSkKK3sKK30KKworWFJGcmFtZTo6flhSRnJhbWUoKSA9IGRlZmF1bHQ7CisK
K2NvbnN0IFhSU2Vzc2lvbiYgWFJGcmFtZTo6c2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFhSVmlld2VyUG9zZT4gWFJGcmFtZTo6Z2V0Vmlld2Vy
UG9zZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCitS
ZWZQdHI8WFJQb3NlPiBYUkZyYW1lOjpnZXRQb3NlKGNvbnN0IFhSU3BhY2UmLCBjb25zdCBYUlNw
YWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyOWJhNTA1MjYz
ZDUzZTk4YzUwMzY4YjQ0NWU0ZmVjOTM3NTNjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaApAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlBvc2U7CitjbGFz
cyBYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJTcGFjZTsKK2Ns
YXNzIFhSVmlld2VyUG9zZTsKKworY2xhc3MgWFJGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhS
RnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSRnJhbWUpOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8WFJGcmFtZT4gY3JlYXRlKFJlZjxYUlNlc3Npb24+JiYpOworICAgIH5Y
UkZyYW1lKCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKworICAg
IFJlZlB0cjxYUlZpZXdlclBvc2U+IGdldFZpZXdlclBvc2UoY29uc3QgWFJSZWZlcmVuY2VTcGFj
ZSYpOworICAgIFJlZlB0cjxYUlBvc2U+IGdldFBvc2UoY29uc3QgWFJTcGFjZSYsIGNvbnN0IFhS
U3BhY2UmKTsKKworcHJpdmF0ZToKKyAgICBYUkZyYW1lKFJlZjxYUlNlc3Npb24+JiYpOworCisg
ICAgUmVmPFhSU2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI2
MTBkZWNlODg4Mjc5ODUxZTAyNzQzYzE3MTIyOTM3NzBmM2Q1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwKQEAgLTAsMCArMSwzNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSRnJhbWUgeworICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJTZXNzaW9uIHNlc3Npb247CisKKyAg
ICBYUlZpZXdlclBvc2U/IGdldFZpZXdlclBvc2UoWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VT
cGFjZSk7CisgICAgWFJQb3NlPyBnZXRQb3NlKFhSU3BhY2Ugc3BhY2UsIFhSU3BhY2UgYmFzZVNw
YWNlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJh
bWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NThmZGMyMDQzNzgxZmE2Zjk5NzhiYzJi
ZDdkZWM4NDIwZWI0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNp
bmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJGcmFtZTsKKworY2xhc3MgWFJGcmFtZVJl
cXVlc3RDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+
LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHVzaW5nIEFjdGl2ZURP
TUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKKworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1
bHQ8dm9pZD4gaGFuZGxlRXZlbnQoZG91YmxlIGhpZ2hSZXNUaW1lTXMsIFhSRnJhbWUmKSA9IDA7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MTFkNGJkMmM1ODZiMTA1NmEzN2QxMjJjNjRmZWQxOTgwOWFlNTA1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlk
bApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hS
ZXNUaW1lU3RhbXA7CisKK2NhbGxiYWNrIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB2b2lkIChE
T01IaWdoUmVzVGltZVN0YW1wIHRpbWUsIFhSRnJhbWUgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI3YWEzOWIzZGUyZjdm
ODYyOTVhZTkzYTgxZjQ3MzFkYzljZDc0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNz
IFhSSGFuZGVkbmVzcyB7CisgICAgTm9uZSwKKyAgICBMZWZ0LAorICAgIFJpZ2h0LAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkhhbmRlZG5lc3MuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZmNiNTZkMGY4NzI4YjU2MTRkY2MyZTAyOTFk
MjcwYWYyOGYxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSGFuZGVkbmVzcy5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTAorXSBlbnVt
IFhSSGFuZGVkbmVzcyB7CisgICAgIm5vbmUiLAorICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjJiYjQyMmI3ODVhZDMyYWM0MWUxMWM5Yjg3YzM3ZDdmYWU4ZjliMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5j
cHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiWFJJbnB1dFNvdXJjZS5oIgorCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSSW5wdXRTb3VyY2UpOworCitSZWY8WFJJbnB1dFNv
dXJjZT4gWFJJbnB1dFNvdXJjZTo6Y3JlYXRlKFJlZjxYUlNwYWNlPiYmIHRhcmdldFJheVNwYWNl
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSSW5wdXRTb3VyY2UoV1RGTW92ZSh0YXJn
ZXRSYXlTcGFjZSkpKTsKK30KKworWFJJbnB1dFNvdXJjZTo6WFJJbnB1dFNvdXJjZShSZWY8WFJT
cGFjZT4mJiB0YXJnZXRSYXlTcGFjZSkKKyAgICA6IG1faGFuZGVkbmVzcyhYUkhhbmRlZG5lc3M6
Ok5vbmUpCisgICAgLCBtX3RhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlOjpHYXplKQorICAg
ICwgbV90YXJnZXRSYXlTcGFjZShXVEZNb3ZlKHRhcmdldFJheVNwYWNlKSkKK3sKK30KKworWFJJ
bnB1dFNvdXJjZTo6flhSSW5wdXRTb3VyY2UoKSA9IGRlZmF1bHQ7CisKK1hSSGFuZGVkbmVzcyBY
UklucHV0U291cmNlOjpoYW5kZWRuZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kZWRu
ZXNzOworfQorCitYUlRhcmdldFJheU1vZGUgWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5TW9kZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5TW9kZTsKK30KKworY29uc3QgWFJTcGFj
ZSYgWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiBt
X3RhcmdldFJheVNwYWNlOworfQorCitSZWZQdHI8WFJTcGFjZT4gWFJJbnB1dFNvdXJjZTo6Z3Jp
cFNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCitjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgWFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
b2ZpbGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExODdmNzAzOWFlNWQzM2Y2
YjkwNTZkNDQ3YjdiZjU5NjMwM2E2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVk
ZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJTcGFjZTsKKwor
Y2xhc3MgWFJJbnB1dFNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSSW5wdXRTb3VyY2U+IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSSW5wdXRTb3VyY2UpOworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8WFJJbnB1dFNvdXJjZT4gY3JlYXRlKFJlZjxYUlNwYWNlPiYmKTsKKyAgICB+
WFJJbnB1dFNvdXJjZSgpOworCisgICAgWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3MoKSBjb25zdDsK
KyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSgpIGNvbnN0OworICAgIGNvbnN0IFhS
U3BhY2UmIHRhcmdldFJheVNwYWNlKCkgY29uc3Q7CisgICAgUmVmUHRyPFhSU3BhY2U+IGdyaXBT
cGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm9maWxlcygpIGNvbnN0
OworCitwcml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2UoUmVmPFhSU3BhY2U+JiYpOworCisgICAg
WFJIYW5kZWRuZXNzIG1faGFuZGVkbmVzczsKKyAgICBYUlRhcmdldFJheU1vZGUgbV90YXJnZXRS
YXlNb2RlOworICAgIFJlZjxYUlNwYWNlPiBtX3RhcmdldFJheVNwYWNlOworICAgIFZlY3RvcjxT
dHJpbmc+IG1fcHJvZmlsZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NmI0MDY5ZjBjYjQyMDVkNTA4NmNiNTE2MTNhNDgxNDM0OTYxNjhiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmlkbApAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAor
ICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1X
aW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJJbnB1
dFNvdXJjZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNz
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSA7
CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNwYWNlIHRhcmdldFJheVNw
YWNlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJTcGFjZT8gZ3JpcFNw
YWNlIDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERP
TVN0cmluZz4gcHJvZmlsZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZDRjNDY1ZGFhM2Y3M2Rl
NjRmNDFhYmQyOGE5ODdjZDY0ZTBlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5jcHAKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJj
ZUFycmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUklucHV0U291cmNl
QXJyYXkpOworCit1bnNpZ25lZCBYUklucHV0U291cmNlQXJyYXk6Omxlbmd0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIDA7Cit9CisKK1hSSW5wdXRTb3VyY2UqIFhSSW5wdXRTb3VyY2VBcnJheTo6
aXRlbSh1bnNpZ25lZCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZUFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU1MjFiNTVmZDE1OTI5NzU5MGI2NDcxNGU0
YzFmOGM1MDU2ZDdmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSSW5wdXRT
b3VyY2U7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2VBcnJheSA6IHB1YmxpYyBSZWZDb3VudGVkPFhS
SW5wdXRTb3VyY2VBcnJheT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJJbnB1dFNv
dXJjZUFycmF5KTsKK3B1YmxpYzoKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBY
UklucHV0U291cmNlKiBpdGVtKHVuc2lnbmVkKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZUFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNv
dXJjZUFycmF5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDc4MDM0YTY2OThhNDRlM2YzNGQ3MTg3YjdlMWNj
ZDFiNWI3ZDgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlQXJyYXkuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisg
ICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUklucHV0U291cmNlQXJyYXkgeworICAgIGl0ZXJh
YmxlPFhSSW5wdXRTb3VyY2U+OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKKyAgICBnZXR0ZXIgWFJJbnB1dFNvdXJjZSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3Vy
Y2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VF
dmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE0NzY5MGJmMzNkZDMxMjJiY2E0Y2M4ZDc5NjEwYzEzMmM0
ZWQzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZUV2ZW50LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUklucHV0U291cmNlRXZlbnQuaCIKKworI2luY2x1
ZGUgIlhSRnJhbWUuaCIKKyNpbmNsdWRlICJYUklucHV0U291cmNlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gWFJJbnB1dFNvdXJjZUV2ZW50Ojpj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElz
VHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNv
dXJjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJJbnB1dFNv
dXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0
eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9mcmFtZShpbml0aWFsaXplci5m
cmFtZSkKKyAgICAsIG1faW5wdXRTb3VyY2UoaW5pdGlhbGl6ZXIuaW5wdXRTb3VyY2UpCisgICAg
LCBtX2J1dHRvbkluZGV4KGluaXRpYWxpemVyLmJ1dHRvbkluZGV4KQoreworICAgIEFTU0VSVCht
X2ZyYW1lKTsKKyAgICBBU1NFUlQobV9pbnB1dFNvdXJjZSk7Cit9CisKK1hSSW5wdXRTb3VyY2VF
dmVudDo6flhSSW5wdXRTb3VyY2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJGcmFtZSYg
WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2ZyYW1l
OworfQorCitjb25zdCBYUklucHV0U291cmNlJiBYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291
cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1faW5wdXRTb3VyY2U7Cit9CisKK09wdGlvbmFs
PGludD4gWFJJbnB1dFNvdXJjZUV2ZW50OjpidXR0b25JbmRleCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fYnV0dG9uSW5kZXg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQzZGM3YzBlM2M0OTEwNWQ0YmQyOTVhNjA2NmU2YTczNWYwYjVmMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5o
CkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUkZyYW1lOworY2xhc3MgWFJJ
bnB1dFNvdXJjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZUV2ZW50IGZpbmFsIDogcHVibGljIEV2
ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJl
ZlB0cjxYUkZyYW1lPiBmcmFtZTsKKyAgICAgICAgUmVmUHRyPFhSSW5wdXRTb3VyY2U+IGlucHV0
U291cmNlOworICAgICAgICBPcHRpb25hbDxpbnQ+IGJ1dHRvbkluZGV4OworICAgIH07CisKKyAg
ICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
LCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+
WFJJbnB1dFNvdXJjZUV2ZW50KCk7CisKKyAgICBjb25zdCBYUkZyYW1lJiBmcmFtZSgpIGNvbnN0
OworICAgIGNvbnN0IFhSSW5wdXRTb3VyY2UmIGlucHV0U291cmNlKCkgY29uc3Q7CisgICAgT3B0
aW9uYWw8aW50PiBidXR0b25JbmRleCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSSW5wdXRT
b3VyY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisK
KyAgICBSZWZQdHI8WFJGcmFtZT4gbV9mcmFtZTsKKyAgICBSZWZQdHI8WFJJbnB1dFNvdXJjZT4g
bV9pbnB1dFNvdXJjZTsKKyAgICBPcHRpb25hbDxpbnQ+IG1fYnV0dG9uSW5kZXg7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjliYWM2YzhhMTcyZmVmMmI2
MmY5MWJjYWI4MjNiZThiZjk2OTExZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlv
bmFsPVdFQkdMCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCA6IEV2ZW50SW5p
dCB7CisgICAgcmVxdWlyZWQgWFJGcmFtZSBmcmFtZTsKKyAgICByZXF1aXJlZCBYUklucHV0U291
cmNlIGlucHV0U291cmNlOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJJbnB1dFNvdXJjZUV2ZW50
SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZUV2ZW50IDogRXZl
bnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJGcmFtZSBmcmFtZTsK
KyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSSW5wdXRTb3VyY2UgaW5wdXRT
b3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk1NDJjZTEzMmU1NmI1
ZTBmNDRkNWE0ZTIzNDJiNzU5MGVlZTljNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgorCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZS5oIgor
I2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3Rl
ZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNz
aW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAgICwgbV9hZGRlZChpbml0aWFsaXplci5hZGRl
ZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXplci5yZW1vdmVkKQoreworfQorCitYUklucHV0
U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVs
dDsKKworY29uc3QgWFJTZXNzaW9uJiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNzaW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uOworfQorCitjb25zdCBWZWN0b3I8UmVm
UHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRkZWQoKSBj
b25zdAoreworICAgIHJldHVybiBtX2FkZGVkOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhS
SW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3ZlZCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcmVtb3ZlZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTkyZjI0MDI1ODdjMWFmYTZhYzJkNzFlMzNkMzU1
ZTdjZWI0ZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBYUklucHV0U291cmNlOworY2xhc3MgWFJTZXNzaW9uOworCitjbGFzcyBYUklucHV0U291
cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1
Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUlNlc3Npb24+IHNlc3Npb247
CisgICAgICAgIFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+IGFkZGVkOworICAgICAgICBW
ZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiByZW1vdmVkOworICAgIH07CisKKyAgICBzdGF0
aWMgUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwg
flhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoKTsKKworICAgIGNvbnN0IFhSU2Vzc2lvbiYgc2Vz
c2lvbigpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiBh
ZGRlZCgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiBy
ZW1vdmVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWY8
WFJTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVjdG9yPFJlZlB0cjxYUklucHV0U291cmNlPj4g
bV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiBtX3JlbW92ZWQ7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMzA0ZjBkMjNkMzEzNDU3OGY2ZWM2OGExMmE0NjJhMGY4NmYxZGJlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmlkbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGRpY3Rpb25hcnkgWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFhSU2Vz
c2lvbiBzZXNzaW9uOworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFhSSW5wdXRTb3VyY2U+IGFk
ZGVkOworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFhSSW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9
OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJH
TCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVj
dG9yKERPTVN0cmluZyB0eXBlLCBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50SW5pdCBldmVudElu
aXREaWN0KQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCA6IEV2ZW50IHsK
KyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSU2Vzc2lvbiBzZXNzaW9uOwor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8WFJJbnB1dFNv
dXJjZT4gYWRkZWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5B
cnJheTxYUklucHV0U291cmNlPiByZW1vdmVkOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTAzNTRlNmRjNTdmOTY0NTk0MDc3NTRiOTBkZTVl
MjA4ZjhlYzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlBvc2UuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlhSUG9zZS5oIgorCisjaW5jbHVkZSAiWFJSaWdpZFRyYW5zZm9y
bS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSUG9zZSk7CisKK1JlZjxYUlBv
c2U+IFhSUG9zZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlBvc2Up
OworfQorCitYUlBvc2U6OlhSUG9zZSgpCisgICAgOiBtX3RyYW5zZm9ybShYUlJpZ2lkVHJhbnNm
b3JtOjpjcmVhdGUoKSkKK3sKK30KKworWFJQb3NlOjp+WFJQb3NlKCkgPSBkZWZhdWx0OworCitj
b25zdCBYUlJpZ2lkVHJhbnNmb3JtJiBYUlBvc2U6OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIFhSUG9zZTo6ZW11bGF0ZWRQb3NpdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW11bGF0ZWRQb3NpdGlvbjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlBvc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjE0ODE5Y2UyNGRhOTIzNjZhNjU5YmUyNGNmNGQ3YTI5Mzc5MjdlNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlJpZ2lkVHJhbnNmb3JtOworCitjbGFz
cyBYUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlBvc2U+IHsKKyAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFhSUG9zZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxYUlBvc2U+IGNyZWF0
ZSgpOworICAgIH5YUlBvc2UoKTsKKworICAgIGNvbnN0IFhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5z
Zm9ybSgpIGNvbnN0OworICAgIGJvb2wgZW11bGF0ZWRQb3NpdGlvbigpIGNvbnN0OworCitwcm90
ZWN0ZWQ6CisgICAgWFJQb3NlKCk7CisKKyAgICBSZWY8WFJSaWdpZFRyYW5zZm9ybT4gbV90cmFu
c2Zvcm07CisgICAgYm9vbCBtX2VtdWxhdGVkUG9zaXRpb24geyBmYWxzZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzOTI3NjliNmRiYWJjNGE3OTZmMGIxOTUzNWJhOTMzYTNhZDcwOWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGwK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNl
IFhSUG9zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJh
bnNmb3JtIHRyYW5zZm9ybTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBlbXVsYXRl
ZFBvc2l0aW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVm
ZXJlbmNlU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzN2FjYmVhNWU4OTcyNzJlODViODY5MTdmMjk3
NmY3NzY3ZGY4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUmVmZXJlbmNlU3BhY2UuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitYUlJlZmVyZW5jZVNwYWNlOjpYUlJlZmVyZW5jZVNwYWNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAgOiBYUlNwYWNlKGNvbnRleHQpCit7
Cit9CisKK1hSUmVmZXJlbmNlU3BhY2U6On5YUlJlZmVyZW5jZVNwYWNlKCkgPSBkZWZhdWx0Owor
CitSZWY8WFJSZWZlcmVuY2VTcGFjZT4gWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJl
bmNlU3BhY2UoY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgWFJSZWZlcmVuY2VTcGFjZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZlMTRkNDgzZDRmNTgwNzg0ZTg5YjQ4
ZjcwMmY1YTQ0YTYxZTEyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlNwYWNlLmgiCisKKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSaWdpZFRyYW5zZm9ybTsK
KworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBYUlNwYWNlIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5YUlJlZmVyZW5jZVNwYWNlKCk7CisKKyAgICBSZWY8WFJSZWZlcmVuY2VTcGFj
ZT4gZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYpOworCitw
cml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3BhY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFmZGFlY2Q1ZjFhYzc1
MTczODdhNTQyMzE3NTI0MmJiMTU0MWUyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdAorXSBp
bnRlcmZhY2UgWFJSZWZlcmVuY2VTcGFjZSA6IFhSU3BhY2UgeworICAgIFtOZXdPYmplY3RdIFhS
UmVmZXJlbmNlU3BhY2UgZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoWFJSaWdpZFRyYW5zZm9ybSBv
cmlnaW5PZmZzZXQpOworCisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc2V0OworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWEwNGEwMTBkMDEyYTNhMGJkYzhlMGU3OGJlNGQ1YmVj
MWQ0NTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUmVmZXJlbmNlU3BhY2VFdmVudC5oIgor
CisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZS5oIgorI2luY2x1ZGUgIlhSUmlnaWRUcmFuc2Zv
cm0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJSZWZlcmVuY2VTcGFjZUV2ZW50
PiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBYUlJlZmVyZW5jZVNwYWNlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIs
IGlzVHJ1c3RlZCkpOworfQorCitYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OlhSUmVmZXJlbmNlU3Bh
Y2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwg
SXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1Ry
dXN0ZWQpCisgICAgLCBtX3JlZmVyZW5jZVNwYWNlKGluaXRpYWxpemVyLnJlZmVyZW5jZVNwYWNl
KQorICAgICwgbV90cmFuc2Zvcm0oaW5pdGlhbGl6ZXIudHJhbnNmb3JtKQoreworICAgIEFTU0VS
VChtX3JlZmVyZW5jZVNwYWNlKTsKKyAgICBBU1NFUlQobV90cmFuc2Zvcm0pOworfQorCitYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQ6On5YUlJlZmVyZW5jZVNwYWNlRXZlbnQoKSA9IGRlZmF1bHQ7CisK
K2NvbnN0IFhSUmVmZXJlbmNlU3BhY2UmIFhSUmVmZXJlbmNlU3BhY2VFdmVudDo6cmVmZXJlbmNl
U3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZWZlcmVuY2VTcGFjZTsKK30KKworY29u
c3QgWFJSaWdpZFRyYW5zZm9ybSYgWFJSZWZlcmVuY2VTcGFjZUV2ZW50Ojp0cmFuc2Zvcm0oKSBj
b25zdAoreworICAgIHJldHVybiAqbV90cmFuc2Zvcm07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5OGQzOWZkMjhmMGQ5MDJiMDg2NWZiODEwOGUzM2Q1
ZDUwY2NlYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
WFJSZWZlcmVuY2VTcGFjZTsKK2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm07CisKK2NsYXNzIFhSUmVm
ZXJlbmNlU3BhY2VFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IElu
aXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQdHI8WFJSZWZlcmVuY2VTcGFjZT4gcmVmZXJl
bmNlU3BhY2U7CisgICAgICAgIFJlZlB0cjxYUlJpZ2lkVHJhbnNmb3JtPiB0cmFuc2Zvcm07Cisg
ICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJSZWZlcmVuY2VTcGFjZUV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsK
KyAgICB2aXJ0dWFsIH5YUlJlZmVyZW5jZVNwYWNlRXZlbnQoKTsKKworICAgIGNvbnN0IFhSUmVm
ZXJlbmNlU3BhY2UmIHJlZmVyZW5jZVNwYWNlKCkgY29uc3Q7CisgICAgY29uc3QgWFJSaWdpZFRy
YW5zZm9ybSYgdHJhbnNmb3JtKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSZWZlcmVuY2VT
cGFjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKwor
ICAgIFJlZlB0cjxYUlJlZmVyZW5jZVNwYWNlPiBtX3JlZmVyZW5jZVNwYWNlOworICAgIFJlZlB0
cjxYUlJpZ2lkVHJhbnNmb3JtPiBtX3RyYW5zZm9ybTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODYwMWM0NzdiMGM1ZDJmZTFmZDU1YmRiOGUx
ODk3ZjA5ZTQwODMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
R0wKK10gZGljdGlvbmFyeSBYUlJlZmVyZW5jZVNwYWNlRXZlbnRJbml0IDogRXZlbnRJbml0IHsK
KyAgICByZXF1aXJlZCBYUlJlZmVyZW5jZVNwYWNlIHJlZmVyZW5jZVNwYWNlOworICAgIFhSUmln
aWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBv
c2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJSZWZlcmVuY2VT
cGFjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJS
ZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZWE0ZjlkNWU2MWZjMzc0MzIzYzNmMDMxNmM1NDk1YzgwZDk4NzVkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5o
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7CisgICAgVmll
d2VyLAorICAgIExvY2FsLAorICAgIExvY2FsRmxvb3IsCisgICAgQm91bmRlZEZsb29yLAorICAg
IFVuYm91bmRlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NTczMmZiMTYzOThlN2Y5NjJmNTRjOWY3YTNiNTNmZmU4ZDM4NTFiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlw
ZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTAorXSBlbnVtIFhSUmVmZXJlbmNlU3Bh
Y2VUeXBlIHsKKyAgICAidmlld2VyIiwKKyAgICAibG9jYWwiLAorICAgICJsb2NhbC1mbG9vciIs
CisgICAgImJvdW5kZWQtZmxvb3IiLAorICAgICJ1bmJvdW5kZWQiCit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2VhYmZm
YTJkMjY3ZWMyYjBiYWNiZjBhMzRmMzZlMDk1MWNmZTQzOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAKQEAgLTAsMCArMSw5
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJSZW5k
ZXJTdGF0ZS5oIgorCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZUluaXQuaCIKKyNpbmNsdWRlICJY
UldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFhSUmVuZGVyU3RhdGUpOworCitSZWY8WFJSZW5kZXJTdGF0ZT4g
WFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICAv
LyBXaGVuIGFuIFhSUmVuZGVyU3RhdGUgb2JqZWN0IGlzIGNyZWF0ZWQgZm9yIGFuIFhSU2Vzc2lv
biBzZXNzaW9uLCB0aGUgdXNlciBhZ2VudCBNVVNUIGluaXRpYWxpemUgdGhlIHJlbmRlciBzdGF0
ZSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAxLiBMZXQgc3RhdGUg
YmUgdGhlIG5ld2x5IGNyZWF0ZWQgWFJSZW5kZXJTdGF0ZSBvYmplY3QuCisKKyAgICAvLyAgIDIu
IEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRoTmVhciB0byAwLjEuCisgICAgLy8gICAzLiBJbml0
aWFsaXplIHN0YXRl4oCZcyBkZXB0aEZhciB0byAxMDAwLjAuCisgICAgLy8gKERlZmF1bHQtaW5p
dGlhbGl6ZWQgaW4gdGhlIFhSUmVuZGVyU3RhdGUgY2xhc3MgZGVmaW5pdGlvbi4pCisKKyAgICAv
LyAgIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNlc3Npb24sIGluaXRpYWxpemUgc3Rh
dGXigJlzIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgdG8gbnVsbC4KKyAgICAvLyAgIDUuIEVs
c2UgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB0byBQSSAq
IDAuNS4KKyAgICAvLyBGSVhNRTogImltbWVyc2l2ZSBzZXNzaW9uIiBzdXBwb3J0CisgICAgVU5V
U0VEX1BBUkFNKHNlc3Npb24pOworICAgIE9wdGlvbmFsPGRvdWJsZT4gaW5saW5lVmVydGljYWxG
aWVsZE9mVmlldyB7IHBpT3ZlclR3b0RvdWJsZSB9OworCisgICAgLy8gICA2LiBJbml0aWFsaXpl
IHN0YXRl4oCZcyBiYXNlTGF5ZXIgdG8gbnVsbC4KKyAgICAvLyAgIDcuIEluaXRpYWxpemUgc3Rh
dGXigJlzIG91dHB1dENvbnRleHQgdG8gbnVsbC4KKyAgICAvLyAoSW5pdGlhbGl6ZWQgdG8gbnVs
bCBieSBkZWZhdWx0LikKKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmVuZGVyU3RhdGUo
V1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KSkpOworfQorCitYUlJlbmRlclN0YXRl
OjpYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZW
aWV3KQorICAgIDogbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KFdURk1vdmUoaW5saW5lVmVy
dGljYWxGaWVsZE9mVmlldykpCit7Cit9CisKK1hSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUo
Y29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKQoreworfQorCitYUlJlbmRlclN0YXRlOjp+WFJSZW5k
ZXJTdGF0ZSgpID0gZGVmYXVsdDsKKworZG91YmxlIFhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGVwdGgubmVhcjsKK30KKworZG91YmxlIFhSUmVuZGVy
U3RhdGU6OmRlcHRoRmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXB0aC5mYXI7Cit9CisK
K09wdGlvbmFsPGRvdWJsZT4gWFJSZW5kZXJTdGF0ZTo6aW5saW5lVmVydGljYWxGaWVsZE9mVmll
dygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKK30K
KworUmVmUHRyPFhSV2ViR0xMYXllcj4gWFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9iYXNlTGF5ZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWQxOTIxNGY0MGY3YzE5YmE0YjUyOWUzZWQwYjFlMWZlNzJhN2VjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5oCkBAIC0w
LDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSV2ViR0xMYXllcjsKK3N0cnVjdCBY
UlJlbmRlclN0YXRlSW5pdDsKK2NsYXNzIFhSU2Vzc2lvbjsKKworY2xhc3MgWFJSZW5kZXJTdGF0
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSUmVuZGVyU3RhdGU+IHsKKyAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFhSUmVuZGVyU3RhdGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJSZW5k
ZXJTdGF0ZT4gY3JlYXRlKGNvbnN0IFhSU2Vzc2lvbiYpOworICAgIH5YUlJlbmRlclN0YXRlKCk7
CisKKyAgICBkb3VibGUgZGVwdGhOZWFyKCkgY29uc3Q7CisgICAgZG91YmxlIGRlcHRoRmFyKCkg
Y29uc3Q7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KCkg
Y29uc3Q7CisgICAgUmVmUHRyPFhSV2ViR0xMYXllcj4gYmFzZUxheWVyKCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgWFJSZW5kZXJTdGF0ZShPcHRpb25hbDxkb3VibGU+JiYpOworICAgIFhSUmVu
ZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKTsKKworICAgIHN0cnVjdCB7CisgICAg
ICAgIGRvdWJsZSBuZWFyIHsgMC4xIH07CisgICAgICAgIGRvdWJsZSBmYXIgeyAxMDAwIH07Cisg
ICAgfSBtX2RlcHRoOworICAgIE9wdGlvbmFsPGRvdWJsZT4gbV9pbmxpbmVWZXJ0aWNhbEZpZWxk
T2ZWaWV3OworICAgIFJlZlB0cjxYUldlYkdMTGF5ZXI+IG1fYmFzZUxheWVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJS
ZW5kZXJTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc4NWQ1YjVlMTc1Y2U2NGJjMGM1ZmM4Zjk5MTYx
N2E5MzM5ZDczMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZW5kZXJTdGF0ZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmVuZGVyU3RhdGUgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBkb3VibGUgZGVwdGhOZWFyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVw
dGhGYXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZT8gaW5saW5lVmVydGljYWxGaWVs
ZE9mVmlldzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJXZWJHTExheWVyPyBiYXNlTGF5ZXI7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0
YXRlSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5p
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxNTVmZDk5ZDVmMDJiZmYwOWU4ODMwOGU5ZjRkOGRiZTk2YzhiZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVy
U3RhdGVJbml0LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlhSV2ViR0xMYXllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJSZW5kZXJTdGF0ZUluaXQgeworICAgIGRv
dWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRvdWJsZSBpbmxpbmVW
ZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxYUldlYkdMTGF5ZXI+IGJhc2VMYXllcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY0MmViOTg4NjEz
MWY0NzFmNjNjMjY2N2E0NmIwZGZhMTZjMDI4MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCR0wsCitdIGRpY3Rpb25hcnkgWFJSZW5kZXJTdGF0ZUluaXQgeworICAgIGRv
dWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRvdWJsZSBpbmxpbmVW
ZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdjYzRiN2U2OGQzNTI0MGYyMDgxZTMxNzIxNzFhYjdkOTIwZjczNDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zv
cm0uY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJYUlJpZ2lkVHJhbnNmb3JtLmgiCisKKyNpbmNsdWRlICJET01Qb2ludFJl
YWRPbmx5LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFhSUmlnaWRUcmFuc2Zvcm0pOworCitSZWY8WFJSaWdpZFRyYW5zZm9ybT4gWFJS
aWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlJp
Z2lkVHJhbnNmb3JtKHsgfSwgeyB9KSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxYUlJpZ2lkVHJh
bnNmb3JtPj4gWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKGNvbnN0IERPTVBvaW50SW5pdCYgcG9z
aXRpb24sIGNvbnN0IERPTVBvaW50SW5pdCYgb3JpZW50YXRpb24pCit7CisgICAgLy8gVGhlIFhS
UmlnaWRUcmFuc2Zvcm0ocG9zaXRpb24sIG9yaWVudGF0aW9uKSBjb25zdHJ1Y3RvciBNVVNUIHBl
cmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwcyB3aGVuIGludm9rZWQ6CisgICAgLy8gICAxLiBMZXQg
dHJhbnNmb3JtIGJlIGEgbmV3IFhSUmlnaWRUcmFuc2Zvcm0uCisKKyAgICAvLyAgIDIuIElmIHBv
c2l0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9z
aXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDMu
IElmIHBvc2l0aW9u4oCZcyB3IHZhbHVlIGlzIG5vdCAxLjAsIHRocm93IGEgVHlwZUVycm9yLgor
ICAgIC8vICAgNC4gRWxzZSBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb27igJlzIHgg
dmFsdWUgdG8gcG9zaXRpb27igJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFsdWUgdG8gcG9z
aXRpb27igJlzIHkgZGljdGlvbmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gcG9zaXRpb27igJlzIHog
ZGljdGlvbmFyeSBtZW1iZXIgYW5kIHcgdG8gMS4wLgorICAgIGlmIChwb3NpdGlvbi53ICE9IDEu
MCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIERPTVBvaW50
SW5pdCBwb3NpdGlvbkluaXQgeyBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBwb3NpdGlvbi56LCAx
IH07CisKKyAgICAvLyAgIDUuIElmIG9yaWVudGF0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBp
bml0aWFsaXplIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwg
ejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDYuIEVsc2UgaW5pdGlhbGl6ZSB0cmFuc2Zvcm3i
gJlzIG9yaWVudGF0aW9u4oCZcyB4IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB4IGRpY3Rpb25h
cnkgbWVtYmVyLCB5IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB5IGRpY3Rpb25hcnkgbWVtYmVy
LCB6IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVyIGFuZCB3IHZh
bHVlIHRvIG9yaWVudGF0aW9u4oCZcyB3IGRpY3Rpb25hcnkgbWVtYmVyLgorICAgIC8vICAgNy4g
Tm9ybWFsaXplIHgsIHksIHosIGFuZCB3IGNvbXBvbmVudHMgb2YgdHJhbnNmb3Jt4oCZcyBvcmll
bnRhdGlvbi4KKyAgICBET01Qb2ludEluaXQgb3JpZW50YXRpb25Jbml0IHsgb3JpZW50YXRpb24u
eCwgb3JpZW50YXRpb24ueSwgb3JpZW50YXRpb24ueiwgb3JpZW50YXRpb24udyB9OworICAgIHsK
KyAgICAgICAgZG91YmxlIGxlbmd0aCA9IHN0ZDo6c3FydChvcmllbnRhdGlvbkluaXQueCAqIG9y
aWVudGF0aW9uSW5pdC54ICsgb3JpZW50YXRpb25Jbml0LnkgKiBvcmllbnRhdGlvbkluaXQueQor
ICAgICAgICAgICAgKyBvcmllbnRhdGlvbkluaXQueiAqIG9yaWVudGF0aW9uSW5pdC56ICsgb3Jp
ZW50YXRpb25Jbml0LncgKiBvcmllbnRhdGlvbkluaXQudyk7CisgICAgICAgIGlmIChXVEY6OmFy
ZUVzc2VudGlhbGx5RXF1YWw8ZG91YmxlPihsZW5ndGgsIDApKQorICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAgb3JpZW50YXRpb25J
bml0PSB7CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQueCAvIGxlbmd0aCwgb3JpZW50YXRp
b25Jbml0LnkgLyBsZW5ndGgsCisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQueiAvIGxlbmd0
aCwgb3JpZW50YXRpb25Jbml0LncgLyBsZW5ndGgsCisgICAgICAgIH07CisgICAgfQorCisgICAg
Ly8gICA4LiBSZXR1cm4gdHJhbnNmb3JtLgorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmln
aWRUcmFuc2Zvcm0ocG9zaXRpb25Jbml0LCBvcmllbnRhdGlvbkluaXQpKTsKK30KKworWFJSaWdp
ZFRyYW5zZm9ybTo6WFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmIHBvc2l0aW9u
LCBjb25zdCBET01Qb2ludEluaXQmIG9yaWVudGF0aW9uKQorICAgIDogbV9wb3NpdGlvbihET01Q
b2ludFJlYWRPbmx5OjpjcmVhdGUocG9zaXRpb24pKQorICAgICwgbV9vcmllbnRhdGlvbihET01Q
b2ludFJlYWRPbmx5OjpjcmVhdGUob3JpZW50YXRpb24pKQoreworICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQgcHJvcGVybHksIHBlciBzcGVjLgorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdHJp
eDsKKyAgICBhdXRvIG1hdHJpeERhdGEgPSBtYXRyaXgudG9Db2x1bW5NYWpvckZsb2F0QXJyYXko
KTsKKyAgICBtX21hdHJpeCA9IEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1hdHJpeERhdGEuZGF0YSgp
LCBtYXRyaXhEYXRhLnNpemUoKSk7Cit9CisKK1hSUmlnaWRUcmFuc2Zvcm06On5YUlJpZ2lkVHJh
bnNmb3JtKCkgPSBkZWZhdWx0OworCitjb25zdCBET01Qb2ludFJlYWRPbmx5JiBYUlJpZ2lkVHJh
bnNmb3JtOjpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9zaXRpb247Cit9CisK
K2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFhSUmlnaWRUcmFuc2Zvcm06Om9yaWVudGF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmllbnRhdGlvbjsKK30KKworUmVmPEZsb2F0MzJBcnJh
eT4gIFhSUmlnaWRUcmFuc2Zvcm06Om1hdHJpeCgpIGNvbnN0Cit7CisgICAgYXV0byBtYXRyaXgg
PSBGbG9hdDMyQXJyYXk6OmNyZWF0ZSgxNik7CisgICAgbWF0cml4LT56ZXJvRmlsbCgpOworICAg
IHJldHVybiBtYXRyaXg7Cit9CisKK1JlZjxYUlJpZ2lkVHJhbnNmb3JtPiBYUlJpZ2lkVHJhbnNm
b3JtOjppbnZlcnNlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3Blcmx5
LgorICAgIHJldHVybiBYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJpZ2lkVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRU
cmFuc2Zvcm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWQwNDNlODEyMzBmNTRlYjEzYzk3OGU5ODM3NzBhMTRh
MTU4MDU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJpZ2lkVHJhbnNmb3JtLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IERPTVBv
aW50SW5pdDsKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisKK2NsYXNzIFhSUmlnaWRUcmFuc2Zv
cm0gOiBwdWJsaWMgUmVmQ291bnRlZDxYUlJpZ2lkVHJhbnNmb3JtPiB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChYUlJpZ2lkVHJhbnNmb3JtKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFhSUmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8
WFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Q
b2ludEluaXQmKTsKKyAgICB+WFJSaWdpZFRyYW5zZm9ybSgpOworCisgICAgY29uc3QgRE9NUG9p
bnRSZWFkT25seSYgcG9zaXRpb24oKSBjb25zdDsKKyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5
JiBvcmllbnRhdGlvbigpIGNvbnN0OworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgpIGNv
bnN0OworICAgIFJlZjxYUlJpZ2lkVHJhbnNmb3JtPiBpbnZlcnNlKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Q
b2ludEluaXQmKTsKKworICAgIFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX3Bvc2l0aW9uOworICAg
IFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX29yaWVudGF0aW9uOworICAgIFJlZlB0cjxGbG9hdDMy
QXJyYXk+IG1fbWF0cml4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2RmNWM4OTI3YTI0OWEwMDU2MTdjY2NhOTc3MWJkZTA0M2ZlODNlNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwK
QEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFsIERPTVBvaW50SW5pdCBwb3Np
dGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0aW9uKSwKKyAgICBDb25zdHJ1Y3Rv
ck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50
ZXJmYWNlIFhSUmlnaWRUcmFuc2Zvcm0geworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NUG9pbnRSZWFkT25seSBwb3NpdGlvbjsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVBvaW50UmVhZE9ubHkgb3JpZW50YXRpb247CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEZsb2F0MzJBcnJheSBtYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzYyNTMyZjcxNzBiMjVl
Y2Q2MDZlZWJkZWMxMmE1OTM1NzQ1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uLmgiCisKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlNlc3Npb24pOworCitYUlNlc3Npb246On5YUlNl
c3Npb24oKSA9IGRlZmF1bHQ7CisKK1hSRW52aXJvbm1lbnRCbGVuZE1vZGUgWFJTZXNzaW9uOjpl
bnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW52aXJvbm1lbnRC
bGVuZE1vZGU7Cit9CisKK1hSVmlzaWJpbGl0eVN0YXRlIFhSU2Vzc2lvbjo6dmlzaWJpbGl0eVN0
YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisKK2NvbnN0
IFhSUmVuZGVyU3RhdGUmIFhSU2Vzc2lvbjo6cmVuZGVyU3RhdGUoKSBjb25zdAoreworICAgIHJl
dHVybiAqbV9yZW5kZXJTdGF0ZTsKK30KKworY29uc3QgWFJJbnB1dFNvdXJjZUFycmF5JiBYUlNl
c3Npb246OmlucHV0U291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2lucHV0U291cmNl
czsKK30KKwordm9pZCBYUlNlc3Npb246OnVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVy
U3RhdGVJbml0JikKK3sKK30KKwordm9pZCBYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VTcGFj
ZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21p
c2UmJikKK3sKK30KKworaW50IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxY
UkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFhS
U2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQoreworfQorCit2b2lkIFhSU2Vzc2lv
bjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3QgY2hhciogWFJTZXNzaW9uOjphY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlhSU2Vzc2lvbiI7Cit9CisK
K3ZvaWQgWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRmYzhk
NDIyNTUwNGVjNTI0ZTNmOGJkMDBlOWJlMzc1N2ZlNzM0ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmgKQEAgLTAsMCArMSw5MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRNb2RlLmgiCisjaW5jbHVkZSAiWFJJ
bnB1dFNvdXJjZUFycmF5LmgiCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKKyNp
bmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorI2luY2x1ZGUg
IlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUkZyYW1lUmVxdWVzdENh
bGxiYWNrOworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5p
dDsKKworY2xhc3MgWFJTZXNzaW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8WFJTZXNzaW9u
PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJTZXNzaW9uKTsKK3B1YmxpYzoKKyAg
ICB1c2luZyBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxYUlJlZmVyZW5jZVNwYWNlPj47CisgICAgdXNpbmcgRW5kUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPjsKKworICAgIHZpcnR1YWwgflhSU2Vzc2lvbigpOwor
CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNlc3Npb24+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291
bnRlZDxYUlNlc3Npb24+OjpkZXJlZjsKKworICAgIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgZW52
aXJvbm1lbnRCbGVuZE1vZGUoKSBjb25zdDsKKyAgICBYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmls
aXR5U3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBYUlJlbmRlclN0YXRlJiByZW5kZXJTdGF0ZSgp
IGNvbnN0OworICAgIGNvbnN0IFhSSW5wdXRTb3VyY2VBcnJheSYgaW5wdXRTb3VyY2VzKCkgY29u
c3Q7CisKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0
Jik7CisgICAgdm9pZCByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVuY2VTcGFj
ZVR5cGUmLCBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNlJiYpOworCisgICAgaW50IHJlcXVl
c3RBbmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJik7CisgICAgdm9p
ZCBjYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaGFuZGxlKTsKKworICAgIHZvaWQgZW5kKEVuZFBy
b21pc2UmJik7CisKKyAgICBib29sIGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmRlZDsgfQor
Citwcm90ZWN0ZWQ6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFj
ZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhSU2Vzc2lv
bkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVE
T01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7CisKKyAgICBYUkVudmlyb25tZW50QmxlbmRNb2RlIG1fZW52aXJvbm1l
bnRCbGVuZE1vZGU7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7Cisg
ICAgUmVmUHRyPFhSUmVuZGVyU3RhdGU+IG1fcmVuZGVyU3RhdGU7CisgICAgUmVmUHRyPFhSSW5w
dXRTb3VyY2VBcnJheT4gbV9pbnB1dFNvdXJjZXM7CisgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJTZXNzaW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjNhNTJmNTkyM2E0ZmI4YjEzNWM1OThj
MDczYzYzMDkxNTljZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb24uaWRsCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAg
QWN0aXZlRE9NT2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFhSU2Vzc2lvbiA6IEV2ZW50VGFyZ2V0IHsKKyAgICAvLyBBdHRyaWJ1dGVz
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1l
bnRCbGVuZE1vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSVmlzaWJpbGl0eVN0YXRlIHZp
c2liaWxpdHlTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmVu
ZGVyU3RhdGUgcmVuZGVyU3RhdGU7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBYUklucHV0U291cmNlQXJyYXkgaW5wdXRTb3VyY2VzOworCisgICAgLy8gTWV0aG9kcworICAg
IHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUob3B0aW9uYWwgWFJSZW5kZXJTdGF0ZUluaXQgc3RhdGVJ
bml0KTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFhSUmVmZXJlbmNlU3BhY2U+IHJlcXVlc3RS
ZWZlcmVuY2VTcGFjZShYUlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBlKTsKKworICAgIGxvbmcgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAg
IHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9uZyBoYW5kbGUpOworCisgICAgUHJvbWlzZTx2
b2lkPiBlbmQoKTsKKworICAgIC8vIEV2ZW50cworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNlbGVjdDsKKyAgICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uaW5wdXRzb3VyY2VzY2hhbmdlOworICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25zZWxlY3RzdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2Vs
ZWN0ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb252aXNpYmlsaXR5Y2hhbmdlOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjE1OWRhYmI2ZjNjZTY1M2ZhMzkyY2Q3NjE3MGNkYjdlYTU0MTE3ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZl
bnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlhSU2Vzc2lvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJYUlNlc3Npb24uaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJTZXNzaW9uRXZlbnQ+IFhSU2Vzc2lvbkV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6
ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJT
ZXNzaW9uRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQorCitYUlNlc3Np
b25FdmVudDo6WFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5p
dCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBp
bml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKGluaXRpYWxpemVyLnNlc3Np
b24pCit7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7Cit9CisKK1hSU2Vzc2lvbkV2ZW50Ojp+WFJT
ZXNzaW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSU2Vzc2lvbiYgWFJTZXNzaW9uRXZl
bnQ6OnNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiAqbV9zZXNzaW9uOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSU2Vzc2lvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlMWY5ZTZhMThlMzkwNjM3ZjRiNzA2MmE2N2ViNzFi
YzBlMjVkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJTZXNzaW9uRXZlbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBYUlNlc3Npb247CisKK2NsYXNzIFhSU2Vzc2lvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50
IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0
cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJTZXNzaW9u
RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9
IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSU2Vzc2lvbkV2ZW50KCk7CisKKyAgICBj
b25zdCBYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlNlc3Np
b25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAg
ICBSZWZQdHI8WFJTZXNzaW9uPiBtX3Nlc3Npb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY2NDQzNjZkZjYxM2VmOTEwYzgyNTBmMWI0YTMzOTMyODZmODdhYTMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2
ZW50LmlkbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorXSBkaWN0aW9uYXJ5IFhSU2Vz
c2lvbkV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgWFJTZXNzaW9uIHNlc3Np
b247Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25h
bD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENv
bnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUlNlc3Npb25FdmVudEluaXQgZXZlbnRJbml0RGlj
dCkKK10gaW50ZXJmYWNlIFhSU2Vzc2lvbkV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgWFJTZXNzaW9uIHNlc3Npb247Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmI0N2NjMjZh
NDE4Mjc5YzVmOWNmZTJmYjFlNjFhMTU5MGVjMmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmgKQEAgLTAsMCArMSw0MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0
cm9uZy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBKU0MgeworY2xh
c3MgSlNWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJTZXNzaW9u
SW5pdCB7CisgICAgVmVjdG9yPEpTQzo6SlNWYWx1ZT4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICBW
ZWN0b3I8SlNDOjpKU1ZhbHVlPiBvcHRpb25hbEZlYXR1cmVzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNl
c3Npb25Jbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5p
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTU4NjBhOGJhNDc3OWQ0ZDRiZGIwY2VlZmIwZmU0NjIzYzFiNWVm
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNz
aW9uSW5pdC5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTAorXSBkaWN0aW9uYXJ5IFhS
U2Vzc2lvbkluaXQgeworICAgIHNlcXVlbmNlPGFueT4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICBz
ZXF1ZW5jZTxhbnk+IG9wdGlvbmFsRmVhdHVyZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjFlYzY1OGZmYmJiZDc0OTk5
YjRiOTdlYjg3YTc5Yjk5ZWNiYjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBYUlNlc3Npb25Nb2RlID0gUGxhdGZvcm1YUjo6U2Vzc2lvbk1v
ZGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWQ5YjQ1ZTkxMzM3YTI5ODE2
ZWQ3OTQ4YzU2NTE4NGMyNWI5Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
R0wKK10gZW51bSBYUlNlc3Npb25Nb2RlIHsKKyAgICAiaW5saW5lIiwKKyAgICAiaW1tZXJzaXZl
LXZyIiwKKyAgICAiaW1tZXJzaXZlLWFyIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YTcwMDg5YTUzODJiMjJlZDhmZjUzNTJjNTQxZDhk
Y2I2Y2E3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlhSU3BhY2UuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFhSU3BhY2UpOworCitYUlNwYWNlOjpYUlNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkK
K3sKK30KKworWFJTcGFjZTo6flhSU3BhY2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFj
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDE1OTEzOTI5NjYzNzc4YjBiN2E0NGZjZWUwZDQyMWYxZmM0NzI0ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5oCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OworCitjbGFzcyBYUlNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8WFJTcGFj
ZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJTcGFjZSk7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+WFJTcGFjZSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxY
UlNwYWNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8WFJTcGFjZT46OmRlcmVmOworCitw
cm90ZWN0ZWQ6CisgICAgWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAgICAv
LyBFdmVudFRhcmdldAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRXZl
bnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhSU3BhY2VFdmVudFRhcmdldEludGVyZmFjZVR5cGU7
IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQ5MDA0YTk4YmQ4MzRhMzMwNTk1YWVjY2E0NTk0NWZjMTA3YzJkMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwK
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBYUlNwYWNlIDogRXZlbnRUYXJnZXQgeworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk3NDUz
ZTM2NDgwZWU0ZDRjZTJiMzdhY2IxZjk5MDEyOTc3NWMxMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uY3BwCkBAIC0wLDAgKzEsODggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU3lzdGVtLmgi
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoWFJTeXN0ZW0pOworCitSZWY8WFJTeXN0ZW0+IFhSU3lzdGVtOjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBYUlN5c3RlbShzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7Cit9CisKK1hSU3lz
dGVtOjpYUlN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorewor
fQorCitYUlN5c3RlbTo6flhSU3lzdGVtKCkgPSBkZWZhdWx0OworCit2b2lkIFhSU3lzdGVtOjpp
c1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlz
ZSYmKQoreworICAgIC8vIFdoZW4gdGhlIHN1cHBvcnRzU2Vzc2lvbihtb2RlKSBtZXRob2QgaXMg
aW52b2tlZCwgaXQgTVVTVCByZXR1cm4gYSBuZXcgUHJvbWlzZSBwcm9taXNlIGFuZCBydW4gdGhl
IGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKKyAgICAvLyAgIDEuIEVuc3VyZSBhbiBYUiBk
ZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAgLy8gICAyLiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51bGws
IHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICAzLiBJZiB0aGUgWFIgZGV2aWNlJ3MgbGlz
dCBvZiBzdXBwb3J0ZWQgbW9kZXMgZG9lcyBub3QgY29udGFpbiBtb2RlLCByZWplY3QgcHJvbWlz
ZSB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgorICAgIC8vICAgNC4gRWxzZSByZXNvbHZlIHByb21pc2UuCit9CisKK3ZvaWQgWFJT
eXN0ZW06OnJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQm
LCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJikKK3sKKyAgICBQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6
c2luZ2xldG9uKCk7CisKKyAgICAvLyBXaGVuIHRoZSByZXF1ZXN0U2Vzc2lvbihtb2RlKSBtZXRo
b2QgaXMgaW52b2tlZCwgdGhlIHVzZXIgYWdlbnQgTVVTVCByZXR1cm4gYSBuZXcgUHJvbWlzZSBw
cm9taXNlIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKKyAgICAvLyAg
IDEuIExldCBpbW1lcnNpdmUgYmUgdHJ1ZSBpZiBtb2RlIGlzICJpbW1lcnNpdmUtdnIiIG9yICJp
bW1lcnNpdmUtYXIiLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgorICAgIC8vICAgMi4gSWYgaW1tZXJz
aXZlIGlzIHRydWU6CisgICAgLy8gICAgIDEuIElmIHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24g
aXMgdHJ1ZSBvciBhY3RpdmUgaW1tZXJzaXZlIHNlc3Npb24gaXMgbm90IG51bGwsIHJlamVjdCBw
cm9taXNlIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgICAyLiBFbHNlIHNldCBwZW5kaW5nIGltbWVyc2l2ZSBz
ZXNzaW9uIHRvIGJlIHRydWUuCisgICAgLy8gICAzLiBFbnN1cmUgYW4gWFIgZGV2aWNlIGlzIHNl
bGVjdGVkLgorICAgIC8vICAgNC4gSWYgdGhlIFhSIGRldmljZSBpcyBudWxsLCByZWplY3QgcHJv
bWlzZSB3aXRoIG51bGwuCisgICAgLy8gICA1LiBFbHNlIGlmIHRoZSBYUiBkZXZpY2UncyBsaXN0
IG9mIHN1cHBvcnRlZCBtb2RlcyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJlamVjdCBwcm9taXNl
IHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbi4KKyAgICAvLyAgIDYuIEVs
c2UgSWYgaW1tZXJzaXZlIGlzIHRydWUgYW5kIHRoZSBhbGdvcml0aG0gaXMgbm90IHRyaWdnZXJl
ZCBieSB1c2VyIGFjdGl2YXRpb24sIHJlamVjdCBwcm9taXNlIHdpdGggYSAiU2VjdXJpdHlFcnJv
ciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDcuIElmIHBy
b21pc2Ugd2FzIHJlamVjdGVkIGFuZCBpbW1lcnNpdmUgaXMgdHJ1ZSwgc2V0IHBlbmRpbmcgaW1t
ZXJzaXZlIHNlc3Npb24gdG8gZmFsc2UuCisgICAgLy8gICA4LiBJZiBwcm9taXNlIHdhcyByZWpl
Y3RlZCwgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICA5LiBMZXQgc2Vzc2lvbiBiZSBhIG5l
dyBYUlNlc3Npb24gb2JqZWN0LgorICAgIC8vICAgMTAuIEluaXRpYWxpemUgdGhlIHNlc3Npb24g
d2l0aCBzZXNzaW9uIGFuZCBtb2RlLgorICAgIC8vICAgMTEuIElmIGltbWVyc2l2ZSBpcyB0cnVl
LCBzZXQgdGhlIGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiB0byBzZXNzaW9uLCBhbmQgc2V0IHBl
bmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gZmFsc2UuCisgICAgLy8gICAxMi4gRWxzZSBhcHBl
bmQgc2Vzc2lvbiB0byB0aGUgbGlzdCBvZiBpbmxpbmUgc2Vzc2lvbnMuCisgICAgLy8gICAxMy4g
UmVzb2x2ZSBwcm9taXNlIHdpdGggc2Vzc2lvbi4KK30KKworY29uc3QgY2hhciogWFJTeXN0ZW06
OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiWFJTeXN0ZW0iOwor
fQorCit2b2lkIFhSU3lzdGVtOjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjYzk0
NGNhNDA3OTliMTcwZmU5MjcyZWIyMzNiMWM5ZDEyNjY3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKKyNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Yy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFhSU2Vzc2lvbjsKK3N0cnVj
dCBYUlNlc3Npb25Jbml0OworCitjbGFzcyBYUlN5c3RlbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFhSU3lzdGVtPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJTeXN0ZW0pOwor
cHVibGljOgorICAgIHVzaW5nIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMQm9vbGVhbj47CisgICAgdXNpbmcgUmVxdWVzdFNlc3Npb25Qcm9taXNlID0g
RE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxYUlNlc3Npb24+PjsKKworICAgIHN0YXRp
YyBSZWY8WFJTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgdmly
dHVhbCB+WFJTeXN0ZW0oKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8WFJTeXN0ZW0+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlN5c3RlbT46OmRlcmVmOworCisgICAgdm9pZCBpc1Nl
c3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUsIGNvbnN0IFhSU2Vzc2lv
bkluaXQmLCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJik7CisKK3Byb3RlY3RlZDoKKyAgICBYUlN5
c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAg
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gWFJTeXN0ZW1FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
KyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3Rl
bS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNzViNmRhNWE2MjBhODg1MTdlOWRkYTBmMDdlYzdiZmNhZmQxOTU0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwKQEAgLTAs
MCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgU2VjdXJl
Q29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJTeXN0ZW0gOiBFdmVu
dFRhcmdldCB7CisgICAgLy8gTWV0aG9kcworICAgIFByb21pc2U8dm9pZD4gaXNTZXNzaW9uU3Vw
cG9ydGVkKFhSU2Vzc2lvbk1vZGUgbW9kZSk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZTxYUlNl
c3Npb24+IHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUgbW9kZSwgb3B0aW9uYWwgWFJTZXNz
aW9uSW5pdCBvcHRpb25zKTsKKworICAgIC8vIEV2ZW50cworICAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25kZXZpY2VjaGFuZ2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJUYXJnZXRSYXlNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1NWYxNTIwMWNhOTE2ODRkYzZiMTA1
NjAwYmJlMjA2ZTlmNjFkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVGFy
Z2V0UmF5TW9kZSB7CisgICAgR2F6ZSwKKyAgICBUcmFja2VkUG9pbnRlciwKKyAgICBTY3JlZW4s
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MjE4YTA4YzZmYTE1
OTY1YjJiZjQwNTAwZmRmZTY3NGJhNDBkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlkbApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlv
bmFsPVdFQkdMCitdIGVudW0gWFJUYXJnZXRSYXlNb2RlIHsKKyAgICAiZ2F6ZSIsCisgICAgInRy
YWNrZWQtcG9pbnRlciIsCisgICAgInNjcmVlbiIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYyMjg3NmNhZTI2OWI2Y2VkYzVjNDM3ZGM1YTgz
NzYzNDZiZTY1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJWaWV3LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJYUlZpZXcuaCIKKworI2luY2x1ZGUgIlhSUmlnaWRUcmFuc2Zv
cm0uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSVmlldyk7CisKK1JlZjxYUlZpZXc+IFhSVmll
dzo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXcpOworfQorCitY
UlZpZXc6OlhSVmlldygpCisgICAgOiBtX2V5ZShYUkV5ZTo6TGVmdCkKKyAgICAsIG1fcHJvamVj
dGlvbk1hdHJpeChGbG9hdDMyQXJyYXk6OmNyZWF0ZSgwKSkKKyAgICAsIG1fdHJhbnNmb3JtKFhS
UmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpKQoreworfQorCitYUlZpZXc6On5YUlZpZXcoKSA9IGRl
ZmF1bHQ7CisKK1hSRXllIFhSVmlldzo6ZXllKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9leWU7
Cit9CisKK2NvbnN0IEZsb2F0MzJBcnJheSYgWFJWaWV3Ojpwcm9qZWN0aW9uTWF0cml4KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcm9qZWN0aW9uTWF0cml4OworfQorCitjb25zdCBYUlJpZ2lk
VHJhbnNmb3JtJiBYUlZpZXc6OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJh
bnNmb3JtOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGJmMzU5M2UxZjllNTkwMmVjZWVhMzgyYWQwOGQx
ZTQ2MDEwYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlZpZXcuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiWFJFeWUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJy
YXkuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8
WFJWaWV3PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlZpZXcpOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8WFJWaWV3PiBjcmVhdGUoKTsKKyAgICB+WFJWaWV3KCk7CisKKyAgICBY
UkV5ZSBleWUoKSBjb25zdDsKKyAgICBjb25zdCBGbG9hdDMyQXJyYXkmIHByb2plY3Rpb25NYXRy
aXgoKSBjb25zdDsKKyAgICBjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXcoKTsKKworICAgIFhSRXllIG1fZXllOworICAgIFJl
ZjxGbG9hdDMyQXJyYXk+IG1fcHJvamVjdGlvbk1hdHJpeDsKKyAgICBSZWY8WFJSaWdpZFRyYW5z
Zm9ybT4gbV90cmFuc2Zvcm07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM1OTk1NWMyZjIwYjAy
NmUwN2ZkMWU4MmUwMWNhMzI2ZTQzYTNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJWaWV3LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdM
LAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJWaWV3IHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgWFJFeWUgZXllOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgcHJv
amVjdGlvbk1hdHJpeDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmln
aWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJWaWV3ZXJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2ZiZjJhNzYwMGJmYzcwYWI2MmM1NDFm
NmIzMDhhMjcxZDEyMzEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlZpZXdlclBvc2UuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSVmlld2VyUG9zZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlZjxYUlZpZXdlclBvc2U+IFhSVmlld2VyUG9zZTo6Y3JlYXRlKCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXdlclBvc2UpOworfQorCitYUlZpZXdl
clBvc2U6OlhSVmlld2VyUG9zZSgpID0gZGVmYXVsdDsKK1hSVmlld2VyUG9zZTo6flhSVmlld2Vy
UG9zZSgpID0gZGVmYXVsdDsKKworY29uc3QgVmVjdG9yPFJlZjxYUlZpZXc+PiYgWFJWaWV3ZXJQ
b3NlOjp2aWV3cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlld3M7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJWaWV3ZXJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9z
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZmOTQwYzJmMTUyM2ZkZDE1MTdhYTU5N2Y0ZDlkNjRlODY5Zjg1NTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2Vy
UG9zZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJYUlBvc2UuaCIKKyNpbmNsdWRlICJYUlZpZXcuaCIKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFhSVmlld2VyUG9zZSA6IHB1YmxpYyBYUlBvc2UgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8WFJWaWV3ZXJQb3NlPiBjcmVhdGUoKTsKKyAgICB+WFJWaWV3ZXJQb3NlKCk7CisKKyAgICBj
b25zdCBWZWN0b3I8UmVmPFhSVmlldz4+JiB2aWV3cygpIGNvbnN0OworCitwcml2YXRlOgorICAg
IFhSVmlld2VyUG9zZSgpOworCisgICAgVmVjdG9yPFJlZjxYUlZpZXc+PiBtX3ZpZXdzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlZpZXdlclBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNGJjNmQwMTIyN2ViMjc3ZTcyOTczOTVl
N2UwZTNiMGVjYWJlMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSVmlld2VyUG9zZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSVmlld2VyUG9zZSA6IFhSUG9zZSB7CisgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxYUlZpZXc+IHZpZXdzOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU5ZjBkODllNzM3NDY1ZmI1MDk2ZDczODUxN2M3OTI0YmQzY2RhZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlhSVmlld3BvcnQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSVmlld3Bv
cnQpOworCitSZWY8WFJWaWV3cG9ydD4gWFJWaWV3cG9ydDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXdwb3J0KTsKK30KKworWFJWaWV3cG9ydDo6WFJWaWV3cG9y
dCgpID0gZGVmYXVsdDsKKworaW50IFhSVmlld3BvcnQ6OngoKSBjb25zdAoreworICAgIHJldHVy
biAwOworfQorCitpbnQgWFJWaWV3cG9ydDo6eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK2ludCBYUlZpZXdwb3J0Ojp3aWR0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisK
K2ludCBYUlZpZXdwb3J0OjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSVmlld3BvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3
cG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA2MTdiZGExMjgyYzhiZGRkYTQyOGQzNDIyODZmODUwMDdlOWMz
ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmll
d3BvcnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSVmll
d3BvcnQgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlZpZXdwb3J0PiB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChYUlZpZXdwb3J0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSVmlld3Bv
cnQ+IGNyZWF0ZSgpOworCisgICAgaW50IHgoKSBjb25zdDsKKyAgICBpbnQgeSgpIGNvbnN0Owor
ICAgIGludCB3aWR0aCgpIGNvbnN0OworICAgIGludCBoZWlnaHQoKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBYUlZpZXdwb3J0KCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDNj
MjZlZTVmZGYxMjg5OTE0NmViNjE2MTk5ZTI3MDUxN2Q5N2QyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbApAQCAtMCwwICsxLDM3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3cs
CisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJWaWV3cG9ydCB7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyB5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHdpZHRoOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjYwZWRiYzkyMDEzYzM3
Nzk5MWNhNDY0Mzg3YWJjYTcwYmJhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgWFJWaXNpYmlsaXR5U3RhdGUgeworICAgIFZpc2libGUsCisgICAgVmlzaWJsZUJsdXJyZWQs
CisgICAgSGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY5MTc3YTA4ZGUyNDZiODc1YzgzMjI2ZDNlZjliMjgzN2M1OGE5ZGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApA
QCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJWaXNpYmlsaXR5U3RhdGUgewor
ICAgICJ2aXNpYmxlIiwKKyAgICAidmlzaWJsZS1ibHVycmVkIiwKKyAgICAiaGlkZGVuIgorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ODIwYjZkNGZkMGViM2FhZjRhY2VkNjZkYjQ2ZmZkMzIxYjFkZTQwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwCkBA
IC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJYUldlYkdMTGF5ZXIuaCIKKworI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKKyNp
bmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2lu
Y2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKKyNlbmRpZgorI2luY2x1ZGUgIlhSU2Vz
c2lvbi5oIgorI2luY2x1ZGUgIlhSVmlld3BvcnQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXJJ
bml0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXhjZXB0aW9uT3I8UmVmPFhSV2ViR0xM
YXllcj4+IFhSV2ViR0xMYXllcjo6Y3JlYXRlKGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbiwgWFJS
ZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJXZWJHTExheWVySW5pdCYgaW5pdCkK
K3sKKyAgICAvLyBUaGUgWFJXZWJHTExheWVyKHNlc3Npb24sIGNvbnRleHQsIGxheWVySW5pdCkg
Y29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMgd2hlbiBpbnZva2Vk
OgorICAgIC8vICAgMS4gTGV0IGxheWVyIGJlIGEgbmV3IFhSV2ViR0xMYXllcgorCisgICAgLy8g
ICAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBhbiBJbnZhbGlk
U3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKHNlc3Npb24uZW5kZWQo
KSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAg
ICAvLyAgIDMuIElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Ig
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4gSWYgY29udGV4dOKAmXMgWFIgY29t
cGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8vICAgNS4gSW5p
dGlhbGl6ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LgorICAgIC8vICAgNi4gSW5pdGlh
bGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFsaWFzIHZhbHVl
LgorICAgIC8vICAgNy4gSWYgbGF5ZXJJbml04oCZcyBpZ25vcmVEZXB0aFZhbHVlcyB2YWx1ZSBp
cyBmYWxzZSBhbmQgdGhlIFhSIENvbXBvc2l0b3Igd2lsbCBtYWtlIHVzZSBvZiBkZXB0aCB2YWx1
ZXMsIEluaXRpYWxpemUgbGF5ZXLigJlzIGlnbm9yZURlcHRoVmFsdWVzIHRvIGZhbHNlLgorICAg
IC8vICAgOC4gRWxzZSBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVEZXB0aFZhbHVlcyB0byB0
cnVlCisgICAgLy8gICA5LiBJbml0aWFsaXplIGxheWVy4oCZcyBmcmFtZWJ1ZmZlciB0byBhIG5l
dyBvcGFxdWUgZnJhbWVidWZmZXIgY3JlYXRlZCB3aXRoIGNvbnRleHQuCisgICAgLy8gICAxMC4g
SW5pdGlhbGl6ZSB0aGUgbGF5ZXLigJlzIHN3YXAgY2hhaW4uCisgICAgLy8gICAxMS4gSWYgbGF5
ZXLigJlzIHN3YXAgY2hhaW4gd2FzIHVuYWJsZSB0byBiZSBjcmVhdGVkIGZvciBhbnkgcmVhc29u
LCB0aHJvdyBhbiBPcGVyYXRpb25FcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8g
RklYTUU6IFRPRE8KKworICAgIC8vICAgMTIuIFJldHVybiBsYXllci4KKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBYUldlYkdMTGF5ZXIoc2Vzc2lvbiwgV1RGTW92ZShjb250ZXh0KSwgaW5pdCkp
OworfQorCitYUldlYkdMTGF5ZXI6OlhSV2ViR0xMYXllcihjb25zdCBYUlNlc3Npb24mLCBYUlJl
bmRlcmluZ0NvbnRleHQmJiBjb250ZXh0LCBjb25zdCBYUldlYkdMTGF5ZXJJbml0JiBpbml0KQor
ICAgIDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCisgICAgLCBtX2FudGlhbGlhcyhpbml0
LmFudGlhbGlhcykKKyAgICAsIG1faWdub3JlRGVwdGhWYWx1ZXMoaW5pdC5pZ25vcmVEZXB0aFZh
bHVlcykKK3sKKyAgICBtX2ZyYW1lYnVmZmVyLm9iamVjdCA9IFdURjo6c3dpdGNoT24obV9jb250
ZXh0LAorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiYgY29u
dGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IGZy
YW1lQnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAg
ICAgIHJldHVybiBmcmFtZUJ1ZmZlcjsKKyAgICAgICAgfSwKKyNpZiBFTkFCTEUoV0VCR0wyKQor
ICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4mIGNvbnRleHQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1
ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgICAgICBy
ZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0sCisjZW5kaWYKKyAgICAgICAgW10oV1RGOjpN
b25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICApOworfQorCitYUldlYkdMTGF5ZXI6
On5YUldlYkdMTGF5ZXIoKSA9IGRlZmF1bHQ7CisKK2Jvb2wgWFJXZWJHTExheWVyOjphbnRpYWxp
YXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2FudGlhbGlhczsKK30KKworYm9vbCBYUldlYkdM
TGF5ZXI6Omlnbm9yZURlcHRoVmFsdWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZ25vcmVE
ZXB0aFZhbHVlczsKK30KKworY29uc3QgV2ViR0xGcmFtZWJ1ZmZlciYgWFJXZWJHTExheWVyOjpm
cmFtZWJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2ZyYW1lYnVmZmVyLm9iamVjdDsK
K30KKwordW5zaWduZWQgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlci53aWR0aDsKK30KKwordW5zaWduZWQgWFJXZWJHTExh
eWVyOjpmcmFtZWJ1ZmZlckhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZm
ZXIuaGVpZ2h0OworfQorCitSZWZQdHI8WFJWaWV3cG9ydD4gWFJXZWJHTExheWVyOjpnZXRWaWV3
cG9ydChjb25zdCBYUlZpZXcmKQoreworICAgIHJldHVybiB7IH07Cit9CisKK2RvdWJsZSBYUldl
YkdMTGF5ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgWFJTZXNzaW9u
JikKK3sKKyAgICByZXR1cm4gMS4wOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGYz
Y2E4OTU0MDA4NWFiNzc0N2EwNzQ5NzU4ZjMxNzk2OWEzNDc0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaApAQCAtMCwwICsxLDg2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xG
cmFtZWJ1ZmZlcjsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKKyNpZiBFTkFCTEUoV0VC
R0wyKQorY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKKyNlbmRpZgorY2xhc3MgWFJTZXNz
aW9uOworY2xhc3MgWFJWaWV3OworY2xhc3MgWFJWaWV3cG9ydDsKK3N0cnVjdCBYUldlYkdMTGF5
ZXJJbml0OworCitjbGFzcyBYUldlYkdMTGF5ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxYUldlYkdM
TGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2luZyBYUlJlbmRlcmluZ0NvbnRleHQgPSBX
VEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+LCAKKyNp
ZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4s
CisjZW5kaWYKKyAgICAgICAgV1RGOjpNb25vc3RhdGUKKyAgICA+OworCisgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxYUldlYkdMTGF5ZXI+PiBjcmVhdGUoY29uc3QgWFJTZXNzaW9uJiwgWFJS
ZW5kZXJpbmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsKKyAgICB+WFJXZWJH
TExheWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygpIGNvbnN0OworICAgIGJvb2wgaWdub3Jl
RGVwdGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0IFdlYkdMRnJhbWVidWZmZXImIGZyYW1l
YnVmZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0Owor
ICAgIHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkgY29uc3Q7CisKKyAgICBSZWZQdHI8WFJW
aWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3Jik7CisKKyAgICBzdGF0aWMgZG91Ymxl
IGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgWFJTZXNzaW9uJik7CisKK3By
aXZhdGU6CisgICAgWFJXZWJHTExheWVyKGNvbnN0IFhSU2Vzc2lvbiYsIFhSUmVuZGVyaW5nQ29u
dGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7CisKKyAgICBYUlJlbmRlcmluZ0NvbnRl
eHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxpYXMgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBS
ZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0OworICAgICAgICB1bnNpZ25lZCB3aWR0aCB7
IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9OworICAgIH0gbV9mcmFtZWJ1ZmZl
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjY0NzU4YmVlNjExMzI2ZDll
N2MwNzdhM2MxOTdlMTYxNWQwM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQpIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0OworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIC8vQ29uc3RydWN0b3IoWFJTZXNzaW9uIHNlc3Npb24sIFhS
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFhSV2ViR0xMYXllckluaXQg
bGF5ZXJJbml0KSwKKyAgICAvL0NvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRpb24sCisgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJXZWJHTExheWVyIHsKKyAgICAv
LyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYW50aWFsaWFzOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlnbm9yZURlcHRoVmFsdWVzOworCisgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHTEZyYW1lYnVmZmVyIGZyYW1lYnVm
ZmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZyYW1lYnVmZmVyV2lk
dGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJhbWVidWZmZXJIZWln
aHQ7CisKKyAgICAvLyBNZXRob2RzCisgICAgWFJWaWV3cG9ydD8gZ2V0Vmlld3BvcnQoWFJWaWV3
IHZpZXcpOworCisgICAgLy8gU3RhdGljIE1ldGhvZHMKKyAgICBzdGF0aWMgZG91YmxlIGdldE5h
dGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoWFJTZXNzaW9uIHNlc3Npb24pOworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGM3MThmZGUyNDVmNjEyMzc3MzNmZjc5OTU2MGFjNDk4MzVjOTBmMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RydWN0IFhSV2ViR0xMYXllckluaXQgeworICAgIGJvb2wgYW50aWFsaWFz
IHsgdHJ1ZSB9OworICAgIGJvb2wgZGVwdGggeyB0cnVlIH07CisgICAgYm9vbCBzdGVuY2lsIHsg
ZmFsc2UgfTsKKyAgICBib29sIGFscGhhIHsgdHJ1ZSB9OworICAgIGJvb2wgaWdub3JlRGVwdGhW
YWx1ZXMgeyB0cnVlIH07CisgICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IgeyAxLjAg
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNDViMWU2MTE5
ZDc3NzNjZmJkMGYwZTQ1N2IyZjRlOTZjMTI1NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCR0wKK10gZGljdGlvbmFyeSBYUldlYkdMTGF5ZXJJbml0IHsKKyAgICBib29s
ZWFuIGFudGlhbGlhcyA9IHRydWU7CisgICAgYm9vbGVhbiBkZXB0aCA9IHRydWU7CisgICAgYm9v
bGVhbiBzdGVuY2lsID0gZmFsc2U7CisgICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7CisgICAgYm9v
bGVhbiBpZ25vcmVEZXB0aFZhbHVlcyA9IGZhbHNlOworICAgIGRvdWJsZSBmcmFtZWJ1ZmZlclNj
YWxlRmFjdG9yID0gMS4wOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggMGQ1OTgy
ZTFkYzY5ZWI2ODBmMDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4uZTc1ZWNlZjE0MGFiNWNlZWYxZDBk
NmRiYzA2NmUzNWM5MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
UEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTcwLDMg
KzcwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICR7VVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9CiAgICAgJHtXUEVCQUNLRU5EX0ZET19JTkNM
VURFX0RJUlN9CiApCisKK2lmIChVU0VfT1BFTlhSKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTICR7T1BFTlhSX0xJQlJBUklFU30pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
WVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke09QRU5YUl9JTkNMVURFX0RJUlN9KQorZW5kaWYg
KCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGE3MjFmYmIx
YWQ4YTVhYTZiZGEwOWI2M2IzYTJhOWQ5OTdjOTExMmYuLjcxZGE4ZTY2MWFlYTI5NjViMjExNThi
MWZlYjAyNzRjOTIzNDg2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00MTEsNiArNDExLDMxIEBAIE1v
ZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0
dXJlVmlldy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5hdmlnYXRvckdQVS5jcHAKIAorI2lm
IEVOQUJMRV9XRUJHTAorCitNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcCBAbm8tdW5p
ZnkKK01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIEBuby11bmlmeQor
TW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5j
cHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlJl
ZmVyZW5jZVNwYWNlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAgQG5v
LXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwIEBuby11bmlmeQorTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25FdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hS
Vmlldy5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4
ci9YUldlYkdMTGF5ZXIuY3BwIEBuby11bmlmeQorCisjZW5kaWYKKwogYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3Bw
CiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkBAIC0yMDcxLDYg
KzIwOTYsOSBAQCBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKIHBsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcAogCitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKK3BsYXRm
b3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKKwogcGx1Z2lucy9ET01NaW1l
VHlwZS5jcHAKIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKIHBsdWdpbnMvRE9NUGx1Z2lu
LmNwcApAQCAtMzUxOCw2ICszNTQ2LDQxIEBAIEpTWFBhdGhOU1Jlc29sdmVyLmNwcAogSlNYUGF0
aFJlc3VsdC5jcHAKIEpTWFNMVFByb2Nlc3Nvci5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitK
U1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNw
cAorSlNYUkV5ZS5jcHAKK0pTWFJGcmFtZS5jcHAKK0pTWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5j
cHAKK0pTWFJIYW5kZWRuZXNzLmNwcAorSlNYUklucHV0U291cmNlLmNwcAorSlNYUklucHV0U291
cmNlQXJyYXkuY3BwCitKU1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKK0pTWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5jcHAKK0pTWFJQb3NlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlLmNwcAorSlNY
UlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hSUmVmZXJlbmNlU3BhY2VUeXBlLmNwcAorSlNY
UlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRlclN0YXRlSW5pdC5jcHAKK0pTWFJSaWdpZFRyYW5z
Zm9ybS5jcHAKK0pTWFJTZXNzaW9uLmNwcAorSlNYUlNlc3Npb25FdmVudC5jcHAKK0pTWFJTZXNz
aW9uSW5pdC5jcHAKK0pTWFJTZXNzaW9uTW9kZS5jcHAKK0pTWFJTcGFjZS5jcHAKK0pTWFJTeXN0
ZW0uY3BwCitKU1hSVGFyZ2V0UmF5TW9kZS5jcHAKK0pTWFJWaWV3LmNwcAorSlNYUlZpZXdlclBv
c2UuY3BwCitKU1hSVmlld3BvcnQuY3BwCitKU1hSVmlzaWJpbGl0eVN0YXRlLmNwcAorSlNYUldl
YkdMTGF5ZXIuY3BwCitKU1hSV2ViR0xMYXllckluaXQuY3BwCisKKyNlbmRpZgorCiAjaWYgRU5B
QkxFX0dBTUVQQUQKIAogSlNHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvSURMVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgK
aW5kZXggMzA1YmNmNTE0NGUwMmUzNjFlNWQzMmYwNDc1NDE1ZTU4Yjg2NWZmMy4uOTRmMzE2NWUx
ZjI3YmEwMmNhOWQ2YjMyMjQyY2QzMTM0ZWIxMzJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvSURMVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExU
eXBlcy5oCkBAIC02Miw2ICs2Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgSURM
VHlwZSB7CiAgICAgdXNpbmcgSW1wbGVtZW50YXRpb25UeXBlID0gVDsKICAgICB1c2luZyBTdG9y
YWdlVHlwZSA9IFQ7CisgICAgdXNpbmcgU2VxdWVuY2VTdG9yYWdlVHlwZSA9IFQ7CiAKICAgICB1
c2luZyBQYXJhbWV0ZXJUeXBlID0gVDsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUg
PSBPcHRpb25hbDxJbXBsZW1lbnRhdGlvblR5cGU+OwpAQCAtODIsNiArODMsNyBAQCBzdHJ1Y3Qg
SURMVW5zdXBwb3J0ZWRUeXBlIDogSURMVHlwZTx2b2lkPiB7IH07CiBzdHJ1Y3QgSURMTnVsbCA6
IElETFR5cGU8c3RkOjpudWxscHRyX3Q+IHsgfTsKIAogc3RydWN0IElETEFueSA6IElETFR5cGU8
SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4geworICAgIHVzaW5nIFNlcXVlbmNlU3RvcmFnZVR5
cGUgPSBKU0M6OkpTVmFsdWU7CiAgICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IEpTQzo6SlNWYWx1
ZTsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBKU0M6OkpTVmFsdWU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNl
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgK
aW5kZXggYzQ5ZGQ5MzhmY2UyNzE2NWY3NDdlNThmZTA4YTU1M2RiYmZkZjVjMi4uODZmN2YyNzZm
YzA4YWUwN2MwMTAwMDIyMmQzNTlmMGVmZWI1YWViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgKQEAgLTQwLDcgKzQwLDcgQEAg
bmFtZXNwYWNlIERldGFpbCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+CiBzdHJ1Y3Qg
R2VuZXJpY1NlcXVlbmNlQ29udmVydGVyIHsKLSAgICB1c2luZyBSZXR1cm5UeXBlID0gVmVjdG9y
PHR5cGVuYW1lIElETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT47CisgICAgdXNpbmcgUmV0dXJu
VHlwZSA9IFZlY3Rvcjx0eXBlbmFtZSBJRExUeXBlOjpTZXF1ZW5jZVN0b3JhZ2VUeXBlPjsKIAog
ICAgIHN0YXRpYyBSZXR1cm5UeXBlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpKU09iamVjdCogb2JqZWN0KQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA0NGQ1MGIy
MDdjNTM4YTE5NzkyYjRmMzIyNmFmZTY1Mjg3Nzg3MjA5Li4xODgyYTllZmZlMjQwYzQ1OWJkNWQz
NDI2MTdhMGNkOTMzYzJkODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMzUsNiArMjM1LDI1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhXb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAgICBtYWNybyhXcml0YWJs
ZVN0cmVhbSkgXAogICAgIG1hY3JvKFhNTEh0dHBSZXF1ZXN0KSBcCisgICAgbWFjcm8oWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UpIFwKKyAgICBtYWNybyhYUkZyYW1lKSBcCisgICAgbWFjcm8oWFJJ
bnB1dFNvdXJjZSkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2VBcnJheSkgXAorICAgIG1hY3Jv
KFhSSW5wdXRTb3VyY2VFdmVudCkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQpIFwKKyAgICBtYWNybyhYUlBvc2UpIFwKKyAgICBtYWNybyhYUlJlZmVyZW5jZVNwYWNlKSBc
CisgICAgbWFjcm8oWFJSZWZlcmVuY2VTcGFjZUV2ZW50KSBcCisgICAgbWFjcm8oWFJSZW5kZXJT
dGF0ZSkgXAorICAgIG1hY3JvKFhSUmlnaWRUcmFuc2Zvcm0pIFwKKyAgICBtYWNybyhYUlNlc3Np
b24pIFwKKyAgICBtYWNybyhYUlNlc3Npb25FdmVudCkgXAorICAgIG1hY3JvKFhSU3BhY2UpIFwK
KyAgICBtYWNybyhYUlN5c3RlbSkgXAorICAgIG1hY3JvKFhSVmlldykgXAorICAgIG1hY3JvKFhS
Vmlld2VyUG9zZSkgXAorICAgIG1hY3JvKFhSVmlld3BvcnQpIFwKKyAgICBtYWNybyhYUldlYkdM
TGF5ZXIpIFwKICAgICBtYWNybyhhcHBlbmRGcm9tSlMpIFwKICAgICBtYWNybyhhc3NvY2lhdGVk
UmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlcikgXAogICAgIG1hY3JvKGF1dG9BbGxvY2F0ZUNo
dW5rU2l6ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZDQ5NjBiOWNmNzUxZjQxMTQy
MmI2NzA4NDFhMDViOGJkMmM3MWMyOC4uZjhjMWQzNWFmY2RhMzlkMzRhNmVlYTczNTdjYzhjMzQ4
YmNhZGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xNDgsNiArMTQ4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGljZWdhdGhlcmluZ3N0YXRlY2hhbmdlKSBcCiAg
ICAgbWFjcm8oaW5hY3RpdmUpIFwKICAgICBtYWNybyhpbnB1dCkgXAorICAgIG1hY3JvKGlucHV0
c291cmNlc2NoYW5nZSkgXAogICAgIG1hY3JvKGluc3RhbGwpIFwKICAgICBtYWNybyhpbnZhbGlk
KSBcCiAgICAgbWFjcm8oa2V5ZG93bikgXApAQCAtMjMxLDYgKzIzMiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBtYWNybyhzZWVrZWQpIFwKICAgICBtYWNybyhzZWVraW5nKSBcCiAgICAg
bWFjcm8oc2VsZWN0KSBcCisgICAgbWFjcm8oc2VsZWN0ZW5kKSBcCiAgICAgbWFjcm8oc2VsZWN0
aW9uY2hhbmdlKSBcCiAgICAgbWFjcm8oc2VsZWN0c3RhcnQpIFwKICAgICBtYWNybyhzaGlwcGlu
Z2FkZHJlc3NjaGFuZ2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggMTU3ZjMzMWMx
YmE3M2MxMGQ1ZDMzNDk2YWQyNWZlNjUzYTdjNTFhMi4uYzc5M2UzZjY2MmM2YzNlZDhlYzU1MmVh
MzgzYWM5NmZjOWZhMDk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTg1LDMgKzg1
LDcgQEAgTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBCiBQ
b2ludGVyRXZlbnQgY29uZGl0aW9uYWw9UE9JTlRFUl9FVkVOVFMKIEdQVVVuY2FwdHVyZWRFcnJv
ckV2ZW50IGNvbmRpdGlvbmFsPVdFQkdQVQogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQgY29u
ZGl0aW9uYWw9UElDVFVSRV9JTl9QSUNUVVJFX0FQSQorWFJJbnB1dFNvdXJjZUV2ZW50IGNvbmRp
dGlvbmFsPVdFQkdMCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQkdM
CitYUlJlZmVyZW5jZVNwYWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKK1hSU2Vzc2lvbkV2ZW50
IGNvbmRpdGlvbmFsPVdFQkdMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5p
bgppbmRleCA4MWU3Y2M5ZjBiNzY1MDU2MmFhYmZlZmUwNWE1YTNhZDFiYmJiOGZmLi5lYjBhZTAw
NjY4M2E4N2RiN2YzYjg0YzU1ZDE0MGE0Nzk3YjgzYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTU4LDQgKzU4LDcgQEAgV29ya2VyCiBXb3JrbGV0R2xv
YmFsU2NvcGUgY29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSQogWE1MSHR0cFJlcXVlc3QKIFhN
TEh0dHBSZXF1ZXN0VXBsb2FkCitYUlNlc3Npb24gY29uZGl0aW9uYWw9V0VCR0wKK1hSU3BhY2Ug
Y29uZGl0aW9uYWw9V0VCR0wKK1hSU3lzdGVtIGNvbmRpdGlvbmFsPVdFQkdMCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggYWEyOWI4MzU1ZmI1
OGUxMzExMTQwNDUxNmM0MDY3MDEzNzhhMWIyMC4uODhiMmRjZDdhNmFiNmQ2NDk0NjQ2ZjMzYmU3
MTI3ODU1NjA3N2MxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKQEAgLTEzOCw2ICsxMzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnNwZWN0
b3JBZGRpdGlvbnNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faW5zcGVjdG9yQWRkaXRpb25z
RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgaW5zcGVjdG9yQWRkaXRpb25zRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZDsgfQogCisgICAg
dm9pZCBzZXRXZWJYUkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV93ZWJYUkVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KKyAgICBib29sIHdlYlhSRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
WFJFbmFibGVkOyB9CisKICAgICB2b2lkIHNldEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJs
ZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkID0g
aXNFbmFibGVkOyB9CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOyB9CiAKQEAg
LTQ0MSw2ICs0NDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1dlYlNvY2tldEVuYWJsZWQg
eyB0cnVlIH07CiAgICAgYm9vbCBtX2ZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV93ZWJYUkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5T2Jq
ZWN0TW9kZWxFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJpYVJlZmxlY3Rpb25FbmFi
bGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzI2OGVlNjc3
YTM3OWE2YmY1NTE3MGI5OTA0ZjMzYmJlNzcxYWY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAKQEAgLTAsMCArMSwyMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1YUi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0veHIvUGxhdGZvcm1YUi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1Y
Ui5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM1MDI5MzAyYjYwOTA5MmU4ZDdkNjMyOTNlMjBiYzExYjMyN2JjNTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhS
LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMu
TC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCitlbnVtIGNsYXNzIFNlc3Npb25Nb2RlIHsK
KyAgICBJbmxpbmUsCisgICAgSW1tZXJzaXZlVnIsCisgICAgSW1tZXJzaXZlQXIsCit9OworCitj
bGFzcyBEZXZpY2UgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RGV2aWNlPiB7CitwdWJsaWM6Cit9
OworCitjbGFzcyBJbnN0YW5jZSB7CitwdWJsaWM6CisgICAgc3RhdGljIEluc3RhbmNlJiBzaW5n
bGV0b24oKTsKKworcHJpdmF0ZToKKyAgICBJbnN0YW5jZSgpOworICAgIH5JbnN0YW5jZSgpOwor
CisgICAgc3RydWN0IEltcGw7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltcGw+IG1faW1wbDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZThjMjJiNjlmYmZhMDZk
OTUyZjY5MzUxYTIxZDU5MmExZDgzNGZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEsMTYyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisKKyNpZiBVU0VfT1BFTlhSCisjaW5jbHVkZSA8b3Bl
bnhyL29wZW54ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVy
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2VuZGlmIC8vIFVTRV9PUEVO
WFIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFBsYXRmb3Jt
WFIgeworCisjaWYgVVNFX09QRU5YUgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBYclN0cnVjdHVy
ZVR5cGUgU3RydWN0dXJlVHlwZT4KK1QgY3JlYXRlU3RydWN0dXJlKCkKK3sKKyAgICBUIG9iamVj
dDsKKyAgICBzdGQ6Om1lbXNldCgmb2JqZWN0LCAwLCBzaXplb2YoVCkpOworICAgIG9iamVjdC50
eXBlID0gU3RydWN0dXJlVHlwZTsKKyAgICBvYmplY3QubmV4dCA9IG51bGxwdHI7CisgICAgcmV0
dXJuIG9iamVjdDsKK30KKworU3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBY
ckluc3RhbmNlIGluc3RhbmNlKQoreworICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RS
SU5HX1NJWkVdOworICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFu
Y2UsIHZhbHVlLCBidWZmZXIpOworICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKKyAgICAg
ICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93
biAiLCBpbnQodmFsdWUpLCAiPiIpOworfQorCisjZGVmaW5lIFJFVFVSTl9JRl9GQUlMRUQocmVz
dWx0LCBjYWxsLCBpbnN0YW5jZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoWFJfRkFJTEVEKHJlc3VsdCkpIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICBXVEZMb2dBbHdheXMoIiVzICVzOiAlc1xuIiwgX19mdW5jX18sIGNh
bGwsIHJlc3VsdFRvU3RyaW5nKHJlc3VsdCwgaW5zdGFuY2UpLnV0ZjgoKS5kYXRhKCkpOyBcCisg
ICAgICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCisjZW5kaWYgLy8gVVNFX09QRU5Y
UgorCitzdHJ1Y3QgSW5zdGFuY2U6OkltcGwgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIEltcGwoKTsKKyAgICB+SW1wbCgpOworCisjaWYgVVNFX09QRU5YUgor
ICAgIFhySW5zdGFuY2UgbV9pbnN0YW5jZSB7IFhSX05VTExfSEFORExFIH07CisjZW5kaWYgLy8g
VVNFX09QRU5YUgorfTsKKworSW5zdGFuY2U6OkltcGw6OkltcGwoKQoreworI2lmIFVTRV9PUEVO
WFIKKyAgICBXVEZMb2dBbHdheXMoIk9wZW5YUjogaW5pdGlhbGl6aW5nXG4iKTsKKworICAgIFsm
XSB7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAgICAg
IFhyUmVzdWx0IHJlc3VsdCA9IHhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKDAsICZwcm9w
ZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1
bHQsICJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAg
ICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0cHV0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFhyQXBpTGF5
ZXJQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRwdXQpOworICAgICAgICBy
ZXN1bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0
LCBudWxscHRyLCBwcm9wZXJ0aWVzLmRhdGEoKSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQo
cmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOwor
CisgICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTog
JXp1IHByb3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICB9KCk7CisKKyAgICBb
Jl0geworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50T3V0cHV0IHsgMCB9OworICAgICAg
ICBYclJlc3VsdCByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGll
cyhudWxscHRyLCAwLCAmcHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJF
VFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3Bl
cnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1
dCkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5z
aW9uUHJvcGVydGllcygpOiBubyBwcm9wZXJ0aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxYckV4dGVuc2lvblByb3BlcnRpZXM+IHByb3Bl
cnRpZXMocHJvcGVydHlDb3VudE91dHB1dCwKKyAgICAgICAgICAgIFtdIHsKKyAgICAgICAgICAg
ICAgICBYckV4dGVuc2lvblByb3BlcnRpZXMgb2JqZWN0OworICAgICAgICAgICAgICAgIHN0ZDo6
bWVtc2V0KCZvYmplY3QsIDAsIHNpemVvZihYckV4dGVuc2lvblByb3BlcnRpZXMpKTsKKyAgICAg
ICAgICAgICAgICBvYmplY3QudHlwZSA9IFhSX1RZUEVfRVhURU5TSU9OX1BST1BFUlRJRVM7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgIH0oKSk7CisgICAgICAg
IHVpbnQzMl90IHByb3BlcnR5Q291bnRXcml0dGVuIHsgMCB9OworICAgICAgICByZXN1bHQgPSB4
ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCBwcm9wZXJ0eUNv
dW50T3V0cHV0LCAmcHJvcGVydHlDb3VudFdyaXR0ZW4sIHByb3BlcnRpZXMuZGF0YSgpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5z
aW9uUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4
ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpOiAlenUgZXh0ZW5zaW9uIHBy
b3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9w
ZXJ0eSA6IHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiICBleHRlbnNp
b24gJyVzJywgdmVyc2lvbiAldVxuIiwKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eS5leHRlbnNp
b25OYW1lLCBwcm9wZXJ0eS5leHRlbnNpb25WZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0oKTsK
KworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzX2FwcGxpY2F0aW9uTmFtZSA9ICJXZWJYUiAoV2Vi
S2l0KSI7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfYXBwbGljYXRpb25WZXJzaW9uID0g
MTsKKworICAgIHsKKyAgICAgICAgYXV0byBjcmVhdGVJbmZvID0gY3JlYXRlU3RydWN0dXJlPFhy
SW5zdGFuY2VDcmVhdGVJbmZvLCBYUl9UWVBFX0lOU1RBTkNFX0NSRUFURV9JTkZPPigpOworICAg
ICAgICBjcmVhdGVJbmZvLmNyZWF0ZUZsYWdzID0gMDsKKyAgICAgICAgc3RkOjptZW1jcHkoY3Jl
YXRlSW5mby5hcHBsaWNhdGlvbkluZm8uYXBwbGljYXRpb25OYW1lLCBzX2FwcGxpY2F0aW9uTmFt
ZSwgWFJfTUFYX0FQUExJQ0FUSU9OX05BTUVfU0laRSk7CisgICAgICAgIGNyZWF0ZUluZm8uYXBw
bGljYXRpb25JbmZvLmFwaVZlcnNpb24gPSBYUl9DVVJSRU5UX0FQSV9WRVJTSU9OOworICAgICAg
ICBjcmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5mby5hcHBsaWNhdGlvblZlcnNpb24gPSBzX2FwcGxp
Y2F0aW9uVmVyc2lvbjsKKyAgICAgICAgY3JlYXRlSW5mby5lbmFibGVkQXBpTGF5ZXJDb3VudCA9
IDA7CisgICAgICAgIGNyZWF0ZUluZm8uZW5hYmxlZEV4dGVuc2lvbkNvdW50ID0gMDsKKworICAg
ICAgICBYckluc3RhbmNlIGluc3RhbmNlOworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckNy
ZWF0ZUluc3RhbmNlKCZjcmVhdGVJbmZvLCAmaW5zdGFuY2UpOworICAgICAgICBSRVRVUk5fSUZf
RkFJTEVEKHJlc3VsdCwgInhyQ3JlYXRlSW5zdGFuY2UoKSIsIG1faW5zdGFuY2UpOworCisgICAg
ICAgIG1faW5zdGFuY2UgPSBpbnN0YW5jZTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckNyZWF0
ZUluc3RhbmNlKCk6IHVzaW5nIGluc3RhbmNlICVwXG4iLCBtX2luc3RhbmNlKTsKKyAgICB9Cisj
ZW5kaWYgLy8gVVNFX09QRU5YUgorfQorCitJbnN0YW5jZTo6SW1wbDo6fkltcGwoKQoreworfQor
CitJbnN0YW5jZSYgSW5zdGFuY2U6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIExhenlOZXZl
ckRlc3Ryb3llZDxJbnN0YW5jZT4gc19pbnN0YW5jZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgc19vbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShzX29uY2VGbGFnLAorICAgICAgICBb
Jl0geworICAgICAgICAgICAgc19pbnN0YW5jZS0+bV9pbXBsID0gbWFrZVVuaXF1ZTxJbXBsPigp
OworICAgICAgICB9KTsKKyAgICByZXR1cm4gc19pbnN0YW5jZS5nZXQoKTsKK30KKworSW5zdGFu
Y2U6Okluc3RhbmNlKCkgPSBkZWZhdWx0OworSW5zdGFuY2U6On5JbnN0YW5jZSgpID0gZGVmYXVs
dDsKKworfSAvLyBuYW1lc3BhY2UgUGxhdGZvcm1YUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKaW5kZXggNTAxMDRhOWM5YmJjYWE5ODJmZDJmM2Q3MWFhMjNmNWEzZjZl
ZTk4YS4uZmI0OTRiODBkYmVmMWE0MTY2N2E0ZTdmZTc0YmJlZjg0OGNhYjIzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xOTc1LDYgKzE5NzUsMTUgQEAg
V2ViU2hhcmVGaWxlQVBJRW5hYmxlZDoKICAgICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJs
ZWRGZWF0dXJlcwogICAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAorV2ViWFJFbmFibGVkOgor
ICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJXZWJYUiBEZXZpY2UgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBZGRzIHN1
cHBvcnQgZm9yIGFjY2Vzc2luZyB2aXJ0dWFsIHJlYWxpdHkgKFZSKSBhbmQgYXVnbWVudGVkIHJl
YWxpdHkgKEFSKSBkZXZpY2VzLCBpbmNsdWRpbmcgc2Vuc29ycyBhbmQgaGVhZC1tb3VudGVkIGRp
c3BsYXlzLCBvbiB0aGUgV2ViIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIHdlYmNvcmVC
aW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGNvbmRpdGlvbjogRU5BQkxFKFdFQkdM
KSAmJiBQTEFURk9STShXUEUpCisKICMgRGVwcmVjYXRlZAogCiBJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmdFbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIuY21ha2UgYi9T
b3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmZkZjA0YzExZWRkMDM5
MDBmYzRjMTQyY2U3NmE2NjE0ODMwZjZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtl
L0ZpbmRPcGVuWFIuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIE9wZW5Y
Ui4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBPUEVOWFJfRk9VTkQgLSBz
eXN0ZW0gaGFzIFdQRS4KKyMgIE9QRU5YUl9JTkNMVURFX0RJUlMgLSB0aGUgV1BFIGluY2x1ZGUg
ZGlyZWN0b3JpZXMKKyMgIE9QRU5YUl9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUu
CisjCisjIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SIElUUworIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYK
KyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFj
a2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19PUEVOWFIgUVVJRVQgb3Blbnhy
KQorCitmaW5kX3BhdGgoT1BFTlhSX0lOQ0xVREVfRElSUworICAgIE5BTUVTIG9wZW54ci9vcGVu
eHIuaAorICAgIEhJTlRTICR7UENfT1BFTlhSX0lOQ0xVREVESVJ9ICR7UENfT1BFTlhSX0lOQ0xV
REVfRElSU30KKykKKworZmluZF9saWJyYXJ5KE9QRU5YUl9MSUJSQVJJRVMKKyAgICBOQU1FUyBv
cGVueHJfbG9hZGVyCisgICAgSElOVFMgJHtQQ19PUEVOWFJfTElCRElSfSAke1BDX09QRU5YUl9M
SUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoT1BFTlhSX0lOQ0xVREVfRElSUyBP
UEVOWFJfTElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdz
KQorZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKE9wZW5YUiBSRVFVSVJFRF9WQVJT
IE9QRU5YUl9JTkNMVURFX0RJUlMgT1BFTlhSX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UK
aW5kZXggMWFiZTk1MzIwZDVhNjM3OGNmMmE3ZDA5YWE5ZmY4ZDRhN2EwNGM0Yy4uOTY3NTY4YmVk
YjlkMmY3NjRmNzQ3YWZkMzM4NjQ2MGRkMzFlNTZmYSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAg
LTE3Miw2ICsxNzIsOSBAQCBpZiAoRU5BQkxFX1dQRV9RVF9BUEkgT1IgVVNFX1dQRV9WSURFT19Q
TEFORV9ESVNQTEFZX0RNQUJVRikKICAgICBmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8gMS41
LjAgUkVRVUlSRUQpCiBlbmRpZiAoKQogCitmaW5kX3BhY2thZ2UoT3BlblhSKQorU0VUX0FORF9F
WFBPU0VfVE9fQlVJTEQoVVNFX09QRU5YUiAke09QRU5YUl9GT1VORH0pCisKIGFkZF9kZWZpbml0
aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCiBhZGRfZGVmaW5pdGlvbnMoLURHRVRURVhUX1BBQ0tB
R0U9IldQRSIpCiBhZGRfZGVmaW5pdGlvbnMoLURKU0NfR0xJQl9BUElfRU5BQkxFRCkKZGlmZiAt
LWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4Zjg1MDEyMzYwNDkyMDUzZmQwMzNh
ZGM1ZGQ2ZDhkZDFiMTdhOWRkLi4wYmEyZWM0MTYxMmZkOGY2ZmVhNTc1YTRlNjk4NTA1M2Y2Y2Rk
NDRmIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBm
b3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDg3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBPcGVuWFIgZGV0ZWN0aW9uIGFuZCBVU0VfT1BFTlhSIGRlZmluZSB0byBiZSB1c2VkIGlu
IHRoZSBzb3VyY2VzLgorICAgICAgICBJdCBhbHNvIGFkZHMgYSBkZXBlbmRlbmN5IGJldHdlZW4g
VVNFX09QRU5YUiBhbmQgRU5BQkxFX1dFQkdMLgorCisgICAgICAgIExhcmdlbHkgYmFzZWQgb24g
cHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIFNvdXJjZS9jbWFr
ZS9GaW5kT3BlblhSLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZToKKwogMjAyMC0wMy0wMyAgRnVqaWkgSGlyb25vcmkgIDxmdWppaS5oaXJvbm9y
aUBnbWFpbC5jb20+CiAKICAgICAgICAgW0N1cmxdIEFkZCBUTFMgZGVidWdnaW5nIGZlYXR1cmUg
dG8gbG9nIGVuY3J5cHRpb24ga2V5cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393046</attachid>
            <date>2020-03-09 09:59:16 -0700</date>
            <delta_ts>2020-03-11 04:07:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208702-20200309175843.patch</filename>
            <type>text/plain</type>
            <size>266133</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5NzEyZjYwZWYyMzNhNDE0NzllMGNk
ZDViYmZjMzg5MmUxNTU5ODIuLmM1MmI1MzA1MjM1ZTYyZGYxODhjNjE1YzI0NmM2YjBkMGU2Mjg4
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQg
YnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBEZWZpbmUgVVNFX09QRU5YUiAo
ZGlzYWJsZWQpIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBieSB0aGUgYnVpbGQgc3lzdGVtIGp1c3Qg
aW4gY2FzZQorICAgICAgICBFTkFCTEVfV0VCR0wgaXMgZGVmaW5lZCBhbmQgYWN0aXZlLgorCisg
ICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOgorCiAyMDIwLTAzLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgRml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2OWQyYmJkOTFm
ZDVmNTFiOTZmNjA1ZjVjY2JiOTdjMTkxZDkyOC4uMThjNjcwYWQxMDNiMGY4MzMxZjc3OGNlODE3
YzRkNDk2NmU5ZGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxNSBAQAorMjAyMC0wMy0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
WFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBJRExzIGRl
ZmluZWQgYnkgdGhlIHNwZWMgd2l0aCB2ZXJ5IGJhc2ljIGVtcHR5IGltcGxlbWVudGF0aW9ucyB0
byBnZXQgdGhlbQorICAgICAgICBidWlsdC4gQXBhcnQgZnJvbSB0aGF0IGEgdmVyeSBiYXNpYyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVxdWlyZWQgcGxhdGZvcm0gY29kZSB1c2luZworICAgICAg
ICBPcGVuWFIgQVBJIHdhcyBhbHNvIGFkZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBu
byBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgcmVhbGx5IGFkZGVkIChlbXB0eSBpbXBsZW1lbnRhdGlv
bnMpLiBIb3dldmVyCisgICAgICAgIGZvbGxvdyB1cCBwYXRjaGVzIHdpbGwgaW1wb3J0IHRoZSBh
bHJlYWR5IGF2YWlsYWJsZSBXUFQgdGVzdHMgZm9yIFdlYlhSLgorCisgICAgICAgIExhcmdlbHkg
YmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdG9yV2ViWFI6OnhyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcldlYlhS
Ojpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Ym91bmRzR2VvbWV0
cnkgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRXllLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhS
RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpYUkZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSRnJhbWU6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJGcmFtZTo6Z2V0Vmlld2VyUG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpn
ZXRQb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJIYW5kZWRuZXNzLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6WFJJbnB1dFNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpoYW5kZWRuZXNzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnRhcmdldFJheU1vZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnByb2ZpbGVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlQXJyYXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3Vy
Y2VBcnJheTo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VB
cnJheTo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
QXJyYXkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJy
YXkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXgg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ6OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSUG9zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJQ
b3NlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJQb3NlOjpYUlBvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJQb3NlOjp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
WFJQb3NlOjplbXVsYXRlZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSUG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VTcGFjZTo6WFJSZWZlcmVuY2VTcGFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VT
cGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnJlZmVyZW5jZVNw
YWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VFdmVudDo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZVR5cGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
VHlwZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6ZGVwdGhOZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
UmVuZGVyU3RhdGU6OmlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUlJlbmRlclN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlSW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVy
U3RhdGVJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJh
bnNmb3JtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6WFJSaWdpZFRyYW5z
Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpvcmllbnRhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjptYXRyaXggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6aW52ZXJzZSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNl
c3Npb246OmVudmlyb25tZW50QmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
U2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vz
c2lvbjo6cmVuZGVyU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjpp
bnB1dFNvdXJjZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjp1cGRhdGVS
ZW5kZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVu
Y2VTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OmNhbmNlbEFuaW1hdGlvbkZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlhSU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpYUlNlc3Npb246OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WFJTZXNzaW9uRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpY
UlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNz
aW9uRXZlbnQ6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNz
aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlNwYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNwYWNl
OjpYUlNwYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3BhY2UuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJTeXN0
ZW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlN5c3RlbTo6WFJTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6WFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBvcnRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUlN5c3RlbTo6cmVxdWVzdFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6WFJT
eXN0ZW06OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJT
eXN0ZW06OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9YUlZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6WFJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlhSVmlldzo6ZXllIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6cHJvamVjdGlv
bk1hdHJpeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OnRyYW5zZm9ybSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSVmlld2VyUG9zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3ZXJQb3Nl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3ZXJQb3NlOjp2aWV3cyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSVmll
d3BvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0Ojp4IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OnkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3cG9ydDo6d2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3cG9y
dDo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhSV2ViR0xMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXll
cjo6WFJXZWJHTExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6YW50aWFs
aWFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6aWdub3JlRGVwdGhW
YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVyV2lk
dGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlckhl
aWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmdldFZpZXdwb3J0
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6Z2V0TmF0aXZlRnJhbWVidWZmZXJT
Y2FsZUZhY3Rvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbDogQWRkZWQuCisgICAgICAgICog
UGxhdGZvcm1XUEUuY21ha2U6IEFkZCBPcGVuWFIgaW5jbHVkZXMgYW5kIGxpYnMuCisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoK
KyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDogQWRkZWQgV2ViWFIgZmVh
dHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhS
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJY
UkVuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgIChQ
bGF0Zm9ybVhSOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoUGxhdGZvcm1YUjo6cmVzdWx0
VG9TdHJpbmcpOgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6OkltcGwpOgor
ICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6On5JbXBsKToKKyAgICAgICAgKFBs
YXRmb3JtWFI6Okluc3RhbmNlOjpzaW5nbGV0b24pOgorCiAyMDIwLTAzLTA0ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVz
ZSByZXN0b3JlIHZpZXcgaWNvbiBmb3IgZXhpdCBmdWxsc2NyZWVuIGJ1dHRvbiBpbiBtZWRpYSBj
b250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA3ZjQ5NzdmMzcyNzA2ZDMzMGFhZWYxYzM5MzM1MDBhYzQwNjQy
OTI1Li5iY2UyYjg0ZmY5MTc5YTE5YjIxYmFiMTAyMDhlYWNlMGUyYzU2NTQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA2ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNv
bmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLF
oWVrLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6IEFkZGVkIGluZm8g
YWJvdXQgdGhlIFdlYlhSIGltcGxlbWVudGF0aW9uIHN0YXR1cy4KKwogMjAyMC0wMy0wMyAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
cmUtYWRkIGBJbnNwZWN0b3JGcm9udGVuZEhvc3RgIHN1cHBvcnQgZm9yIG1vdmluZyB0aGUgaW5z
cGVjdGVkIHdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZGVkZmExNGQ1YTVkZGRhODRlMzM1YmZkNDg1
ZTc1NTA5N2ZhZWM1Ny4uZGFhN2QzNjNhNTRlMjI0MzJkYjQ5ZTc4MWM4MzExMzcyNWFkYzMwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCkBAIC0xODAsNiArMTgwLDEwIEBACiAjaWYgKFVTRV9BTkdMRSAmJiAoVVNF
X09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wp
KSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRp
YmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAogI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChVU0VfT1BFTlhSKQorI2RlZmluZSBVU0VfT1BFTlhSIDAKKyNlbmRpZgog
I2VuZGlmCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05U
RVhUX0dMKSAmJiAhZGVmaW5lZChVU0VfVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDM3Y2IxYmVlNDljN2U5NTVhNzEyNGQxZTJkNmFlOWNkMTU1YzA3OWIuLmE5MjZm
MmI3NDcyZDk2YzEyNTM2OTA1MDk4N2UwN2UwZTI2MjlkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMTc5LDYgKzExNzksNDcgQEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICkKIGVuZGlm
ICgpCiAKK2lmIChFTkFCTEVfV0VCR0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRF
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2Vi
eHIiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS94ciIKKyAgICApCisKKyAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvTmF2aWdhdG9yV2ViWFIuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5k
TW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkV5ZS5pZGwKKyAgICAgICAgTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0
Q2FsbGJhY2suaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbAorICAg
ICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBNb2R1
bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbAorICAg
ICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSVGFyZ2V0UmF5TW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlkbAorICAgICAgICBNb2R1bGVzL3dl
YnhyL1hSVmlld3BvcnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3Rh
dGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCisgICAgKQorZW5kaWYgKCkKKwogc2V0
KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgJHtXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTfQogICAg
ICR7V2ViQ29yZV9TVkdfSURMX0ZJTEVTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggNWJhMjZiODA4MmRlNjg5MDFjMmUxMjY2MmY2NDc0YTg2NzA3MjQyMy4uZjk1NjcxNWM1NmQy
Y2M3MzQ1YjgxMjk5ZGVhM2QyY2U1MWU0MWEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC02NCw2ICs2NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJkcml2ZXIgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJzb2NrZXRzIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIgXAog
ICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24g
XAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXApAQCAtNDYwLDYgKzQ2MSwzNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZp
Z2F0b3JHUFUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJFeWUuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VBcnJheS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlBvc2Uu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25Jbml0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbk1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIvWFJWaWV3LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhy
L1hSVmlld2VyUG9zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlZpZXdw
b3J0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllci5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSb2xlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2ZhMmI4MjY5ZWE0ZWU1ZGE2
NDZiODk1N2Y1NWExZTRmZGU5MmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIK
KworI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworWFJTeXN0ZW0mIE5hdmlnYXRvcldlYlhSOjp4cihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBOYXZpZ2F0b3ImIG5hdmlnYXRv
ck9iamVjdCkKK3sKKyAgICBhdXRvJiBuYXZpZ2F0b3IgPSBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShu
YXZpZ2F0b3JPYmplY3QpOworICAgIGlmICghbmF2aWdhdG9yLm1feHIpCisgICAgICAgIG5hdmln
YXRvci5tX3hyID0gWFJTeXN0ZW06OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAg
ICByZXR1cm4gKm5hdmlnYXRvci5tX3hyOworfQorCitOYXZpZ2F0b3JXZWJYUiYgTmF2aWdhdG9y
V2ViWFI6OmZyb20oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCit7CisgICAgYXV0byogc3VwcGxlbWVu
dCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvcldlYlhSKj4oU3VwcGxlbWVudDxOYXZpZ2F0b3I+Ojpm
cm9tKCZuYXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQp
IHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gbWFrZVVuaXF1ZTxOYXZpZ2F0b3JXZWJY
Uj4oKTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAg
IHByb3ZpZGVUbygmbmF2aWdhdG9yLCAiTmF2aWdhdG9yV2ViWFIiLCBXVEZNb3ZlKG5ld1N1cHBs
ZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuICpzdXBwbGVtZW50OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05h
dmlnYXRvcldlYlhSLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldl
YlhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjZjMGY5OGU0OTgxMDMyZWIyNmRhMzExYTFlY2M0ODM1N2YzOWNm
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF2aWdhdG9yOworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKK2NsYXNzIFhSU3lzdGVtOworCitjbGFzcyBOYXZpZ2F0b3JXZWJYUiBm
aW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4geworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBYUlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBOYXZpZ2F0
b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3ImKTsKKworICAgIFJlZlB0cjxYUlN5c3RlbT4gbV94cjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUzZWNmOTU5NGQyYzRmNDA2
OTMyOWM5M2ViZjQ2YmE1ZmZlNmNhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9
V0VCR0wKK10gcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKKyAgICBbU2VjdXJlQ29udGV4
dCwgU2FtZU9iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkg
YXR0cmlidXRlIFhSU3lzdGVtIHhyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUz
MDdiZjc3OTNhMWViMmVmNDI2NmRiMjc5OWFkMzhlNDkzNmVkYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3Bw
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIFhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYm91bmRzR2Vv
bWV0cnk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjVjOGU5NWRkZDVjMzk5NDU1MjY1MTgyYzAwYzYzYzExMzUxOWRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01Qb2ludFJl
YWRPbmx5OworCitjbGFzcyBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBYUlJlZmVy
ZW5jZVNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5kc0dl
b21ldHJ5KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRP
bmx5Pj4gbV9ib3VuZHNHZW9tZXRyeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM3NjRjOTY3YzQyMWQxNDVkYzQ4ZTVkMzUzMmQwZGU1
OTA2NjNiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UgOiBYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NUG9pbnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50
QmxlbmRNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWZhYzFlYzgwYjAyMjE0Zjk5YWEyZjJhNzkwYjU1OTc5
Y2I5YWU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkVudmlyb25tZW50QmxlbmRNb2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52aXJv
bm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBoYUJs
ZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NDk1MTNjY2MzYTVmNDRjMjgwNTcxNTdhOWFhNTQ5OGViYTA0MWM2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2Rl
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisgICAgImFkZGl0aXZlIiwKKyAgICAiYWxwaGEtYmxl
bmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZTcw
ZTU0NDQzNTY0MjYxZDM3OWM5MzBiOWQ1OTlkOTIxMmJmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNs
YXNzIFhSRXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAgUmlnaHQsCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMyNjlhMGY1MTIwNGQ4ODI2Yjk5OWRkYTFmMDIxNDgzNTQyYmIxZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhS
LAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJFeWUgeworICAgICJub25lIiwKKyAg
ICAibGVmdCIsCisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNTA0YWQxYzk3NjNkYWJkM2U1ODY4ZDMwMzI5ODQ4YTdk
NDExYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWUuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlhSRnJhbWUuaCIKKworI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgIlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhS
RnJhbWUpOworCitSZWY8WFJGcmFtZT4gWFJGcmFtZTo6Y3JlYXRlKFJlZjxYUlNlc3Npb24+JiYg
c2Vzc2lvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUkZyYW1lKFdURk1vdmUoc2Vz
c2lvbikpKTsKK30KKworWFJGcmFtZTo6WFJGcmFtZShSZWY8WFJTZXNzaW9uPiYmIHNlc3Npb24p
CisgICAgOiBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sKK30KKworWFJGcmFtZTo6flhS
RnJhbWUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSU2Vzc2lvbiYgWFJGcmFtZTo6c2Vzc2lvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFhSVmlld2VyUG9z
ZT4gWFJGcmFtZTo6Z2V0Vmlld2VyUG9zZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlJikKK3sKKyAg
ICByZXR1cm4geyB9OworfQorCitSZWZQdHI8WFJQb3NlPiBYUkZyYW1lOjpnZXRQb3NlKGNvbnN0
IFhSU3BhY2UmLCBjb25zdCBYUlNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyOWJhNTA1MjYzZDUzZTk4YzUwMzY4YjQ0NWU0ZmVjOTM3NTNjNDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBYUlBvc2U7CitjbGFzcyBYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgWFJTZXNzaW9u
OworY2xhc3MgWFJTcGFjZTsKK2NsYXNzIFhSVmlld2VyUG9zZTsKKworY2xhc3MgWFJGcmFtZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFhSRnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KFhSRnJhbWUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJGcmFtZT4gY3JlYXRlKFJlZjxY
UlNlc3Npb24+JiYpOworICAgIH5YUkZyYW1lKCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNl
c3Npb24oKSBjb25zdDsKKworICAgIFJlZlB0cjxYUlZpZXdlclBvc2U+IGdldFZpZXdlclBvc2Uo
Y29uc3QgWFJSZWZlcmVuY2VTcGFjZSYpOworICAgIFJlZlB0cjxYUlBvc2U+IGdldFBvc2UoY29u
c3QgWFJTcGFjZSYsIGNvbnN0IFhSU3BhY2UmKTsKKworcHJpdmF0ZToKKyAgICBYUkZyYW1lKFJl
ZjxYUlNlc3Npb24+JiYpOworCisgICAgUmVmPFhSU2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTI2MTBkZWNlODg4Mjc5ODUxZTAyNzQzYzE3MTIyOTM3NzBmM2Q1
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50
ZXJmYWNlIFhSRnJhbWUgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJT
ZXNzaW9uIHNlc3Npb247CisKKyAgICBYUlZpZXdlclBvc2U/IGdldFZpZXdlclBvc2UoWFJSZWZl
cmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZSk7CisgICAgWFJQb3NlPyBnZXRQb3NlKFhSU3BhY2Ug
c3BhY2UsIFhSU3BhY2UgYmFzZVNwYWNlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NThm
ZGMyMDQzNzgxZmE2Zjk5NzhiYzJiZDdkZWM4NDIwZWI0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJGcmFt
ZTsKKworY2xhc3MgWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFhS
RnJhbWVSZXF1ZXN0Q2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGlj
OgorICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKKworICAg
IHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoZG91YmxlIGhpZ2hSZXNU
aW1lTXMsIFhSRnJhbWUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxi
YWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMTFkNGJkMmM1ODZiMTA1NmEzN2QxMjJjNjRmZWQxOTgwOWFl
NTA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZy
YW1lUmVxdWVzdENhbGxiYWNrLmlkbApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5
cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK2NhbGxiYWNrIFhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2sgPSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUsIFhSRnJhbWUgZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5l
c3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTI3YWEzOWIzZGUyZjdmODYyOTVhZTkzYTgxZjQ3MzFkYzljZDc0YgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSSGFuZGVkbmVzcyB7CisgICAgTm9uZSwKKyAgICBMZWZ0
LAorICAgIFJpZ2h0LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZmNiNTZk
MGY4NzI4YjU2MTRkY2MyZTAyOTFkMjcwYWYyOGYxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJHTAorXSBlbnVtIFhSSGFuZGVkbmVzcyB7CisgICAgIm5vbmUiLAorICAgICJs
ZWZ0IiwKKyAgICAicmlnaHQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiYjQyMmI3ODVhZDMyYWM0MWUxMWM5Yjg3
YzM3ZDdmYWU4ZjliMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZS5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZS5oIgorCisjaW5jbHVk
ZSAiWFJTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSSW5wdXRTb3Vy
Y2UpOworCitSZWY8WFJJbnB1dFNvdXJjZT4gWFJJbnB1dFNvdXJjZTo6Y3JlYXRlKFJlZjxYUlNw
YWNlPiYmIHRhcmdldFJheVNwYWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSSW5w
dXRTb3VyY2UoV1RGTW92ZSh0YXJnZXRSYXlTcGFjZSkpKTsKK30KKworWFJJbnB1dFNvdXJjZTo6
WFJJbnB1dFNvdXJjZShSZWY8WFJTcGFjZT4mJiB0YXJnZXRSYXlTcGFjZSkKKyAgICA6IG1faGFu
ZGVkbmVzcyhYUkhhbmRlZG5lc3M6Ok5vbmUpCisgICAgLCBtX3RhcmdldFJheU1vZGUoWFJUYXJn
ZXRSYXlNb2RlOjpHYXplKQorICAgICwgbV90YXJnZXRSYXlTcGFjZShXVEZNb3ZlKHRhcmdldFJh
eVNwYWNlKSkKK3sKK30KKworWFJJbnB1dFNvdXJjZTo6flhSSW5wdXRTb3VyY2UoKSA9IGRlZmF1
bHQ7CisKK1hSSGFuZGVkbmVzcyBYUklucHV0U291cmNlOjpoYW5kZWRuZXNzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9oYW5kZWRuZXNzOworfQorCitYUlRhcmdldFJheU1vZGUgWFJJbnB1dFNv
dXJjZTo6dGFyZ2V0UmF5TW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5TW9k
ZTsKK30KKworY29uc3QgWFJTcGFjZSYgWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RhcmdldFJheVNwYWNlOworfQorCitSZWZQdHI8WFJTcGFj
ZT4gWFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9Owor
fQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgWFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMoKSBjb25z
dAoreworICAgIHJldHVybiBtX3Byb2ZpbGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjExODdmNzAzOWFlNWQzM2Y2YjkwNTZkNDQ3YjdiZjU5NjMwM2E2YWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJI
YW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgWFJTcGFjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFhSSW5wdXRTb3VyY2U+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSSW5wdXRT
b3VyY2UpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJJbnB1dFNvdXJjZT4gY3JlYXRlKFJl
ZjxYUlNwYWNlPiYmKTsKKyAgICB+WFJJbnB1dFNvdXJjZSgpOworCisgICAgWFJIYW5kZWRuZXNz
IGhhbmRlZG5lc3MoKSBjb25zdDsKKyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSgp
IGNvbnN0OworICAgIGNvbnN0IFhSU3BhY2UmIHRhcmdldFJheVNwYWNlKCkgY29uc3Q7CisgICAg
UmVmUHRyPFhSU3BhY2U+IGdyaXBTcGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwcm9maWxlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2UoUmVm
PFhSU3BhY2U+JiYpOworCisgICAgWFJIYW5kZWRuZXNzIG1faGFuZGVkbmVzczsKKyAgICBYUlRh
cmdldFJheU1vZGUgbV90YXJnZXRSYXlNb2RlOworICAgIFJlZjxYUlNwYWNlPiBtX3RhcmdldFJh
eVNwYWNlOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcHJvZmlsZXM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNmI0MDY5ZjBjYjQyMDVkNTA4NmNiNTE2MTNhNDgxNDM0OTYx
NjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNv
bnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhS
SGFuZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlRhcmdldFJh
eU1vZGUgdGFyZ2V0UmF5TW9kZSA7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBYUlNwYWNlIHRhcmdldFJheVNwYWNlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgWFJTcGFjZT8gZ3JpcFNwYWNlIDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gcHJvZmlsZXM7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmZDRjNDY1ZGFhM2Y3M2RlNjRmNDFhYmQyOGE5ODdjZDY0ZTBlODAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChYUklucHV0U291cmNlQXJyYXkpOworCit1bnNpZ25lZCBYUklucHV0U291cmNlQXJy
YXk6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1hSSW5wdXRTb3VyY2Uq
IFhSSW5wdXRTb3VyY2VBcnJheTo6aXRlbSh1bnNpZ25lZCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU1MjFi
NTVmZDE1OTI5NzU5MGI2NDcxNGU0YzFmOGM1MDU2ZDdmYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmgKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2U7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2VBcnJheSA6
IHB1YmxpYyBSZWZDb3VudGVkPFhSSW5wdXRTb3VyY2VBcnJheT4geworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoWFJJbnB1dFNvdXJjZUFycmF5KTsKK3B1YmxpYzoKKyAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdDsKKyAgICBYUklucHV0U291cmNlKiBpdGVtKHVuc2lnbmVkKSBjb25zdDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDc4MDM0YTY2
OThhNDRlM2YzNGQ3MTg3YjdlMWNjZDFiNWI3ZDgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuaWRsCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
Q29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRv
dywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUklucHV0U291
cmNlQXJyYXkgeworICAgIGl0ZXJhYmxlPFhSSW5wdXRTb3VyY2U+OworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgWFJJbnB1dFNvdXJjZSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE0NzY5MGJmMzNkZDMx
MjJiY2E0Y2M4ZDc5NjEwYzEzMmM0ZWQzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcApAQCAtMCwwICsxLDY2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUklucHV0U291
cmNlRXZlbnQuaCIKKworI2luY2x1ZGUgIlhSRnJhbWUuaCIKKyNpbmNsdWRlICJYUklucHV0U291
cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4g
WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0
ZWQpKTsKK30KKworWFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1Ry
dXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwg
bV9mcmFtZShpbml0aWFsaXplci5mcmFtZSkKKyAgICAsIG1faW5wdXRTb3VyY2UoaW5pdGlhbGl6
ZXIuaW5wdXRTb3VyY2UpCisgICAgLCBtX2J1dHRvbkluZGV4KGluaXRpYWxpemVyLmJ1dHRvbklu
ZGV4KQoreworICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBBU1NFUlQobV9pbnB1dFNvdXJjZSk7
Cit9CisKK1hSSW5wdXRTb3VyY2VFdmVudDo6flhSSW5wdXRTb3VyY2VFdmVudCgpID0gZGVmYXVs
dDsKKworY29uc3QgWFJGcmFtZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICptX2ZyYW1lOworfQorCitjb25zdCBYUklucHV0U291cmNlJiBYUklucHV0
U291cmNlRXZlbnQ6OmlucHV0U291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1faW5wdXRT
b3VyY2U7Cit9CisKK09wdGlvbmFsPGludD4gWFJJbnB1dFNvdXJjZUV2ZW50OjpidXR0b25JbmRl
eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnV0dG9uSW5kZXg7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZGM3YzBlM2M0OTEwNWQ0YmQyOTVhNjA2NmU2YTcz
NWYwYjVmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VFdmVudC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBYUkZyYW1lOworY2xhc3MgWFJJbnB1dFNvdXJjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZUV2
ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2
ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUkZyYW1lPiBmcmFtZTsKKyAgICAgICAgUmVmUHRy
PFhSSW5wdXRTb3VyY2U+IGlucHV0U291cmNlOworICAgICAgICBPcHRpb25hbDxpbnQ+IGJ1dHRv
bkluZGV4OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVk
OjpObyk7CisgICAgdmlydHVhbCB+WFJJbnB1dFNvdXJjZUV2ZW50KCk7CisKKyAgICBjb25zdCBY
UkZyYW1lJiBmcmFtZSgpIGNvbnN0OworICAgIGNvbnN0IFhSSW5wdXRTb3VyY2UmIGlucHV0U291
cmNlKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8aW50PiBidXR0b25JbmRleCgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3Qg
SW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJGcmFtZT4gbV9mcmFtZTsKKyAgICBS
ZWZQdHI8WFJJbnB1dFNvdXJjZT4gbV9pbnB1dFNvdXJjZTsKKyAgICBPcHRpb25hbDxpbnQ+IG1f
YnV0dG9uSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjliYWM2YzhhMTcyZmVmMmI2MmY5MWJjYWI4MjNiZThiZjk2OTExZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmlk
bApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJj
ZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgWFJGcmFtZSBmcmFtZTsKKyAg
ICByZXF1aXJlZCBYUklucHV0U291cmNlIGlucHV0U291cmNlOworfTsKKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29u
dGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJJ
bnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IFhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjk1NDJjZTEzMmU1NmI1ZTBmNDRkNWE0ZTIzNDJiNzU5MGVlZTljNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgorCisjaW5jbHVk
ZSAiWFJJbnB1dFNvdXJjZS5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYg
aW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIs
IElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKQorICAgICwgbV9zZXNzaW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAgICwgbV9h
ZGRlZChpbml0aWFsaXplci5hZGRlZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXplci5yZW1v
dmVkKQoreworfQorCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNzaW9uJiBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uOwor
fQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudDo6YWRkZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2FkZGVkOworfQorCitj
b25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudDo6cmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVtb3ZlZDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTkyZjI0MDI1
ODdjMWFmYTZhYzJkNzFlMzNkMzU1ZTdjZWI0ZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUklucHV0U291cmNlOworY2xhc3MgWFJTZXNzaW9u
OworCitjbGFzcyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50
IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0
cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJj
ZT4+IGFkZGVkOworICAgICAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiByZW1vdmVk
OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ+IGNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3Rl
ZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoKTsKKworICAg
IGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8WFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8WFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElz
VHJ1c3RlZCk7CisKKyAgICBSZWY8WFJTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVjdG9yPFJl
ZlB0cjxYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRT
b3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzA0ZjBkMjNkMzEzNDU3OGY2ZWM2OGExMmE0NjJhMGY4
NmYxZGJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdM
CitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudEluaXQgOiBFdmVudEluaXQg
eworICAgIHJlcXVpcmVkIFhSU2Vzc2lvbiBzZXNzaW9uOworICAgIHJlcXVpcmVkIEZyb3plbkFy
cmF5PFhSSW5wdXRTb3VyY2U+IGFkZGVkOworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFhSSW5w
dXRTb3VyY2U+IHJlbW92ZWQ7Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9
V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUklucHV0U291cmNlc0No
YW5nZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IFhSU2Vzc2lvbiBzZXNzaW9uOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
RnJvemVuQXJyYXk8WFJJbnB1dFNvdXJjZT4gYWRkZWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxYUklucHV0U291cmNlPiByZW1vdmVkOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTAzNTRlNmRj
NTdmOTY0NTk0MDc3NTRiOTBkZTVlMjA4ZjhlYzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUG9zZS5oIgorCisjaW5j
bHVkZSAiWFJSaWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFhSUG9zZSk7CisKK1JlZjxYUlBvc2U+IFhSUG9zZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBYUlBvc2UpOworfQorCitYUlBvc2U6OlhSUG9zZSgpCisgICAgOiBtX3Ry
YW5zZm9ybShYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sKK30KKworWFJQb3NlOjp+WFJQ
b3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiBYUlBvc2U6OnRyYW5z
Zm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIFhSUG9z
ZTo6ZW11bGF0ZWRQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW11bGF0ZWRQb3Np
dGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE0ODE5Y2UyNGRhOTIzNjZhNjU5YmUyNGNmNGQ3YTI5
Mzc5MjdlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJQb3NlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlJp
Z2lkVHJhbnNmb3JtOworCitjbGFzcyBYUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlBvc2U+
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSUG9zZSk7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxYUlBvc2U+IGNyZWF0ZSgpOworICAgIH5YUlBvc2UoKTsKKworICAgIGNvbnN0IFhS
UmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworICAgIGJvb2wgZW11bGF0ZWRQb3Np
dGlvbigpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgWFJQb3NlKCk7CisKKyAgICBSZWY8WFJS
aWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07CisgICAgYm9vbCBtX2VtdWxhdGVkUG9zaXRpb24g
eyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOTI3NjliNmRiYWJjNGE3OTZmMGIx
OTUzNWJhOTMzYTNhZDcwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSUG9zZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUG9zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzN2FjYmVh
NWU4OTcyNzJlODViODY5MTdmMjk3NmY3NzY3ZGY4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUmVm
ZXJlbmNlU3BhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitYUlJlZmVyZW5jZVNwYWNl
OjpYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAg
OiBYUlNwYWNlKGNvbnRleHQpCit7Cit9CisKK1hSUmVmZXJlbmNlU3BhY2U6On5YUlJlZmVyZW5j
ZVNwYWNlKCkgPSBkZWZhdWx0OworCitSZWY8WFJSZWZlcmVuY2VTcGFjZT4gWFJSZWZlcmVuY2VT
cGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSZWZlcmVuY2VTcGFjZSgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZl
MTRkNDgzZDRmNTgwNzg0ZTg5YjQ4ZjcwMmY1YTQ0YTYxZTEyNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oCkBAIC0wLDAg
KzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlNwYWNl
LmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBY
UlNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUlJlZmVyZW5jZVNwYWNlKCk7CisKKyAg
ICBSZWY8WFJSZWZlcmVuY2VTcGFjZT4gZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJS
aWdpZFRyYW5zZm9ybSYpOworCitwcml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3BhY2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmFmZGFlY2Q1ZjFhYzc1MTczODdhNTQyMzE3NTI0MmJiMTU0MWUyMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5p
ZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdAorXSBpbnRlcmZhY2UgWFJSZWZlcmVuY2VTcGFjZSA6IFhSU3BhY2Ug
eworICAgIFtOZXdPYmplY3RdIFhSUmVmZXJlbmNlU3BhY2UgZ2V0T2Zmc2V0UmVmZXJlbmNlU3Bh
Y2UoWFJSaWdpZFRyYW5zZm9ybSBvcmlnaW5PZmZzZXQpOworCisgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnJlc2V0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWEwNGEwMTBkMDEy
YTNhMGJkYzhlMGU3OGJlNGQ1YmVjMWQ0NTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCkBAIC0wLDAgKzEs
NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUmVm
ZXJlbmNlU3BhY2VFdmVudC5oIgorCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZS5oIgorI2lu
Y2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8
WFJSZWZlcmVuY2VTcGFjZUV2ZW50PiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlz
VHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQorCitYUlJlZmVyZW5jZVNwYWNl
RXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5
cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3JlZmVyZW5jZVNwYWNlKGluaXRp
YWxpemVyLnJlZmVyZW5jZVNwYWNlKQorICAgICwgbV90cmFuc2Zvcm0oaW5pdGlhbGl6ZXIudHJh
bnNmb3JtKQoreworICAgIEFTU0VSVChtX3JlZmVyZW5jZVNwYWNlKTsKKyAgICBBU1NFUlQobV90
cmFuc2Zvcm0pOworfQorCitYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6On5YUlJlZmVyZW5jZVNwYWNl
RXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSUmVmZXJlbmNlU3BhY2UmIFhSUmVmZXJlbmNl
U3BhY2VFdmVudDo6cmVmZXJlbmNlU3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZWZl
cmVuY2VTcGFjZTsKK30KKworY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50Ojp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiAqbV90cmFuc2Zvcm07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5OGQzOWZkMjhm
MGQ5MDJiMDg2NWZiODEwOGUzM2Q1ZDUwY2NlYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK2NsYXNzIFhSUmlnaWRUcmFu
c2Zvcm07CisKK2NsYXNzIFhSUmVmZXJlbmNlU3BhY2VFdmVudCA6IHB1YmxpYyBFdmVudCB7Citw
dWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQdHI8WFJS
ZWZlcmVuY2VTcGFjZT4gcmVmZXJlbmNlU3BhY2U7CisgICAgICAgIFJlZlB0cjxYUlJpZ2lkVHJh
bnNmb3JtPiB0cmFuc2Zvcm07CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJSZWZlcmVuY2VT
cGFjZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUlJlZmVyZW5jZVNwYWNlRXZlbnQo
KTsKKworICAgIGNvbnN0IFhSUmVmZXJlbmNlU3BhY2UmIHJlZmVyZW5jZVNwYWNlKCkgY29uc3Q7
CisgICAgY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3JtKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJ
bml0JiwgSXNUcnVzdGVkKTsKKworICAgIFJlZlB0cjxYUlJlZmVyZW5jZVNwYWNlPiBtX3JlZmVy
ZW5jZVNwYWNlOworICAgIFJlZlB0cjxYUlJpZ2lkVHJhbnNmb3JtPiBtX3RyYW5zZm9ybTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODYwMWM0
NzdiMGM1ZDJmZTFmZDU1YmRiOGUxODk3ZjA5ZTQwODMzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZGljdGlvbmFyeSBYUlJlZmVyZW5jZVNwYWNlRXZl
bnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBYUlJlZmVyZW5jZVNwYWNlIHJlZmVy
ZW5jZVNwYWNlOworICAgIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKKworWworICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2Vj
dXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJp
bmcgdHlwZSwgWFJSZWZlcmVuY2VTcGFjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRl
cmZhY2UgWFJSZWZlcmVuY2VTcGFjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZTsKKyAgICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3Jt
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWE0ZjlkNWU2MWZjMzc0MzIzYzNmMDMxNmM1NDk1Yzgw
ZDk4NzVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJlZmVyZW5jZVNwYWNlVHlwZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBYUlJlZmVyZW5j
ZVNwYWNlVHlwZSB7CisgICAgVmlld2VyLAorICAgIExvY2FsLAorICAgIExvY2FsRmxvb3IsCisg
ICAgQm91bmRlZEZsb29yLAorICAgIFVuYm91bmRlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VUeXBlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTczMmZiMTYzOThlN2Y5NjJmNTRjOWY3YTNiNTNm
ZmU4ZDM4NTFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTAor
XSBlbnVtIFhSUmVmZXJlbmNlU3BhY2VUeXBlIHsKKyAgICAidmlld2VyIiwKKyAgICAibG9jYWwi
LAorICAgICJsb2NhbC1mbG9vciIsCisgICAgImJvdW5kZWQtZmxvb3IiLAorICAgICJ1bmJvdW5k
ZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRl
clN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2VhYmZmYTJkMjY3ZWMyYjBiYWNiZjBhMzRmMzZlMDk1MWNmZTQzOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJT
dGF0ZS5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZS5oIgorCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0
ZUluaXQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSUmVuZGVyU3RhdGUpOwor
CitSZWY8WFJSZW5kZXJTdGF0ZT4gWFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKGNvbnN0IFhSU2Vzc2lv
biYgc2Vzc2lvbikKK3sKKyAgICAvLyBXaGVuIGFuIFhSUmVuZGVyU3RhdGUgb2JqZWN0IGlzIGNy
ZWF0ZWQgZm9yIGFuIFhSU2Vzc2lvbiBzZXNzaW9uLCB0aGUgdXNlciBhZ2VudCBNVVNUIGluaXRp
YWxpemUgdGhlIHJlbmRlciBzdGF0ZSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6Cisg
ICAgLy8gICAxLiBMZXQgc3RhdGUgYmUgdGhlIG5ld2x5IGNyZWF0ZWQgWFJSZW5kZXJTdGF0ZSBv
YmplY3QuCisKKyAgICAvLyAgIDIuIEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRoTmVhciB0byAw
LjEuCisgICAgLy8gICAzLiBJbml0aWFsaXplIHN0YXRl4oCZcyBkZXB0aEZhciB0byAxMDAwLjAu
CisgICAgLy8gKERlZmF1bHQtaW5pdGlhbGl6ZWQgaW4gdGhlIFhSUmVuZGVyU3RhdGUgY2xhc3Mg
ZGVmaW5pdGlvbi4pCisKKyAgICAvLyAgIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNl
c3Npb24sIGluaXRpYWxpemUgc3RhdGXigJlzIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgdG8g
bnVsbC4KKyAgICAvLyAgIDUuIEVsc2UgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVydGlj
YWxGaWVsZE9mVmlldyB0byBQSSAqIDAuNS4KKyAgICAvLyBGSVhNRTogImltbWVyc2l2ZSBzZXNz
aW9uIiBzdXBwb3J0CisgICAgVU5VU0VEX1BBUkFNKHNlc3Npb24pOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB7IHBpT3ZlclR3b0RvdWJsZSB9OworCisg
ICAgLy8gICA2LiBJbml0aWFsaXplIHN0YXRl4oCZcyBiYXNlTGF5ZXIgdG8gbnVsbC4KKyAgICAv
LyAgIDcuIEluaXRpYWxpemUgc3RhdGXigJlzIG91dHB1dENvbnRleHQgdG8gbnVsbC4KKyAgICAv
LyAoSW5pdGlhbGl6ZWQgdG8gbnVsbCBieSBkZWZhdWx0LikKKworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFhSUmVuZGVyU3RhdGUoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KSkp
OworfQorCitYUlJlbmRlclN0YXRlOjpYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJiBp
bmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KQorICAgIDogbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZW
aWV3KFdURk1vdmUoaW5saW5lVmVydGljYWxGaWVsZE9mVmlldykpCit7Cit9CisKK1hSUmVuZGVy
U3RhdGU6OlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKQoreworfQorCitY
UlJlbmRlclN0YXRlOjp+WFJSZW5kZXJTdGF0ZSgpID0gZGVmYXVsdDsKKworZG91YmxlIFhSUmVu
ZGVyU3RhdGU6OmRlcHRoTmVhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGVwdGgubmVhcjsK
K30KKworZG91YmxlIFhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9kZXB0aC5mYXI7Cit9CisKK09wdGlvbmFsPGRvdWJsZT4gWFJSZW5kZXJTdGF0ZTo6aW5s
aW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5saW5lVmVy
dGljYWxGaWVsZE9mVmlldzsKK30KKworUmVmUHRyPFhSV2ViR0xMYXllcj4gWFJSZW5kZXJTdGF0
ZTo6YmFzZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYXNlTGF5ZXI7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZW5kZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQxOTIxNGY0MGY3YzE5YmE0YjUyOWUzZWQwYjFlMWZl
NzJhN2VjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSZW5kZXJTdGF0ZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhS
V2ViR0xMYXllcjsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKK2NsYXNzIFhSU2Vzc2lvbjsK
KworY2xhc3MgWFJSZW5kZXJTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSUmVuZGVyU3RhdGU+
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSUmVuZGVyU3RhdGUpOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8WFJSZW5kZXJTdGF0ZT4gY3JlYXRlKGNvbnN0IFhSU2Vzc2lvbiYpOwor
ICAgIH5YUlJlbmRlclN0YXRlKCk7CisKKyAgICBkb3VibGUgZGVwdGhOZWFyKCkgY29uc3Q7Cisg
ICAgZG91YmxlIGRlcHRoRmFyKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVW
ZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3Q7CisgICAgUmVmUHRyPFhSV2ViR0xMYXllcj4gYmFz
ZUxheWVyKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSZW5kZXJTdGF0ZShPcHRpb25hbDxk
b3VibGU+JiYpOworICAgIFhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKTsK
KworICAgIHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBuZWFyIHsgMC4xIH07CisgICAgICAgIGRv
dWJsZSBmYXIgeyAxMDAwIH07CisgICAgfSBtX2RlcHRoOworICAgIE9wdGlvbmFsPGRvdWJsZT4g
bV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxYUldlYkdMTGF5ZXI+IG1f
YmFzZUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc4NWQ1YjVl
MTc1Y2U2NGJjMGM1ZmM4Zjk5MTYxN2E5MzM5ZDczMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwKQEAgLTAsMCArMSwzNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmVuZGVyU3RhdGUg
eworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhGYXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJs
ZT8gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJX
ZWJHTExheWVyPyBiYXNlTGF5ZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNTVmZDk5ZDVmMDJiZmYwOWU4
ODMwOGU5ZjRkOGRiZTk2YzhiZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlhSV2ViR0xMYXllci5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJSZW5k
ZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFy
OworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxYUldl
YkdMTGF5ZXI+IGJhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzY0MmViOTg4NjEzMWY0NzFmNjNjMjY2N2E0NmIwZGZhMTZjMDI4MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUlu
aXQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitdIGRpY3Rpb25hcnkgWFJSZW5k
ZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFy
OworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFhSV2ViR0xMYXll
cj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSaWdpZFRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmlnaWRUcmFuc2Zvcm0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYzRiN2U2OGQzNTI0MGYyMDgxZTMxNzIx
NzFhYjdkOTIwZjczNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJpZ2lkVHJhbnNmb3JtLmgiCisK
KyNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSUmlnaWRUcmFuc2Zvcm0pOworCitSZWY8
WFJSaWdpZFRyYW5zZm9ybT4gWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBYUlJpZ2lkVHJhbnNmb3JtKHsgfSwgeyB9KSk7Cit9CisKK0V4Y2Vw
dGlvbk9yPFJlZjxYUlJpZ2lkVHJhbnNmb3JtPj4gWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKGNv
bnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBvaW50SW5pdCYgb3JpZW50YXRp
b24pCit7CisgICAgLy8gVGhlIFhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRpb24sIG9yaWVudGF0aW9u
KSBjb25zdHJ1Y3RvciBNVVNUIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwcyB3aGVuIGludm9r
ZWQ6CisgICAgLy8gICAxLiBMZXQgdHJhbnNmb3JtIGJlIGEgbmV3IFhSUmlnaWRUcmFuc2Zvcm0u
CisKKyAgICAvLyAgIDIuIElmIHBvc2l0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFs
aXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3
OiAxLjAgfS4KKyAgICAvLyAgIDMuIElmIHBvc2l0aW9u4oCZcyB3IHZhbHVlIGlzIG5vdCAxLjAs
IHRocm93IGEgVHlwZUVycm9yLgorICAgIC8vICAgNC4gRWxzZSBpbml0aWFsaXplIHRyYW5zZm9y
beKAmXMgcG9zaXRpb27igJlzIHggdmFsdWUgdG8gcG9zaXRpb27igJlzIHggZGljdGlvbmFyeSBt
ZW1iZXIsIHkgdmFsdWUgdG8gcG9zaXRpb27igJlzIHkgZGljdGlvbmFyeSBtZW1iZXIsIHogdmFs
dWUgdG8gcG9zaXRpb27igJlzIHogZGljdGlvbmFyeSBtZW1iZXIgYW5kIHcgdG8gMS4wLgorICAg
IGlmIChwb3NpdGlvbi53ICE9IDEuMCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciB9OworICAgIERPTVBvaW50SW5pdCBwb3NpdGlvbkluaXQgeyBwb3NpdGlvbi54LCBwb3Np
dGlvbi55LCBwb3NpdGlvbi56LCAxIH07CisKKyAgICAvLyAgIDUuIElmIG9yaWVudGF0aW9uIGlz
IG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb24g
dG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDYuIEVsc2Ug
aW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9u4oCZcyB4IHZhbHVlIHRvIG9yaWVu
dGF0aW9u4oCZcyB4IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZ
cyB5IGRpY3Rpb25hcnkgbWVtYmVyLCB6IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB6IGRpY3Rp
b25hcnkgbWVtYmVyIGFuZCB3IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB3IGRpY3Rpb25hcnkg
bWVtYmVyLgorICAgIC8vICAgNy4gTm9ybWFsaXplIHgsIHksIHosIGFuZCB3IGNvbXBvbmVudHMg
b2YgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbi4KKyAgICBET01Qb2ludEluaXQgb3JpZW50YXRp
b25Jbml0IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwgb3JpZW50YXRpb24ueiwgb3Jp
ZW50YXRpb24udyB9OworICAgIHsKKyAgICAgICAgZG91YmxlIGxlbmd0aCA9IHN0ZDo6c3FydChv
cmllbnRhdGlvbkluaXQueCAqIG9yaWVudGF0aW9uSW5pdC54ICsgb3JpZW50YXRpb25Jbml0Lnkg
KiBvcmllbnRhdGlvbkluaXQueQorICAgICAgICAgICAgKyBvcmllbnRhdGlvbkluaXQueiAqIG9y
aWVudGF0aW9uSW5pdC56ICsgb3JpZW50YXRpb25Jbml0LncgKiBvcmllbnRhdGlvbkluaXQudyk7
CisgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWw8ZG91YmxlPihsZW5ndGgsIDAp
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisK
KyAgICAgICAgb3JpZW50YXRpb25Jbml0PSB7CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQu
eCAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LnkgLyBsZW5ndGgsCisgICAgICAgICAgICBvcmll
bnRhdGlvbkluaXQueiAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LncgLyBsZW5ndGgsCisgICAg
ICAgIH07CisgICAgfQorCisgICAgLy8gICA4LiBSZXR1cm4gdHJhbnNmb3JtLgorICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRpb25Jbml0LCBvcmllbnRhdGlv
bkluaXQpKTsKK30KKworWFJSaWdpZFRyYW5zZm9ybTo6WFJSaWdpZFRyYW5zZm9ybShjb25zdCBE
T01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBET01Qb2ludEluaXQmIG9yaWVudGF0aW9uKQor
ICAgIDogbV9wb3NpdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVhdGUocG9zaXRpb24pKQorICAg
ICwgbV9vcmllbnRhdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVhdGUob3JpZW50YXRpb24pKQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJvcGVybHksIHBlciBzcGVjLgorICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IG1hdHJpeDsKKyAgICBhdXRvIG1hdHJpeERhdGEgPSBtYXRyaXgudG9D
b2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKKyAgICBtX21hdHJpeCA9IEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKG1hdHJpeERhdGEuZGF0YSgpLCBtYXRyaXhEYXRhLnNpemUoKSk7Cit9CisKK1hSUmlnaWRU
cmFuc2Zvcm06On5YUlJpZ2lkVHJhbnNmb3JtKCkgPSBkZWZhdWx0OworCitjb25zdCBET01Qb2lu
dFJlYWRPbmx5JiBYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcG9zaXRpb247Cit9CisKK2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFhSUmlnaWRUcmFu
c2Zvcm06Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmllbnRhdGlvbjsK
K30KKworUmVmPEZsb2F0MzJBcnJheT4gIFhSUmlnaWRUcmFuc2Zvcm06Om1hdHJpeCgpIGNvbnN0
Cit7CisgICAgYXV0byBtYXRyaXggPSBGbG9hdDMyQXJyYXk6OmNyZWF0ZSgxNik7CisgICAgbWF0
cml4LT56ZXJvRmlsbCgpOworICAgIHJldHVybiBtYXRyaXg7Cit9CisKK1JlZjxYUlJpZ2lkVHJh
bnNmb3JtPiBYUlJpZ2lkVHJhbnNmb3JtOjppbnZlcnNlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50IHByb3Blcmx5LgorICAgIHJldHVybiBYUlJpZ2lkVHJhbnNmb3JtOjpjcmVh
dGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWQwNDNlODEyMzBm
NTRlYjEzYzk3OGU5ODM3NzBhMTRhMTU4MDU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IERPTVBvaW50SW5pdDsKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisK
K2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxYUlJpZ2lkVHJhbnNm
b3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJpZ2lkVHJhbnNmb3JtKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOworICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShjb25zdCBET01Q
b2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+WFJSaWdpZFRyYW5zZm9ybSgp
OworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRpb24oKSBjb25zdDsKKyAgICBj
b25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNvbnN0OworICAgIFJlZjxGbG9h
dDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxYUlJpZ2lkVHJhbnNmb3JtPiBpbnZl
cnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Q
b2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAgIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX29yaWVudGF0aW9u
OworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJp
Z2lkVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRy
YW5zZm9ybS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RmNWM4OTI3YTI0OWEwMDU2MTdjY2NhOTc3MWJkZTA0
M2ZlODNlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSaWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlv
bmFsIERPTVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0
aW9uKSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmlnaWRUcmFuc2Zvcm0geworICAgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seSBwb3NpdGlvbjsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVBvaW50UmVhZE9ubHkgb3JpZW50
YXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBtYXRyaXg7CisgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYyNzYyNTMyZjcxNzBiMjVlY2Q2MDZlZWJkZWMxMmE1OTM1NzQ1NzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHAKQEAgLTAs
MCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
WFJTZXNzaW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlNlc3Npb24p
OworCitYUlNlc3Npb246On5YUlNlc3Npb24oKSA9IGRlZmF1bHQ7CisKK1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUgWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7Cit9CisKK1hSVmlzaWJpbGl0eVN0YXRlIFhS
U2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmls
aXR5U3RhdGU7Cit9CisKK2NvbnN0IFhSUmVuZGVyU3RhdGUmIFhSU2Vzc2lvbjo6cmVuZGVyU3Rh
dGUoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZW5kZXJTdGF0ZTsKK30KKworY29uc3QgWFJJ
bnB1dFNvdXJjZUFycmF5JiBYUlNlc3Npb246OmlucHV0U291cmNlcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuICptX2lucHV0U291cmNlczsKK30KKwordm9pZCBYUlNlc3Npb246OnVwZGF0ZVJlbmRl
clN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0JikKK3sKK30KKwordm9pZCBYUlNlc3Npb246
OnJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVl
c3RSZWZlcmVuY2VTcGFjZVByb21pc2UmJikKK3sKK30KKworaW50IFhSU2Vzc2lvbjo6cmVxdWVz
dEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJl
dHVybiAwOworfQorCit2b2lkIFhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQor
eworfQorCit2b2lkIFhSU2Vzc2lvbjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3Qg
Y2hhciogWFJTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gIlhSU2Vzc2lvbiI7Cit9CisKK3ZvaWQgWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmRmYzhkNDIyNTUwNGVjNTI0ZTNmOGJkMDBlOWJlMzc1N2ZlNzM0ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRN
b2RlLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5LmgiCisjaW5jbHVkZSAiWFJSZWZl
cmVuY2VTcGFjZVR5cGUuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAi
WFJTcGFjZS5oIgorI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrOworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK3N0
cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKKworY2xhc3MgWFJTZXNzaW9uIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8WFJTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEs
IHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJT
ZXNzaW9uKTsKK3B1YmxpYzoKKyAgICB1c2luZyBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNl
ID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxYUlJlZmVyZW5jZVNwYWNlPj47Cisg
ICAgdXNpbmcgRW5kUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPjsKKworICAgIHZp
cnR1YWwgflhSU2Vzc2lvbigpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNlc3Npb24+Ojpy
ZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNlc3Npb24+OjpkZXJlZjsKKworICAgIFhSRW52
aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGUoKSBjb25zdDsKKyAgICBYUlZp
c2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBYUlJlbmRl
clN0YXRlJiByZW5kZXJTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IFhSSW5wdXRTb3VyY2VBcnJh
eSYgaW5wdXRTb3VyY2VzKCkgY29uc3Q7CisKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKGNv
bnN0IFhSUmVuZGVyU3RhdGVJbml0Jik7CisgICAgdm9pZCByZXF1ZXN0UmVmZXJlbmNlU3BhY2Uo
Y29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNl
JiYpOworCisgICAgaW50IHJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RD
YWxsYmFjaz4mJik7CisgICAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaGFuZGxlKTsK
KworICAgIHZvaWQgZW5kKEVuZFByb21pc2UmJik7CisKKyAgICBib29sIGVuZGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmRlZDsgfQorCitwcm90ZWN0ZWQ6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAg
ICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFhSU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsg
fQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBBY3Rp
dmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisKKyAgICBYUkVudmlyb25tZW50
QmxlbmRNb2RlIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUg
bV92aXNpYmlsaXR5U3RhdGU7CisgICAgUmVmUHRyPFhSUmVuZGVyU3RhdGU+IG1fcmVuZGVyU3Rh
dGU7CisgICAgUmVmUHRyPFhSSW5wdXRTb3VyY2VBcnJheT4gbV9pbnB1dFNvdXJjZXM7CisgICAg
Ym9vbCBtX2VuZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjNh
NTJmNTkyM2E0ZmI4YjEzNWM1OThjMDczYzYzMDkxNTljZTk3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaWRsCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCR0wsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFhSU2Vzc2lvbiA6IEV2ZW50VGFyZ2V0
IHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRW52aXJvbm1l
bnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFhSVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFhSUmVuZGVyU3RhdGUgcmVuZGVyU3RhdGU7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUklucHV0U291cmNlQXJyYXkgaW5wdXRTb3VyY2VzOwor
CisgICAgLy8gTWV0aG9kcworICAgIHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUob3B0aW9uYWwgWFJS
ZW5kZXJTdGF0ZUluaXQgc3RhdGVJbml0KTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFhSUmVm
ZXJlbmNlU3BhY2U+IHJlcXVlc3RSZWZlcmVuY2VTcGFjZShYUlJlZmVyZW5jZVNwYWNlVHlwZSB0
eXBlKTsKKworICAgIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFhSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9uZyBoYW5k
bGUpOworCisgICAgUHJvbWlzZTx2b2lkPiBlbmQoKTsKKworICAgIC8vIEV2ZW50cworICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bnNlbGVjdDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uaW5wdXRzb3VyY2VzY2hhbmdl
OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3RzdGFydDsKKyAgICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b252aXNpYmlsaXR5Y2hhbmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE1OWRhYmI2ZjNjZTY1M2ZhMzkyY2Q3
NjE3MGNkYjdlYTU0MTE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbkV2ZW50LmgiCisKKyNp
bmNsdWRlICJYUlNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJTZXNz
aW9uRXZlbnQ+IFhSU2Vzc2lvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgWFJTZXNzaW9uRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1
c3RlZCkpOworfQorCitYUlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNz
aW9uKGluaXRpYWxpemVyLnNlc3Npb24pCit7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7Cit9CisK
K1hSU2Vzc2lvbkV2ZW50Ojp+WFJTZXNzaW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhS
U2Vzc2lvbiYgWFJTZXNzaW9uRXZlbnQ6OnNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiAq
bV9zZXNzaW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlMWY5ZTZhMThl
MzkwNjM3ZjRiNzA2MmE2N2ViNzFiYzBlMjVkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlNlc3Npb247CisKK2NsYXNzIFhSU2Vzc2lvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50
SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgfTsKKworICAg
IHN0YXRpYyBSZWY8WFJTZXNzaW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSU2Vz
c2lvbkV2ZW50KCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBYUlNlc3Npb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5p
dCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJTZXNzaW9uPiBtX3Nlc3Npb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NDQzNjZkZjYxM2VmOTEwYzgyNTBm
MWI0YTMzOTMyODZmODdhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdM
LAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVx
dWlyZWQgWFJTZXNzaW9uIHNlc3Npb247Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUlNlc3Npb25F
dmVudEluaXQgZXZlbnRJbml0RGljdCkKK10gaW50ZXJmYWNlIFhSU2Vzc2lvbkV2ZW50IDogRXZl
bnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJTZXNzaW9uIHNlc3Np
b247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25Jbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMmI0N2NjMjZhNDE4Mjc5YzVmOWNmZTJmYjFlNjFhMTU5MGVjMmY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0
LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisK
K25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgWFJTZXNzaW9uSW5pdCB7CisgICAgVmVjdG9yPEpTQzo6SlNWYWx1ZT4gcmVx
dWlyZWRGZWF0dXJlczsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVlPiBvcHRpb25hbEZlYXR1cmVz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU4NjBhOGJhNDc3OWQ0ZDRi
ZGIwY2VlZmIwZmU0NjIzYzFiNWVmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1X
RUJHTAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkluaXQgeworICAgIHNlcXVlbmNlPGFueT4gcmVx
dWlyZWRGZWF0dXJlczsKKyAgICBzZXF1ZW5jZTxhbnk+IG9wdGlvbmFsRmVhdHVyZXM7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MjFlYzY1OGZmYmJiZDc0OTk5YjRiOTdlYjg3YTc5Yjk5ZWNiYjlkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgKQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlBsYXRm
b3JtWFIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBYUlNlc3Npb25Nb2RlID0g
UGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUxOWQ5YjQ1ZTkxMzM3YTI5ODE2ZWQ3OTQ4YzU2NTE4NGMyNWI5Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCkBAIC0w
LDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZW51bSBYUlNlc3Npb25Nb2RlIHsKKyAgICAiaW5s
aW5lIiwKKyAgICAiaW1tZXJzaXZlLXZyIiwKKyAgICAiaW1tZXJzaXZlLWFyIgorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YTcwMDg5YTUz
ODJiMjJlZDhmZjUzNTJjNTQxZDhkY2I2Y2E3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU3BhY2UuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSU3BhY2UpOworCitYUlNwYWNlOjpYUlNwYWNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcigmY29udGV4dCkKK3sKK30KKworWFJTcGFjZTo6flhSU3BhY2UoKSA9IGRlZmF1
bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE1OTEzOTI5NjYzNzc4YjBiN2E0NGZjZWUwZDQyMWYxZmM0
NzI0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJT
cGFjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBYUlNwYWNlIDogcHVi
bGljIFJlZkNvdW50ZWQ8WFJTcGFjZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoWFJTcGFjZSk7CitwdWJsaWM6CisgICAgdmlydHVhbCB+WFJTcGFjZSgpOworCisg
ICAgdXNpbmcgUmVmQ291bnRlZDxYUlNwYWNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
WFJTcGFjZT46OmRlcmVmOworCitwcm90ZWN0ZWQ6CisgICAgWFJTcGFjZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisK
K3ByaXZhdGU6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhSU3BhY2VFdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJp
ZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ5MDA0YTk4YmQ4MzRhMzMwNTk1YWVj
Y2E0NTk0NWZjMTA3YzJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTcGFjZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBYUlNwYWNlIDog
RXZlbnRUYXJnZXQgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDk3NDUzZTM2NDgwZWU0ZDRjZTJiMzdhY2IxZjk5MDEyOTc3NWMxMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0u
Y3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWFJTeXN0ZW0pOworCitSZWY8WFJTeXN0ZW0+IFhSU3lz
dGVtOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlN5c3RlbShzY3JpcHRFeGVjdXRpb25D
b250ZXh0KSk7Cit9CisKK1hSU3lzdGVtOjpYUlN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRF
eGVjdXRpb25Db250ZXh0KQoreworfQorCitYUlN5c3RlbTo6flhSU3lzdGVtKCkgPSBkZWZhdWx0
OworCit2b2lkIFhSU3lzdGVtOjppc1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNT
ZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSYmKQoreworICAgIC8vIFdoZW4gdGhlIHN1cHBvcnRzU2Vz
c2lvbihtb2RlKSBtZXRob2QgaXMgaW52b2tlZCwgaXQgTVVTVCByZXR1cm4gYSBuZXcgUHJvbWlz
ZSBwcm9taXNlIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKKyAgICAv
LyAgIDEuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAgLy8gICAyLiBJZiB0
aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9ydGVk
RXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICAzLiBJ
ZiB0aGUgWFIgZGV2aWNlJ3MgbGlzdCBvZiBzdXBwb3J0ZWQgbW9kZXMgZG9lcyBub3QgY29udGFp
biBtb2RlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNl
cHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4gRWxzZSByZXNvbHZlIHBy
b21pc2UuCit9CisKK3ZvaWQgWFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUs
IGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJikKK3sKKyAgICBQ
bGF0Zm9ybVhSOjpJbnN0YW5jZTo6c2luZ2xldG9uKCk7CisKKyAgICAvLyBXaGVuIHRoZSByZXF1
ZXN0U2Vzc2lvbihtb2RlKSBtZXRob2QgaXMgaW52b2tlZCwgdGhlIHVzZXIgYWdlbnQgTVVTVCBy
ZXR1cm4gYSBuZXcgUHJvbWlzZSBwcm9taXNlIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBp
biBwYXJhbGxlbDoKKyAgICAvLyAgIDEuIExldCBpbW1lcnNpdmUgYmUgdHJ1ZSBpZiBtb2RlIGlz
ICJpbW1lcnNpdmUtdnIiIG9yICJpbW1lcnNpdmUtYXIiLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgor
ICAgIC8vICAgMi4gSWYgaW1tZXJzaXZlIGlzIHRydWU6CisgICAgLy8gICAgIDEuIElmIHBlbmRp
bmcgaW1tZXJzaXZlIHNlc3Npb24gaXMgdHJ1ZSBvciBhY3RpdmUgaW1tZXJzaXZlIHNlc3Npb24g
aXMgbm90IG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBE
T01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgICAyLiBFbHNlIHNl
dCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRvIGJlIHRydWUuCisgICAgLy8gICAzLiBFbnN1
cmUgYW4gWFIgZGV2aWNlIGlzIHNlbGVjdGVkLgorICAgIC8vICAgNC4gSWYgdGhlIFhSIGRldmlj
ZSBpcyBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIG51bGwuCisgICAgLy8gICA1LiBFbHNlIGlm
IHRoZSBYUiBkZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRlZCBtb2RlcyBkb2VzIG5vdCBjb250YWlu
IG1vZGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2Vw
dGlvbi4KKyAgICAvLyAgIDYuIEVsc2UgSWYgaW1tZXJzaXZlIGlzIHRydWUgYW5kIHRoZSBhbGdv
cml0aG0gaXMgbm90IHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24sIHJlamVjdCBwcm9taXNl
IHdpdGggYSAiU2VjdXJpdHlFcnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVw
cy4KKyAgICAvLyAgIDcuIElmIHByb21pc2Ugd2FzIHJlamVjdGVkIGFuZCBpbW1lcnNpdmUgaXMg
dHJ1ZSwgc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gZmFsc2UuCisgICAgLy8gICA4
LiBJZiBwcm9taXNlIHdhcyByZWplY3RlZCwgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICA5
LiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBYUlNlc3Npb24gb2JqZWN0LgorICAgIC8vICAgMTAuIElu
aXRpYWxpemUgdGhlIHNlc3Npb24gd2l0aCBzZXNzaW9uIGFuZCBtb2RlLgorICAgIC8vICAgMTEu
IElmIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgdGhlIGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiB0
byBzZXNzaW9uLCBhbmQgc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gZmFsc2UuCisg
ICAgLy8gICAxMi4gRWxzZSBhcHBlbmQgc2Vzc2lvbiB0byB0aGUgbGlzdCBvZiBpbmxpbmUgc2Vz
c2lvbnMuCisgICAgLy8gICAxMy4gUmVzb2x2ZSBwcm9taXNlIHdpdGggc2Vzc2lvbi4KK30KKwor
Y29uc3QgY2hhciogWFJTeXN0ZW06OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiAiWFJTeXN0ZW0iOworfQorCit2b2lkIFhSU3lzdGVtOjpzdG9wKCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3Rl
bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhjYzk0NGNhNDA3OTliMTcwZmU5MjcyZWIyMzNiMWM5ZDEyNjY3YWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVt
LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2Ns
YXNzIFhSU2Vzc2lvbjsKK3N0cnVjdCBYUlNlc3Npb25Jbml0OworCitjbGFzcyBYUlN5c3RlbSBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFhSU3lzdGVtPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoWFJTeXN0ZW0pOworcHVibGljOgorICAgIHVzaW5nIElzU2Vzc2lvblN1cHBvcnRl
ZFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CisgICAgdXNpbmcgUmVx
dWVzdFNlc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxYUlNl
c3Npb24+PjsKKworICAgIHN0YXRpYyBSZWY8WFJTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisgICAgdmlydHVhbCB+WFJTeXN0ZW0oKTsKKworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8WFJTeXN0ZW0+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlN5c3RlbT46OmRl
cmVmOworCisgICAgdm9pZCBpc1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNTZXNz
aW9uU3VwcG9ydGVkUHJvbWlzZSYmKTsKKyAgICB2b2lkIHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lv
bk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJik7CisK
K3Byb3RlY3RlZDoKKyAgICBYUlN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAg
ICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50
ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWFJTeXN0ZW1FdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYo
KTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU3lzdGVtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzViNmRhNWE2MjBhODg1MTdlOWRkYTBmMDdlYzdi
ZmNhZmQxOTU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlN5c3RlbS5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBBY3RpdmVE
T01PYmplY3QsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRl
cmZhY2UgWFJTeXN0ZW0gOiBFdmVudFRhcmdldCB7CisgICAgLy8gTWV0aG9kcworICAgIFByb21p
c2U8dm9pZD4gaXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUgbW9kZSk7CisgICAgW05l
d09iamVjdF0gUHJvbWlzZTxYUlNlc3Npb24+IHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUg
bW9kZSwgb3B0aW9uYWwgWFJTZXNzaW9uSW5pdCBvcHRpb25zKTsKKworICAgIC8vIEV2ZW50cwor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kZXZpY2VjaGFuZ2U7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1
NWYxNTIwMWNhOTE2ODRkYzZiMTA1NjAwYmJlMjA2ZTlmNjFkNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgR2F6ZSwKKyAgICBUcmFja2Vk
UG9pbnRlciwKKyAgICBTY3JlZW4sCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzY4MjE4YTA4YzZmYTE1OTY1YjJiZjQwNTAwZmRmZTY3NGJhNDBkYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlk
bApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJUYXJnZXRSYXlNb2RlIHsK
KyAgICAiZ2F6ZSIsCisgICAgInRyYWNrZWQtcG9pbnRlciIsCisgICAgInNjcmVlbiIKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYyMjg3NmNh
ZTI2OWI2Y2VkYzVjNDM3ZGM1YTgzNzYzNDZiZTY1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlZpZXcuaCIKKworI2lu
Y2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBl
ZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSVmlldyk7
CisKK1JlZjxYUlZpZXc+IFhSVmlldzo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBYUlZpZXcpOworfQorCitYUlZpZXc6OlhSVmlldygpCisgICAgOiBtX2V5ZShYUkV5ZTo6
TGVmdCkKKyAgICAsIG1fcHJvamVjdGlvbk1hdHJpeChGbG9hdDMyQXJyYXk6OmNyZWF0ZSgwKSkK
KyAgICAsIG1fdHJhbnNmb3JtKFhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpKQoreworfQorCitY
UlZpZXc6On5YUlZpZXcoKSA9IGRlZmF1bHQ7CisKK1hSRXllIFhSVmlldzo6ZXllKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9leWU7Cit9CisKK2NvbnN0IEZsb2F0MzJBcnJheSYgWFJWaWV3Ojpw
cm9qZWN0aW9uTWF0cml4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9qZWN0aW9uTWF0cml4
OworfQorCitjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiBYUlZpZXc6OnRyYW5zZm9ybSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGJmMzU5M2Ux
ZjllNTkwMmVjZWVhMzgyYWQwOGQxZTQ2MDEwYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJFeWUuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJWaWV3
IDogcHVibGljIFJlZkNvdW50ZWQ8WFJWaWV3PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChYUlZpZXcpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJWaWV3PiBjcmVhdGUoKTsKKyAg
ICB+WFJWaWV3KCk7CisKKyAgICBYUkV5ZSBleWUoKSBjb25zdDsKKyAgICBjb25zdCBGbG9hdDMy
QXJyYXkmIHByb2plY3Rpb25NYXRyaXgoKSBjb25zdDsKKyAgICBjb25zdCBYUlJpZ2lkVHJhbnNm
b3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXcoKTsKKworICAg
IFhSRXllIG1fZXllOworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1fcHJvamVjdGlvbk1hdHJpeDsK
KyAgICBSZWY8WFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
Vmlldy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzM1OTk1NWMyZjIwYjAyNmUwN2ZkMWU4MmUwMWNhMzI2ZTQzYTNiZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3LmlkbApAQCAtMCww
ICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAor
ICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1X
aW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJWaWV3
IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJFeWUgZXllOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBGbG9hdDMyQXJyYXkgcHJvamVjdGlvbk1hdHJpeDsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2Zi
ZjJhNzYwMGJmYzcwYWI2MmM1NDFmNmIzMDhhMjcxZDEyMzEyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuY3BwCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSVmll
d2VyUG9zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUlZpZXdlclBvc2U+IFhS
Vmlld2VyUG9zZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXdl
clBvc2UpOworfQorCitYUlZpZXdlclBvc2U6OlhSVmlld2VyUG9zZSgpID0gZGVmYXVsdDsKK1hS
Vmlld2VyUG9zZTo6flhSVmlld2VyUG9zZSgpID0gZGVmYXVsdDsKKworY29uc3QgVmVjdG9yPFJl
ZjxYUlZpZXc+PiYgWFJWaWV3ZXJQb3NlOjp2aWV3cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dmlld3M7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmOTQwYzJmMTUyM2ZkZDE1MTdh
YTU5N2Y0ZDlkNjRlODY5Zjg1NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlBvc2UuaCIKKyNpbmNsdWRlICJYUlZpZXcu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSVmlld2VyUG9zZSA6IHB1YmxpYyBYUlBvc2Ugewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJWaWV3ZXJQb3NlPiBjcmVhdGUoKTsKKyAgICB+WFJW
aWV3ZXJQb3NlKCk7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPFhSVmlldz4+JiB2aWV3cygpIGNv
bnN0OworCitwcml2YXRlOgorICAgIFhSVmlld2VyUG9zZSgpOworCisgICAgVmVjdG9yPFJlZjxY
UlZpZXc+PiBtX3ZpZXdzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNGJj
NmQwMTIyN2ViMjc3ZTcyOTczOTVlN2UwZTNiMGVjYWJlMmUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93
LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSVmlld2VyUG9z
ZSA6IFhSUG9zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5B
cnJheTxYUlZpZXc+IHZpZXdzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJWaWV3cG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
Vmlld3BvcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZjBkODllNzM3NDY1ZmI1MDk2ZDczODUxN2M3OTI0
YmQzY2RhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlld3BvcnQuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSVmlld3BvcnQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKFhSVmlld3BvcnQpOworCitSZWY8WFJWaWV3cG9ydD4gWFJWaWV3cG9ydDo6
Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXdwb3J0KTsKK30KKwor
WFJWaWV3cG9ydDo6WFJWaWV3cG9ydCgpID0gZGVmYXVsdDsKKworaW50IFhSVmlld3BvcnQ6Ongo
KSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitpbnQgWFJWaWV3cG9ydDo6eSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBYUlZpZXdwb3J0Ojp3aWR0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBYUlZpZXdwb3J0OjpoZWlnaHQoKSBjb25zdAorewor
ICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MTdiZGExMjgyYzhiZGRk
YTQyOGQzNDIyODZmODUwMDdlOWMzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFhSVmlld3BvcnQgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlZpZXdwb3J0
PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlZpZXdwb3J0KTsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFhSVmlld3BvcnQ+IGNyZWF0ZSgpOworCisgICAgaW50IHgoKSBjb25zdDsK
KyAgICBpbnQgeSgpIGNvbnN0OworICAgIGludCB3aWR0aCgpIGNvbnN0OworICAgIGludCBoZWln
aHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXdwb3J0KCk7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlld3BvcnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDNjMjZlZTVmZGYxMjg5OTE0NmViNjE2MTk5ZTI3MDUxN2Q5N2Qy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdw
b3J0LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBp
bnRlcmZhY2UgWFJWaWV3cG9ydCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IHdpZHRoOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGMyYjYwZWRiYzkyMDEzYzM3Nzk5MWNhNDY0Mzg3YWJjYTcwYmJhMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaApA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJWaXNpYmlsaXR5U3RhdGUgeworICAgIFZpc2libGUs
CisgICAgVmlzaWJsZUJsdXJyZWQsCisgICAgSGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJp
bGl0eVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5
U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTc3YTA4ZGUyNDZiODc1YzgzMjI2ZDNlZjliMjgzN2M1
OGE5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
VmlzaWJpbGl0eVN0YXRlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0g
WFJWaXNpYmlsaXR5U3RhdGUgeworICAgICJ2aXNpYmxlIiwKKyAgICAidmlzaWJsZS1ibHVycmVk
IiwKKyAgICAiaGlkZGVuIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODIwYjZkNGZkMGViM2FhZjRhY2VkNjZkYjQ2ZmZk
MzIxYjFkZTQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUldlYkdMTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIuaCIKKworI2luY2x1ZGUgIldl
YkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNp
ZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKKyNl
bmRpZgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlhSVmlld3BvcnQuaCIKKyNp
bmNsdWRlICJYUldlYkdMTGF5ZXJJbml0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXhj
ZXB0aW9uT3I8UmVmPFhSV2ViR0xMYXllcj4+IFhSV2ViR0xMYXllcjo6Y3JlYXRlKGNvbnN0IFhS
U2Vzc2lvbiYgc2Vzc2lvbiwgWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJX
ZWJHTExheWVySW5pdCYgaW5pdCkKK3sKKyAgICAvLyBUaGUgWFJXZWJHTExheWVyKHNlc3Npb24s
IGNvbnRleHQsIGxheWVySW5pdCkgY29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dp
bmcgc3RlcHMgd2hlbiBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0IGxheWVyIGJlIGEgbmV3IFhS
V2ViR0xMYXllcgorCisgICAgLy8gICAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2YWx1ZSBpcyB0
cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisg
ICAgaWYgKHNlc3Npb24uZW5kZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICAvLyAgIDMuIElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4g
SWYgY29udGV4dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRP
RE8KKworICAgIC8vICAgNS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0
LgorICAgIC8vICAgNi4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5p
dOKAmXMgYW50aWFsaWFzIHZhbHVlLgorICAgIC8vICAgNy4gSWYgbGF5ZXJJbml04oCZcyBpZ25v
cmVEZXB0aFZhbHVlcyB2YWx1ZSBpcyBmYWxzZSBhbmQgdGhlIFhSIENvbXBvc2l0b3Igd2lsbCBt
YWtlIHVzZSBvZiBkZXB0aCB2YWx1ZXMsIEluaXRpYWxpemUgbGF5ZXLigJlzIGlnbm9yZURlcHRo
VmFsdWVzIHRvIGZhbHNlLgorICAgIC8vICAgOC4gRWxzZSBJbml0aWFsaXplIGxheWVy4oCZcyBp
Z25vcmVEZXB0aFZhbHVlcyB0byB0cnVlCisgICAgLy8gICA5LiBJbml0aWFsaXplIGxheWVy4oCZ
cyBmcmFtZWJ1ZmZlciB0byBhIG5ldyBvcGFxdWUgZnJhbWVidWZmZXIgY3JlYXRlZCB3aXRoIGNv
bnRleHQuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgbGF5ZXLigJlzIHN3YXAgY2hhaW4u
CisgICAgLy8gICAxMS4gSWYgbGF5ZXLigJlzIHN3YXAgY2hhaW4gd2FzIHVuYWJsZSB0byBiZSBj
cmVhdGVkIGZvciBhbnkgcmVhc29uLCB0aHJvdyBhbiBPcGVyYXRpb25FcnJvciBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8vICAgMTIuIFJldHVybiBs
YXllci4KKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUldlYkdMTGF5ZXIoc2Vzc2lvbiwgV1RG
TW92ZShjb250ZXh0KSwgaW5pdCkpOworfQorCitYUldlYkdMTGF5ZXI6OlhSV2ViR0xMYXllcihj
b25zdCBYUlNlc3Npb24mLCBYUlJlbmRlcmluZ0NvbnRleHQmJiBjb250ZXh0LCBjb25zdCBYUldl
YkdMTGF5ZXJJbml0JiBpbml0KQorICAgIDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCisg
ICAgLCBtX2FudGlhbGlhcyhpbml0LmFudGlhbGlhcykKKyAgICAsIG1faWdub3JlRGVwdGhWYWx1
ZXMoaW5pdC5pZ25vcmVEZXB0aFZhbHVlcykKK3sKKyAgICBtX2ZyYW1lYnVmZmVyLm9iamVjdCA9
IFdURjo6c3dpdGNoT24obV9jb250ZXh0LAorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0PiYgY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgUmVmUHRy
PFdlYkdMRnJhbWVidWZmZXI+IGZyYW1lQnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRl
KCpjb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBmcmFtZUJ1ZmZlcjsKKyAgICAgICAgfSwK
KyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0wyUmVuZGVy
aW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJH
TEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqY29u
dGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0sCisjZW5k
aWYKKyAgICAgICAgW10oV1RGOjpNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAp
OworfQorCitYUldlYkdMTGF5ZXI6On5YUldlYkdMTGF5ZXIoKSA9IGRlZmF1bHQ7CisKK2Jvb2wg
WFJXZWJHTExheWVyOjphbnRpYWxpYXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2FudGlhbGlh
czsKK30KKworYm9vbCBYUldlYkdMTGF5ZXI6Omlnbm9yZURlcHRoVmFsdWVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pZ25vcmVEZXB0aFZhbHVlczsKK30KKworY29uc3QgV2ViR0xGcmFtZWJ1
ZmZlciYgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuICpt
X2ZyYW1lYnVmZmVyLm9iamVjdDsKK30KKwordW5zaWduZWQgWFJXZWJHTExheWVyOjpmcmFtZWJ1
ZmZlcldpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlci53aWR0aDsKK30K
KwordW5zaWduZWQgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlckhlaWdodCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZnJhbWVidWZmZXIuaGVpZ2h0OworfQorCitSZWZQdHI8WFJWaWV3cG9ydD4g
WFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydChjb25zdCBYUlZpZXcmKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK2RvdWJsZSBYUldlYkdMTGF5ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVG
YWN0b3IoY29uc3QgWFJTZXNzaW9uJikKK3sKKyAgICByZXR1cm4gMS4wOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMGYzY2E4OTU0MDA4NWFiNzc0N2EwNzQ5NzU4ZjMxNzk2OWEzNDc0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdM
TGF5ZXIuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDsKKyNpZiBFTkFCTEUoV0VCR0wyKQorY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsK
KyNlbmRpZgorY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJWaWV3OworY2xhc3MgWFJWaWV3cG9y
dDsKK3N0cnVjdCBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBYUldlYkdMTGF5ZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2luZyBY
UlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+LCAKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBSZWZQdHI8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4sCisjZW5kaWYKKyAgICAgICAgV1RGOjpNb25vc3RhdGUKKyAg
ICA+OworCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxYUldlYkdMTGF5ZXI+PiBjcmVhdGUo
Y29uc3QgWFJTZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXll
ckluaXQmKTsKKyAgICB+WFJXZWJHTExheWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygpIGNv
bnN0OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0IFdl
YkdMRnJhbWVidWZmZXImIGZyYW1lYnVmZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVi
dWZmZXJXaWR0aCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkgY29u
c3Q7CisKKyAgICBSZWZQdHI8WFJWaWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3Jik7
CisKKyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29u
c3QgWFJTZXNzaW9uJik7CisKK3ByaXZhdGU6CisgICAgWFJXZWJHTExheWVyKGNvbnN0IFhSU2Vz
c2lvbiYsIFhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7CisK
KyAgICBYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxpYXMg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisKKyAg
ICBzdHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0OworICAg
ICAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9
OworICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44YjY0NzU4YmVlNjExMzI2ZDllN2MwNzdhM2MxOTdlMTYxNWQwM2Q3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250ZXh0
IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0OworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIC8vQ29uc3RydWN0b3Io
WFJTZXNzaW9uIHNlc3Npb24sIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQsIG9wdGlv
bmFsIFhSV2ViR0xMYXllckluaXQgbGF5ZXJJbml0KSwKKyAgICAvL0NvbnN0cnVjdG9yTWF5VGhy
b3dFeGNlcHRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2Ug
WFJXZWJHTExheWVyIHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gYW50aWFsaWFzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlnbm9y
ZURlcHRoVmFsdWVzOworCisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJH
TEZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGZyYW1lYnVmZmVyV2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgZnJhbWVidWZmZXJIZWlnaHQ7CisKKyAgICAvLyBNZXRob2RzCisgICAgWFJWaWV3cG9y
dD8gZ2V0Vmlld3BvcnQoWFJWaWV3IHZpZXcpOworCisgICAgLy8gU3RhdGljIE1ldGhvZHMKKyAg
ICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoWFJTZXNzaW9u
IHNlc3Npb24pOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdM
TGF5ZXJJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM3MThmZGUyNDVmNjEyMzc3MzNmZjc5OTU2MGFjNDk4
MzVjOTBmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVySW5pdC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFhSV2ViR0xMYXllckluaXQg
eworICAgIGJvb2wgYW50aWFsaWFzIHsgdHJ1ZSB9OworICAgIGJvb2wgZGVwdGggeyB0cnVlIH07
CisgICAgYm9vbCBzdGVuY2lsIHsgZmFsc2UgfTsKKyAgICBib29sIGFscGhhIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMgeyB0cnVlIH07CisgICAgZG91YmxlIGZyYW1lYnVm
ZmVyU2NhbGVGYWN0b3IgeyAxLjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyNDViMWU2MTE5ZDc3NzNjZmJkMGYwZTQ1N2IyZjRlOTZjMTI1NmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllcklu
aXQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZGljdGlvbmFyeSBYUldlYkdM
TGF5ZXJJbml0IHsKKyAgICBib29sZWFuIGFudGlhbGlhcyA9IHRydWU7CisgICAgYm9vbGVhbiBk
ZXB0aCA9IHRydWU7CisgICAgYm9vbGVhbiBzdGVuY2lsID0gZmFsc2U7CisgICAgYm9vbGVhbiBh
bHBoYSA9IHRydWU7CisgICAgYm9vbGVhbiBpZ25vcmVEZXB0aFZhbHVlcyA9IGZhbHNlOworICAg
IGRvdWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yID0gMS4wOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
UEUuY21ha2UKaW5kZXggMGQ1OTgyZTFkYzY5ZWI2ODBmMDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4u
ZTc1ZWNlZjE0MGFiNWNlZWYxZDBkNmRiYzA2NmUzNWM5MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XUEUuY21ha2UKQEAgLTcwLDMgKzcwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1f
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7VVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9CiAgICAg
JHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9CiApCisKK2lmIChVU0VfT1BFTlhSKQorICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTlhSX0xJQlJBUklFU30pCisgICAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke09QRU5YUl9J
TkNMVURFX0RJUlN9KQorZW5kaWYgKCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IGE3MjFmYmIxYWQ4YTVhYTZiZGEwOWI2M2IzYTJhOWQ5OTdjOTExMmYuLjcx
ZGE4ZTY2MWFlYTI5NjViMjExNThiMWZlYjAyNzRjOTIzNDg2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC00MTEsNiArNDExLDMxIEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5h
dmlnYXRvckdQVS5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitNb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmNwcCBAbm8tdW5pZnkK
K01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VBcnJheS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIv
WFJSZW5kZXJTdGF0ZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zv
cm0uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIEBuby11bmlmeQor
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hS
Vmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwIEBu
by11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwIEBuby11bmlmeQorCisjZW5k
aWYKKwogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGwuY3BwCkBAIC0yMDcxLDYgKzIwOTYsOSBAQCBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5jcHAKIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAogCitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhS
LmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5p
ZnkKKwogcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5j
cHAKIHBsdWdpbnMvRE9NUGx1Z2luLmNwcApAQCAtMzUxOCw2ICszNTQ2LDQxIEBAIEpTWFBhdGhO
U1Jlc29sdmVyLmNwcAogSlNYUGF0aFJlc3VsdC5jcHAKIEpTWFNMVFByb2Nlc3Nvci5jcHAKIAor
I2lmIEVOQUJMRV9XRUJHTAorCitKU1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVu
dmlyb25tZW50QmxlbmRNb2RlLmNwcAorSlNYUkV5ZS5jcHAKK0pTWFJGcmFtZS5jcHAKK0pTWFJG
cmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKK0pTWFJIYW5kZWRuZXNzLmNwcAorSlNYUklucHV0U291
cmNlLmNwcAorSlNYUklucHV0U291cmNlQXJyYXkuY3BwCitKU1hSSW5wdXRTb3VyY2VFdmVudC5j
cHAKK0pTWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKK0pTWFJQb3NlLmNwcAorSlNYUlJl
ZmVyZW5jZVNwYWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hSUmVmZXJl
bmNlU3BhY2VUeXBlLmNwcAorSlNYUlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRlclN0YXRlSW5p
dC5jcHAKK0pTWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTWFJTZXNzaW9uLmNwcAorSlNYUlNlc3Np
b25FdmVudC5jcHAKK0pTWFJTZXNzaW9uSW5pdC5jcHAKK0pTWFJTZXNzaW9uTW9kZS5jcHAKK0pT
WFJTcGFjZS5jcHAKK0pTWFJTeXN0ZW0uY3BwCitKU1hSVGFyZ2V0UmF5TW9kZS5jcHAKK0pTWFJW
aWV3LmNwcAorSlNYUlZpZXdlclBvc2UuY3BwCitKU1hSVmlld3BvcnQuY3BwCitKU1hSVmlzaWJp
bGl0eVN0YXRlLmNwcAorSlNYUldlYkdMTGF5ZXIuY3BwCitKU1hSV2ViR0xMYXllckluaXQuY3Bw
CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFX0dBTUVQQUQKIAogSlNHYW1lcGFkLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRm
MDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjU2NTZmNjg3ODViMThlYzhl
ZmU3MDQ1MGExM2E2YTU4ZjBiYjYzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MDAsNiArNDgwMCw1OSBAQAogCQlFMUU2
RUVBODBCNjI4REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNkVFQTcwQjYyOERCMzAwNUYy
RjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuaCAqLzsgfTsKIAkJRTFFQzI5QTAwQkIwNEM2QjAw
RUExODdCIC8qIFhQYXRoTm9kZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFQzI5OUUwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxRUQ4
QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVEOEFDMjBDQzQ5QkUw
MDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUxRUU4QjcwMjQxMkIyQTgwMEU3OTRE
NiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QjZDMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLzsg
fTsKKwkJRTFFRThCNzIyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjZGMjQxMkIyQTcwMEU3
OTRENiAvKiBQbGF0Zm9ybVhSLmggKi87IH07CisJCUUxRUU4Qjc2MjQxMzE5MUYwMEU3OTRENiAv
KiBYUlZpZXdlclBvc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRUU4QUM3MjQxMkIxNkYwMEU3OTRENiAvKiBYUlZpZXdlclBvc2UuaCAqLzsgfTsK
KwkJRTFFRThCNzcyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDOTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAqLzsgfTsKKwkJRTFFRThCNzgy
NDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDQTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2
aWdhdG9yV2ViWFIuaCAqLzsgfTsKKwkJRTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVu
ZGVyU3RhdGVJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVFOEFDQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCAqLzsg
fTsKKwkJRTFFRThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDQzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCAqLzsgfTsKKwkJRTFFRThC
N0IyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0QyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSUmlnaWRUcmFuc2Zvcm0uY3BwICovOyB9OworCQlFMUVFOEI3QzI0MTMxOTFGMDBFNzk0
RDYgLyogWFJSZW5kZXJTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5j
cHAgKi87IH07CisJCUUxRUU4QjdEMjQxMzE5MUYwMEU3OTRENiAvKiBYUlNwYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDRjI0MTJCMTcw
MDBFNzk0RDYgLyogWFJTcGFjZS5oICovOyB9OworCQlFMUVFOEI3RTI0MTMxOTFGMDBFNzk0RDYg
LyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5oICovOyB9OworCQlFMUVFOEI3RjI0MTMxOTFGMDBFNzk0RDYgLyogWFJS
ZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEFEMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5jcHAg
Ki87IH07CisJCUUxRUU4QjgwMjQxMzE5MUYwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwICov
OyB9OworCQlFMUVFOEI4MTI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDUyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaCAqLzsgfTsKKwkJRTFFRThCODIyNDEzMTkxRjAw
RTc5NEQ2IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmls
aXR5U3RhdGUuaCAqLzsgfTsKKwkJRTFFRThCODMyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSV2ViR0xM
YXllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmNwcCAqLzsgfTsKKwkJRTFF
RThCODQyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBREIyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5oICovOyB9OworCQlFMUVFOEI4NTI0MTMx
OTFGMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBREMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vz
c2lvbkV2ZW50LmNwcCAqLzsgfTsKKwkJRTFFRThCODYyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2VBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBREQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5oICov
OyB9OworCQlFMUVFOEI4NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJWaWV3LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFMDI0MTJCMTcwMDBFNzk0
RDYgLyogWFJWaWV3LmggKi87IH07CisJCUUxRUU4Qjg4MjQxMzE5MUYwMEU3OTRENiAvKiBYUlBv
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4
QUUxMjQxMkIxNzAwMEU3OTRENiAvKiBYUlBvc2UuaCAqLzsgfTsKKwkJRTFFRThCODkyNDEzMTkx
RjAwRTc5NEQ2IC8qIFhSU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaCAqLzsg
fTsKKwkJRTFFRThCOEEyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSRnJhbWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUzMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUkZyYW1lLmggKi87IH07CisJCUUxRUU4QjhCMjQxMzE5MUYwMEU3OTRENiAvKiBYUlBv
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAgKi87IH07CisJCUUxRUU4QjhDMjQx
MzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2VBcnJheS5jcHAgKi87IH07CisJCUUxRUU4QjhEMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUlNlc3Npb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRThBRTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50Lmgg
Ki87IH07CisJCUUxRUU4QjhFMjQxMzE5NTAwMEU3OTRENiAvKiBYUlN5c3RlbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFODI0MTJCMTcw
MDBFNzk0RDYgLyogWFJTeXN0ZW0uY3BwICovOyB9OworCQlFMUVFOEI4RjI0MTMxOTUwMDBFNzk0
RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2suaCAqLzsgfTsKKwkJRTFFRThCOTAyNDEzMTk1MDAwRTc5NEQ2IC8qIFhS
VGFyZ2V0UmF5TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBRUEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oICovOyB9
OworCQlFMUVFOEI5MTI0MTMxOTUwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFQjI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJWaWV3cG9ydC5jcHAgKi87IH07CisJCUUxRUU4QjkyMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUkhhbmRlZG5lc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QUVFMjQxMkIxNzAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCAqLzsg
fTsKKwkJRTFFRThCOTMyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRnJhbWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjAyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSRnJhbWUuY3BwICovOyB9OworCQlFMUVFOEI5NDI0MTMxOTUwMDBFNzk0RDYgLyog
TmF2aWdhdG9yV2ViWFIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRThBRjEyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmNwcCAq
LzsgfTsKKwkJRTFFRThCOTUyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEFGMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLzsgfTsK
KwkJRTFFRThCOTYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUY0MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlZpZXdwb3J0LmggKi87IH07CisJCUUxRUU4Qjk3MjQxMzE5NTAwMEU3OTRENiAvKiBY
UkV5ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThBRjUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRXllLmggKi87IH07CisJCUUxRUU4Qjk4MjQxMzE5
NTAwMEU3OTRENiAvKiBYUlNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNwYWNlLmNwcCAq
LzsgfTsKKwkJRTFFRThCOTkyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUY5MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggKi87
IH07CisJCUUxRUU4QjlBMjQxMzE5NTAwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGRTI0MTJCMTcw
MDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovOyB9OworCQlFMUVFOEI5QjI0MTMxOTUwMDBF
Nzk0RDYgLyogWFJXZWJHTExheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEIwNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmgg
Ki87IH07CisJCUUxRUU4QjlDMjQxMzE5NTAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEIwNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oICovOyB9Owor
CQlFMUVFOEI5RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDYyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zvcm0uaCAqLzsgfTsKKwkJRTFFRThCOUUyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA4MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5
ZXJJbml0LmggKi87IH07CisJCUUxRUU4QjlGMjQxMzE5NTAwMEU3OTRENiAvKiBYUklucHV0U291
cmNlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QjA5MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAqLzsgfTsK
KwkJRTFFRThCQTAyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwQjI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJWaWV3ZXJQb3NlLmNwcCAqLzsgfTsKKwkJRTFFRThCQTEyNDEzMTk2MzAwRTc5
NEQ2IC8qIFhSSW5wdXRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThCMEQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2Uu
Y3BwICovOyB9OworCQlFMUVFOEJBMjI0MTMxOTYzMDBFNzk0RDYgLyogWFJTZXNzaW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjBGMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uY3BwICovOyB9OworCQlFMUVFOEJBMzI0MTMxOTYz
MDBFNzk0RDYgLyogWFJTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEIxMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmggKi87
IH07CisJCUUxRUU4QkE0MjQxMzE5NjMwMEU3OTRENiAvKiBYUlZpZXcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTIyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSVmlldy5jcHAgKi87IH07CisJCUUxRUU4QkE1MjQxMzE5NjMwMEU3OTRENiAvKiBY
UlNlc3Npb25Jbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVFOEIxMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5oICovOyB9Owor
CQlFMUVFOEJBNjI0MTMxOTYzMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTQyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuaCAqLzsgfTsKKwkJRTFFRThCQTcyNDEzMTk2MzAw
RTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTUyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEJBODI0MTMxOTYz
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2UuaCAqLzsgfTsKIAkJRTFGMUU4MzAwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgy
RTBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgx
ODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlw
dG9LZXlQYWlyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTFGODBCOEUxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJC
NTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oICovOyB9OwpAQCAtMTUxMTQsNiArMTUxNjcs
OTAgQEAKIAkJRTFFQzI5OUQwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUGF0aE5vZGVTZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVDMjk5RTBCQjA0QzZCMDBFQTE4N0IgLyogWFBh
dGhOb2RlU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQYXRoTm9kZVNl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1
NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUM3MjQxMkIxNkYwMEU3OTRENiAvKiBYUlZpZXdlclBvc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJWaWV3ZXJQb3NlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUM4MjQxMkIxNkYwMEU3OTRENiAvKiBYUlNlc3Np
b25Nb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb25Nb2RlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
UmVmZXJlbmNlU3BhY2VUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhS
UmVmZXJlbmNlU3BhY2VUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JXZWJYUi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFDQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZW5kZXJTdGF0ZUluaXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0MyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
SW5wdXRTb3VyY2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBYUklucHV0U291cmNlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlJpZ2lkVHJhbnNmb3JtLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0UyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVu
ZGVyU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJSZW5k
ZXJTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNGMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhSU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDAyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQyMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFENDI0MTJC
MTcwMDBFNzk0RDYgLyogWFJTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTcGFj
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ1MjQxMkIxNzAwMEU3
OTRENiAvKiBYUlJlbmRlclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhSUmVuZGVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDYy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhSVmlzaWJpbGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUQ3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb25Jbml0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUldlYkdMTGF5ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJWaXNpYmlsaXR5U3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlzaWJp
bGl0eVN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBREEyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFEQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEQzI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gWFJTZXNzaW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VBcnJheS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFERTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNz
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFERjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFFMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFFMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJQb3NlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUG9zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFJTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFJGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFFNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU1MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlBvc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJQ
b3NlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTYyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYUklucHV0U291cmNlQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFFNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJTZXNzaW9uRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3lz
dGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSU3lzdGVtLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTkyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFFQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSVGFyZ2V0UmF5TW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9y
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlZpZXdwb3J0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUMyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSUmVuZGVyU3RhdGVJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlbmRl
clN0YXRlSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVEMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlZpZXdlclBvc2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFhSVmlld2VyUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVF
MjQxMkIxNzAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJIYW5kZWRuZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUVGMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRjAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUYxMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JXZWJYUi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUYyMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlJlbmRlclN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlbmRlclN0
YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjMyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlZpZXdwb3J0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkV5ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFGNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY3MjQxMkIxNzAwMEU3OTRENiAvKiBY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFGODI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBYUlNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGQTI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFhSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRkIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJH
TExheWVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUldlYkdMTGF5ZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJT
ZXNzaW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbkV2ZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkUyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSU2Vzc2lvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJT
ZXNzaW9uTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGRjI0MTJC
MTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUlRhcmdldFJheU1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEIwMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEIwMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSaWdpZFRyYW5zZm9ybS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlN5c3Rl
bS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTeXN0ZW0uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIwMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRXllLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThCMDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUldlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJFbnZpcm9ubWVu
dEJsZW5kTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNjI0MTJC
MTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYUlJpZ2lkVHJhbnNmb3JtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QjA3MjQxMkIxNzAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFhSSGFuZGVkbmVzcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjA4MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSV2ViR0xMYXllckluaXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUklucHV0
U291cmNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEEyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhS
Vmlld3BvcnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwQjI0MTJC
MTcwMDBFNzk0RDYgLyogWFJWaWV3ZXJQb3NlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFhSVmlld2VyUG9zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QjBDMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBYUkZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThCMEQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJJbnB1dFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJY
Ui5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yV2ViWFIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNz
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSU2Vzc2lvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUldlYkdMTGF5ZXJJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUldlYkdM
TGF5ZXJJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTEyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUlNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTIy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBYUlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEIxMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25Jbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QjE2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlBvc2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFhSUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QjE3MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSSW5wdXRTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThCMTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJh
eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJJbnB1dFNvdXJjZUFycmF5LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBs
YXRmb3JtWFIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZv
cm1YUi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjZGMjQxMkIyQTcw
MEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXRmb3JtWFIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4MkQwQzND
MkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRjgwQjg0MTgzMTcyNDcwMDc4ODVDMyAvKiBDcnlwdG9L
ZXlQYWlyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDcnlwdG9LZXlQYWlyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIyMzM4LDYgKzIyNDc1LDcgQEAKIAkJCQk5OTZFNTlEQTFERjAwRDQ1MDA2NjEy
QjkgLyogd2ViZHJpdmVyICovLAogCQkJCUQwMEY1OTNFMjE2RUNDNDMwMDBENzFEQiAvKiB3ZWJn
cHUgKi8sCiAJCQkJOTdBQUJDRjcxNEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNvY2tldHMgKi8sCisJ
CQkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovLAogCQkJKTsKIAkJCXBhdGgg
PSBNb2R1bGVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI1ODg1LDYgKzI2MDIz
LDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0d29yayAqLywKIAkJCQkx
QTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICovLAogCQkJCUIyQzNEOUVDMEQwMDZDMUQw
MEVGNkYyNiAvKiB0ZXh0ICovLAorCQkJCUUxRUU4QjZCMjQxMkIyQTcwMEU3OTRENiAvKiB4ciAq
LywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYgLyogQWJvcnRhYmxlVGFza1F1ZXVlLmgg
Ki8sCiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuY3Bw
ICovLAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmgg
Ki8sCkBAIC0yNjk3MCw2ICsyNzEwOSwxMTMgQEAKIAkJCW5hbWUgPSBUaHJlYWRzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8q
IHdlYnhyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlF
MUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovLAorCQkJCUUx
RUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovLAorCQkJCUUxRUU4
QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5pZGwgKi8sCisJCQkJRTFFRThB
RDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJ
CQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAq
LywKKwkJCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaWRsICovLAorCQkJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50
QmxlbmRNb2RlLmggKi8sCisJCQkJRTFFRThBREEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsICovLAorCQkJCUUxRUU4QUY1MjQxMkIxNzAwMEU3OTRENiAvKiBY
UkV5ZS5oICovLAorCQkJCUUxRUU4QjAzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5pZGwgKi8s
CisJCQkJRTFFRThBRjAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuY3BwICovLAorCQkJCUUx
RUU4QUUzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lLmggKi8sCisJCQkJRTFFRThCMEMyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuaWRsICovLAorCQkJCUUxRUU4QUU5MjQxMkIxNzAwMEU3
OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi8sCisJCQkJRTFFRThBRkIyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovLAorCQkJCUUxRUU4QUVF
MjQxMkIxNzAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCAqLywKKwkJCQlFMUVFOEIwNzI0MTJC
MTcwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmlkbCAqLywKKwkJCQlFMUVFOEIwRDI0MTJCMTcw
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAgKi8sCisJCQkJRTFFRThCMTcyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaCAqLywKKwkJCQlFMUVFOEFFRjI0MTJCMTcwMDBFNzk0
RDYgLyogWFJJbnB1dFNvdXJjZS5pZGwgKi8sCisJCQkJRTFFRThBRTYyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5jcHAgKi8sCisJCQkJRTFFRThBREQyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5oICovLAorCQkJCUUxRUU4QjE4MjQxMkIxNzAwMEU3
OTRENiAvKiBYUklucHV0U291cmNlQXJyYXkuaWRsICovLAorCQkJCUUxRUU4QUNDMjQxMkIxNzAw
MEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QjA5MjQxMkIx
NzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEIwMDI0MTJC
MTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEIxNTI0
MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8sCisJCQkJ
RTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAq
LywKKwkJCQlFMUVFOEFFNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudC5pZGwgKi8sCisJCQkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAg
Ki8sCisJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5oICovLAorCQkJCUUx
RUU4QjE2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlBvc2UuaWRsICovLAorCQkJCUUxRUU4QUQyMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEIxNDI0
MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxRUU4QUY2MjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmlkbCAqLywKKwkJCQlFMUVFOEFGMzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLywKKwkJCQlFMUVF
OEFEQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggKi8sCisJCQkJ
RTFFRThBRDAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwgKi8s
CisJCQkJRTFFRThBQzkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmgg
Ki8sCisJCQkJRTFFRThBRkEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBl
LmlkbCAqLywKKwkJCQlFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5j
cHAgKi8sCisJCQkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaCAq
LywKKwkJCQlFMUVFOEFGMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5pZGwgKi8s
CisJCQkJRTFFRThBQ0IyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggKi8s
CisJCQkJRTFFRThBRUMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmlkbCAq
LywKKwkJCQlFMUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5jcHAg
Ki8sCisJCQkJRTFFRThCMDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zvcm0uaCAq
LywKKwkJCQlFMUVFOEIwMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5pZGwg
Ki8sCisJCQkJRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgKi8sCisJ
CQkJRTFFRThCMTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5oICovLAorCQkJCUUxRUU4
QURFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaWRsICovLAorCQkJCUUxRUU4QURDMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgKi8sCisJCQkJRTFFRThBRTcyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggKi8sCisJCQkJRTFFRThBRkQyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEIxMzI0MTJCMTcw
MDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5oICovLAorCQkJCUUxRUU4QUQ3MjQxMkIxNzAwMEU3
OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAqLywKKwkJCQlFMUVFOEFGRTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJTZXNzaW9uTW9kZS5oICovLAorCQkJCUUxRUU4QUM4MjQxMkIxNkYwMEU3OTRENiAv
KiBYUlNlc3Npb25Nb2RlLmlkbCAqLywKKwkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyog
WFJTcGFjZS5jcHAgKi8sCisJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2Uu
aCAqLywKKwkJCQlFMUVFOEFENDI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5pZGwgKi8sCisJ
CQkJRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmNwcCAqLywKKwkJCQlFMUVF
OEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaCAqLywKKwkJCQlFMUVFOEIwMjI0MTJC
MTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaWRsICovLAorCQkJCUUxRUU4QUVBMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLywKKwkJCQlFMUVFOEFGRjI0MTJCMTcwMDBFNzk0
RDYgLyogWFJUYXJnZXRSYXlNb2RlLmlkbCAqLywKKwkJCQlFMUVFOEIxMjI0MTJCMTcwMDBFNzk0
RDYgLyogWFJWaWV3LmNwcCAqLywKKwkJCQlFMUVFOEFFMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJW
aWV3LmggKi8sCisJCQkJRTFFRThBREYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlldy5pZGwgKi8s
CisJCQkJRTFFRThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5jcHAgKi8sCisJ
CQkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oICovLAorCQkJCUUx
RUU4QUVEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdlclBvc2UuaWRsICovLAorCQkJCUUxRUU4
QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmNwcCAqLywKKwkJCQlFMUVFOEFGNDI0
MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5oICovLAorCQkJCUUxRUU4QjBBMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlZpZXdwb3J0LmlkbCAqLywKKwkJCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0
RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLywKKwkJCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaWRsICovLAorCQkJCUUxRUU4QUQ4MjQxMkIxNzAwMEU3
OTRENiAvKiBYUldlYkdMTGF5ZXIuY3BwICovLAorCQkJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUldlYkdMTGF5ZXIuaCAqLywKKwkJCQlFMUVFOEFGQzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJXZWJHTExheWVyLmlkbCAqLywKKwkJCQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJX
ZWJHTExheWVySW5pdC5oICovLAorCQkJCUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRENiAvKiBYUldl
YkdMTGF5ZXJJbml0LmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VieHI7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OworCQlFMUVFOEI2QjI0MTJCMkE3MDBFNzk0RDYgLyogeHIg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRUU4QjZE
MjQxMkIyQTcwMEU3OTRENiAvKiBvcGVueHIgKi8sCisJCQkJRTFFRThCNkMyNDEyQjJBNzAwRTc5
NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAv
KiBQbGF0Zm9ybVhSLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHhyOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJRTFFRThCNkQyNDEyQjJBNzAwRTc5NEQ2IC8qIG9wZW54ciAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFFRThCNkUy
NDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJKTsKKwkJCXBhdGggPSBv
cGVueHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFMUYwNDI0MzA5ODM5
Mzg5MDA2Njk0RUEgLyogeG1sICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTMxNjMzLDYgKzMxODc5LDcgQEAKIAkJCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdD
NjIgLyogTmF2aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVBNzI1RDYx
QUNBQkQ1NzAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmlnYXRvcldl
YlhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVz
dGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzQzMEFEQkE1
REUwMEE0NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxODQ1LDYgKzMyMDkyLDcgQEAKIAkJCQkwNzRF
ODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzVDNDc2QjA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxh
dGZvcm1YUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEyQkU0ODAxRkU4NjRBNzAwMjAzMUNDIC8q
IFBsYXliYWNrRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEwOTFDQkQ5OUY0
MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREEyOUEzMjFDQzAxQTk1MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZL
aXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxODEsNiArMzM0MjksMzYgQEAKIAkJCQkxQUI3RkM4
NDBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhVdGlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3
RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUMyNDEzMTk1MDAwRTc5NEQ2
IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjk3
MjQxMzE5NTAwMEU3OTRENiAvKiBYUkV5ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOEEy
NDEzMTkxRjAwRTc5NEQ2IC8qIFhSRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjhG
MjQxMzE5NTAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUVFOEI5MjI0MTMxOTUwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUVFOEJBODI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODYyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VBcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2
IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTkyNDEz
MTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUxRUU4Qjg4MjQxMzE5MUYwMEU3OTRENiAvKiBYUlBvc2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUxRUU4QkE2MjQxMzE5NjMwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3NzI0MTMxOTFGMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjgxMjQx
MzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVF
OEI3OTI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUxRUU4QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEJBMzI0MTMxOTYzMDBFNzk0RDYgLyogWFJTZXNzaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE1MjQxMzE5NjMwMEU3OTRENiAvKiBY
UlNlc3Npb25Jbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QTI0MTMxOTUwMDBFNzk0
RDYgLyogWFJTZXNzaW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCN0QyNDEzMTkx
RjAwRTc5NEQ2IC8qIFhSU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg5MjQxMzE5
MUYwMEU3OTRENiAvKiBYUlN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTAyNDEz
MTk1MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCODcyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCNzYyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCOTYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUxRUU4QjgyMjQxMzE5MUYwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXll
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUUyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSV2Vi
R0xMYXllckluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MjE3RTAzMEE1RUNENDcwMERCOEQw
MCAvKiBYU0xJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlFQzA4MjQ1RTU5
MDAxRTlBQkMgLyogWFNMU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGMUU4MzAw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTMz
NzEzLDYgKzMzOTkxLDcgQEAKIAkJCQlDREYyQjAxNjE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDIxREJGREMy
NzAwN0E3RDk5IC8qIE5hdmlnYXRvckVNRS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE0QkIx
MDE5NTRENjI3MDBGQTVDMkUgLyogTmF2aWdhdG9yR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlFMUVFOEI5NDI0MTMxOTUwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE1NjlEMTMwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfY2xhc3MubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxNjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19pbnN0
YW5jZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDE4MEQ3RTJCODIwMDdDMzk4MyAvKiBv
YmpjX3J1bnRpbWUubW0gaW4gU291cmNlcyAqLywKQEAgLTMzNzIwLDYgKzMzOTk5LDcgQEAKIAkJ
CQlFMTY5ODI2MDExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDRUEyODQ2NjIxNDFFODQ5MDBFNDA3RTggLyogUGxhdGZvcm1FdmVudEZh
Y3RvcnlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYg
LyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUx
RUU4QjcxMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDI0
OTIxMjdCOTNFMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0g
aW4gU291cmNlcyAqLywKQEAgLTM0MzgyLDYgKzM0NjYyLDI1IEBACiAJCQkJQTgzM0M3Q0MwQTJD
RjA3NDAwRDU3NjY0IC8qIFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4
MEMwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
NUEzNkQ5MTEwNDU3MjcwMEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUUxRUU4QjgwMjQxMzE5MUYwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5MzI0MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFt
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4QzI0MTMxOTFGMDBFNzk0
RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjdB
MjQxMzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRTFFRThCQTcyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCOEIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhS
UG9zZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI3RjI0MTMxOTFGMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5NTI0MTMxOTUw
MDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUUxRUU4QjdDMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUxRUU4QjdCMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkEyMjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCODUyNDEzMTkxRjAwRTc5NEQ2IC8qIFhS
U2Vzc2lvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjk4MjQxMzE5NTAwMEU3
OTRENiAvKiBYUlNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjhFMjQxMzE5NTAw
MEU3OTRENiAvKiBYUlN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBNDI0MTMx
OTYzMDBFNzk0RDYgLyogWFJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkEwMjQx
MzE5NTAwMEU3OTRENiAvKiBYUlZpZXdlclBvc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCOTEyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTFFRThCODMyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IDMwNWJjZjUxNDRlMDJlMzYx
ZTVkMzJmMDQ3NTQxNWU1OGI4NjVmZjMuLjk0ZjMxNjVlMWYyN2JhMDJjYTlkNmIzMjI0MmNkMzEz
NGViMTMyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtNjIsNiArNjIsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IElETFR5cGUgewogICAgIHVzaW5nIEltcGxl
bWVudGF0aW9uVHlwZSA9IFQ7CiAgICAgdXNpbmcgU3RvcmFnZVR5cGUgPSBUOworICAgIHVzaW5n
IFNlcXVlbmNlU3RvcmFnZVR5cGUgPSBUOwogCiAgICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IFQ7
CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gT3B0aW9uYWw8SW1wbGVtZW50YXRp
b25UeXBlPjsKQEAgLTgyLDYgKzgzLDcgQEAgc3RydWN0IElETFVuc3VwcG9ydGVkVHlwZSA6IElE
TFR5cGU8dm9pZD4geyB9Owogc3RydWN0IElETE51bGwgOiBJRExUeXBlPHN0ZDo6bnVsbHB0cl90
PiB7IH07CiAKIHN0cnVjdCBJRExBbnkgOiBJRExUeXBlPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+IHsKKyAgICB1c2luZyBTZXF1ZW5jZVN0b3JhZ2VUeXBlID0gSlNDOjpKU1ZhbHVlOwogICAg
IHVzaW5nIFBhcmFtZXRlclR5cGUgPSBKU0M6OkpTVmFsdWU7CiAgICAgdXNpbmcgTnVsbGFibGVQ
YXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCmluZGV4IGM0OWRkOTM4ZmNlMjcxNjVm
NzQ3ZTU4ZmUwOGE1NTNkYmJmZGY1YzIuLjg2ZjdmMjc2ZmMwOGFlMDdjMDEwMDAyMjJkMzU5ZjBl
ZmViNWFlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29u
dmVydFNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29u
dmVydFNlcXVlbmNlcy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBEZXRhaWwgewogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgogc3RydWN0IEdlbmVyaWNTZXF1ZW5jZUNvbnZlcnRl
ciB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IFZlY3Rvcjx0eXBlbmFtZSBJRExUeXBlOjpJbXBs
ZW1lbnRhdGlvblR5cGU+OworICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0b3I8dHlwZW5hbWUg
SURMVHlwZTo6U2VxdWVuY2VTdG9yYWdlVHlwZT47CiAKICAgICBzdGF0aWMgUmV0dXJuVHlwZSBj
b252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNP
YmplY3QqIG9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNDRkNTBiMjA3YzUzOGExOTc5MmI0ZjMyMjZhZmU2
NTI4Nzc4NzIwOS4uMTg4MmE5ZWZmZTI0MGM0NTliZDVkMzQyNjE3YTBjZDkzM2MyZDg4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApA
QCAtMjM1LDYgKzIzNSwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV29ya2xl
dEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oV3JpdGFibGVTdHJlYW0pIFwKICAgICBtYWNybyhY
TUxIdHRwUmVxdWVzdCkgXAorICAgIG1hY3JvKFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKSBcCisg
ICAgbWFjcm8oWFJGcmFtZSkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2UpIFwKKyAgICBtYWNy
byhYUklucHV0U291cmNlQXJyYXkpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlRXZlbnQpIFwK
KyAgICBtYWNybyhYUklucHV0U291cmNlc0NoYW5nZUV2ZW50KSBcCisgICAgbWFjcm8oWFJQb3Nl
KSBcCisgICAgbWFjcm8oWFJSZWZlcmVuY2VTcGFjZSkgXAorICAgIG1hY3JvKFhSUmVmZXJlbmNl
U3BhY2VFdmVudCkgXAorICAgIG1hY3JvKFhSUmVuZGVyU3RhdGUpIFwKKyAgICBtYWNybyhYUlJp
Z2lkVHJhbnNmb3JtKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uKSBcCisgICAgbWFjcm8oWFJTZXNz
aW9uRXZlbnQpIFwKKyAgICBtYWNybyhYUlNwYWNlKSBcCisgICAgbWFjcm8oWFJTeXN0ZW0pIFwK
KyAgICBtYWNybyhYUlZpZXcpIFwKKyAgICBtYWNybyhYUlZpZXdlclBvc2UpIFwKKyAgICBtYWNy
byhYUlZpZXdwb3J0KSBcCisgICAgbWFjcm8oWFJXZWJHTExheWVyKSBcCiAgICAgbWFjcm8oYXBw
ZW5kRnJvbUpTKSBcCiAgICAgbWFjcm8oYXNzb2NpYXRlZFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRy
b2xsZXIpIFwKICAgICBtYWNybyhhdXRvQWxsb2NhdGVDaHVua1NpemUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCmluZGV4IGQ0OTYwYjljZjc1MWY0MTE0MjJiNjcwODQxYTA1YjhiZDJjNzFjMjgu
LmY4YzFkMzVhZmNkYTM5ZDM0YTZlZWE3MzU3Y2M4YzM0OGJjYWRmODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBt
YWNybyhpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKGluYWN0aXZlKSBcCiAg
ICAgbWFjcm8oaW5wdXQpIFwKKyAgICBtYWNybyhpbnB1dHNvdXJjZXNjaGFuZ2UpIFwKICAgICBt
YWNybyhpbnN0YWxsKSBcCiAgICAgbWFjcm8oaW52YWxpZCkgXAogICAgIG1hY3JvKGtleWRvd24p
IFwKQEAgLTIzMSw2ICsyMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oc2Vl
a2VkKSBcCiAgICAgbWFjcm8oc2Vla2luZykgXAogICAgIG1hY3JvKHNlbGVjdCkgXAorICAgIG1h
Y3JvKHNlbGVjdGVuZCkgXAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkgXAogICAgIG1hY3Jv
KHNlbGVjdHN0YXJ0KSBcCiAgICAgbWFjcm8oc2hpcHBpbmdhZGRyZXNzY2hhbmdlKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDE1N2YzMzFjMWJhNzNjMTBkNWQzMzQ5NmFkMjVmZTY1
M2E3YzUxYTIuLmM3OTNlM2Y2NjJjNmMzZWQ4ZWM1NTJlYTM4M2FjOTZmYzlmYTA5ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC04NSwzICs4NSw3IEBAIE1lZGlhS2V5TWVzc2FnZUV2
ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQogUG9pbnRlckV2ZW50IGNvbmRpdGlvbmFs
PVBPSU5URVJfRVZFTlRTCiBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudCBjb25kaXRpb25hbD1XRUJH
UFUKIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50IGNvbmRpdGlvbmFsPVBJQ1RVUkVfSU5fUElD
VFVSRV9BUEkKK1hSSW5wdXRTb3VyY2VFdmVudCBjb25kaXRpb25hbD1XRUJHTAorWFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudCBjb25kaXRpb25hbD1XRUJHTAorWFJSZWZlcmVuY2VTcGFjZUV2ZW50
IGNvbmRpdGlvbmFsPVdFQkdMCitYUlNlc3Npb25FdmVudCBjb25kaXRpb25hbD1XRUJHTApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggODFlN2NjOWYwYjc2NTA1
NjJhYWJmZWZlMDVhNWEzYWQxYmJiYjhmZi4uZWIwYWUwMDY2ODNhODdkYjdmM2I4NGM1NWQxNDBh
NDc5N2I4M2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFj
dG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBA
IC01OCw0ICs1OCw3IEBAIFdvcmtlcgogV29ya2xldEdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPUNT
U19QQUlOVElOR19BUEkKIFhNTEh0dHBSZXF1ZXN0CiBYTUxIdHRwUmVxdWVzdFVwbG9hZAorWFJT
ZXNzaW9uIGNvbmRpdGlvbmFsPVdFQkdMCitYUlNwYWNlIGNvbmRpdGlvbmFsPVdFQkdMCitYUlN5
c3RlbSBjb25kaXRpb25hbD1XRUJHTAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCmluZGV4IGFhMjliODM1NWZiNThlMTMxMTE0MDQ1MTZjNDA2NzAxMzc4
YTFiMjAuLjg4YjJkY2Q3YTZhYjZkNjQ5NDY0NmYzM2JlNzEyNzg1NTYwNzdjMWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0xMzgsNiArMTM4
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChib29s
IGlzRW5hYmxlZCkgeyBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0K
ICAgICBib29sIGluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lu
c3BlY3RvckFkZGl0aW9uc0VuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0V2ViWFJFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1fd2ViWFJFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB3
ZWJYUkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYlhSRW5hYmxlZDsgfQorCiAgICAgdm9p
ZCBzZXRBY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1f
YWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wg
YWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNz
aWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZDsgfQogCkBAIC00NDEsNiArNDQ0LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faXNXZWJTb2NrZXRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9m
ZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbnNwZWN0b3JB
ZGRpdGlvbnNFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2ViWFJFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fYWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2FyaWFSZWZsZWN0aW9uRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29s
IG1faXRwRGVidWdNb2RlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxh
dGZvcm1YUi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcyNjhlZTY3N2EzNzlhNmJmNTUxNzBiOTkwNGYzM2Ji
ZTc3MWFmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1Bs
YXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhLCBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTAyOTMw
MmI2MDkwOTJlOGQ3ZDYzMjkzZTIwYmMxMWIzMjdiYzU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhLCBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBQbGF0Zm9y
bVhSIHsKKworZW51bSBjbGFzcyBTZXNzaW9uTW9kZSB7CisgICAgSW5saW5lLAorICAgIEltbWVy
c2l2ZVZyLAorICAgIEltbWVyc2l2ZUFyLAorfTsKKworY2xhc3MgRGV2aWNlIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPERldmljZT4geworcHVibGljOgorfTsKKworY2xhc3MgSW5zdGFuY2Ugewor
cHVibGljOgorICAgIHN0YXRpYyBJbnN0YW5jZSYgc2luZ2xldG9uKCk7CisKK3ByaXZhdGU6Cisg
ICAgSW5zdGFuY2UoKTsKKyAgICB+SW5zdGFuY2UoKTsKKworICAgIHN0cnVjdCBJbXBsOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbXBsPiBtX2ltcGw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBQbGF0
Zm9ybVhSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxh
dGZvcm1YUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1Y
Ui5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGU4YzIyYjY5ZmJmYTA2ZDk1MmY2OTM1MWEyMWQ1OTJhMWQ4MzRm
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9Q
bGF0Zm9ybVhSLmNwcApAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5o
IgorCisjaWYgVVNFX09QRU5YUgorI2luY2x1ZGUgPG9wZW54ci9vcGVueHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKyNlbmRpZiAvLyBVU0VfT1BFTlhSCisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBQbGF0Zm9ybVhSIHsKKworI2lmIFVTRV9PUEVOWFIK
KwordGVtcGxhdGU8dHlwZW5hbWUgVCwgWHJTdHJ1Y3R1cmVUeXBlIFN0cnVjdHVyZVR5cGU+CitU
IGNyZWF0ZVN0cnVjdHVyZSgpCit7CisgICAgVCBvYmplY3Q7CisgICAgc3RkOjptZW1zZXQoJm9i
amVjdCwgMCwgc2l6ZW9mKFQpKTsKKyAgICBvYmplY3QudHlwZSA9IFN0cnVjdHVyZVR5cGU7Cisg
ICAgb2JqZWN0Lm5leHQgPSBudWxscHRyOworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cmlu
ZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBpbnN0YW5jZSkKK3sK
KyAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKKyAgICBYclJlc3Vs
dCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVmZmVyKTsKKyAg
ICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVy
KTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsK
K30KKworI2RlZmluZSBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgY2FsbCwgaW5zdGFuY2UpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
aWYgKFhSX0ZBSUxFRChyZXN1bHQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCIlcyAlczogJXNcbiIsIF9fZnVuY19fLCBjYWxsLCByZXN1bHRUb1N0cmluZyhyZXN1
bHQsIGluc3RhbmNlKS51dGY4KCkuZGF0YSgpKTsgXAorICAgICAgICByZXR1cm47ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKworI2VuZGlmIC8vIFVTRV9PUEVOWFIKKworc3RydWN0IEluc3RhbmNlOjpJ
bXBsIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBJbXBsKCk7
CisgICAgfkltcGwoKTsKKworI2lmIFVTRV9PUEVOWFIKKyAgICBYckluc3RhbmNlIG1faW5zdGFu
Y2UgeyBYUl9OVUxMX0hBTkRMRSB9OworI2VuZGlmIC8vIFVTRV9PUEVOWFIKK307CisKK0luc3Rh
bmNlOjpJbXBsOjpJbXBsKCkKK3sKKyNpZiBVU0VfT1BFTlhSCisgICAgV1RGTG9nQWx3YXlzKCJP
cGVuWFI6IGluaXRpYWxpemluZ1xuIik7CisKKyAgICBbJl0geworICAgICAgICB1aW50MzJfdCBw
cm9wZXJ0eUNvdW50T3V0cHV0IHsgMCB9OworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckVu
dW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygwLCAmcHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0
cik7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXll
clByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIGlmICghcHJvcGVydHlDb3Vu
dE91dHB1dCkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUFwaUxheWVy
UHJvcGVydGllcygpOiBubyBwcm9wZXJ0aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIFZlY3RvcjxYckFwaUxheWVyUHJvcGVydGllcz4gcHJvcGVydGll
cyhwcm9wZXJ0eUNvdW50T3V0cHV0KTsKKyAgICAgICAgcmVzdWx0ID0geHJFbnVtZXJhdGVBcGlM
YXllclByb3BlcnRpZXMocHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0ciwgcHJvcGVydGllcy5k
YXRhKCkpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlQXBp
TGF5ZXJQcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBXVEZMb2dBbHdheXMo
InhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCk6ICV6dSBwcm9wZXJ0aWVzXG4iLCBwcm9w
ZXJ0aWVzLnNpemUoKSk7CisgICAgfSgpOworCisgICAgWyZdIHsKKyAgICAgICAgdWludDMyX3Qg
cHJvcGVydHlDb3VudE91dHB1dCB7IDAgfTsKKyAgICAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJF
bnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMobnVsbHB0ciwgMCwgJnByb3BlcnR5
Q291bnRPdXRwdXQsIG51bGxwdHIpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwg
InhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsK
KworICAgICAgICBpZiAoIXByb3BlcnR5Q291bnRPdXRwdXQpIHsKKyAgICAgICAgICAgIFdURkxv
Z0Fsd2F5cygieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKTogbm8gcHJv
cGVydGllc1xuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBW
ZWN0b3I8WHJFeHRlbnNpb25Qcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRw
dXQsCisgICAgICAgICAgICBbXSB7CisgICAgICAgICAgICAgICAgWHJFeHRlbnNpb25Qcm9wZXJ0
aWVzIG9iamVjdDsKKyAgICAgICAgICAgICAgICBzdGQ6Om1lbXNldCgmb2JqZWN0LCAwLCBzaXpl
b2YoWHJFeHRlbnNpb25Qcm9wZXJ0aWVzKSk7CisgICAgICAgICAgICAgICAgb2JqZWN0LnR5cGUg
PSBYUl9UWVBFX0VYVEVOU0lPTl9QUk9QRVJUSUVTOworICAgICAgICAgICAgICAgIHJldHVybiBv
YmplY3Q7CisgICAgICAgICAgICB9KCkpOworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50
V3JpdHRlbiB7IDAgfTsKKyAgICAgICAgcmVzdWx0ID0geHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVu
c2lvblByb3BlcnRpZXMobnVsbHB0ciwgcHJvcGVydHlDb3VudE91dHB1dCwgJnByb3BlcnR5Q291
bnRXcml0dGVuLCBwcm9wZXJ0aWVzLmRhdGEoKSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQo
cmVzdWx0LCAieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5z
dGFuY2UpOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVu
c2lvblByb3BlcnRpZXMoKTogJXp1IGV4dGVuc2lvbiBwcm9wZXJ0aWVzXG4iLCBwcm9wZXJ0aWVz
LnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgcHJvcGVydHkgOiBwcm9wZXJ0aWVzKSB7Cisg
ICAgICAgICAgICBXVEZMb2dBbHdheXMoIiAgZXh0ZW5zaW9uICclcycsIHZlcnNpb24gJXVcbiIs
CisgICAgICAgICAgICAgICAgcHJvcGVydHkuZXh0ZW5zaW9uTmFtZSwgcHJvcGVydHkuZXh0ZW5z
aW9uVmVyc2lvbik7CisgICAgICAgIH0KKyAgICB9KCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciogc19hcHBsaWNhdGlvbk5hbWUgPSAiV2ViWFIgKFdlYktpdCkiOworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBzX2FwcGxpY2F0aW9uVmVyc2lvbiA9IDE7CisKKyAgICB7CisgICAgICAgIGF1
dG8gY3JlYXRlSW5mbyA9IGNyZWF0ZVN0cnVjdHVyZTxYckluc3RhbmNlQ3JlYXRlSW5mbywgWFJf
VFlQRV9JTlNUQU5DRV9DUkVBVEVfSU5GTz4oKTsKKyAgICAgICAgY3JlYXRlSW5mby5jcmVhdGVG
bGFncyA9IDA7CisgICAgICAgIHN0ZDo6bWVtY3B5KGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZv
LmFwcGxpY2F0aW9uTmFtZSwgc19hcHBsaWNhdGlvbk5hbWUsIFhSX01BWF9BUFBMSUNBVElPTl9O
QU1FX1NJWkUpOworICAgICAgICBjcmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5mby5hcGlWZXJzaW9u
ID0gWFJfQ1VSUkVOVF9BUElfVkVSU0lPTjsKKyAgICAgICAgY3JlYXRlSW5mby5hcHBsaWNhdGlv
bkluZm8uYXBwbGljYXRpb25WZXJzaW9uID0gc19hcHBsaWNhdGlvblZlcnNpb247CisgICAgICAg
IGNyZWF0ZUluZm8uZW5hYmxlZEFwaUxheWVyQ291bnQgPSAwOworICAgICAgICBjcmVhdGVJbmZv
LmVuYWJsZWRFeHRlbnNpb25Db3VudCA9IDA7CisKKyAgICAgICAgWHJJbnN0YW5jZSBpbnN0YW5j
ZTsKKyAgICAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJDcmVhdGVJbnN0YW5jZSgmY3JlYXRlSW5m
bywgJmluc3RhbmNlKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckNyZWF0
ZUluc3RhbmNlKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBtX2luc3RhbmNlID0gaW5zdGFu
Y2U7CisgICAgICAgIFdURkxvZ0Fsd2F5cygieHJDcmVhdGVJbnN0YW5jZSgpOiB1c2luZyBpbnN0
YW5jZSAlcFxuIiwgbV9pbnN0YW5jZSk7CisgICAgfQorI2VuZGlmIC8vIFVTRV9PUEVOWFIKK30K
KworSW5zdGFuY2U6OkltcGw6On5JbXBsKCkKK3sKK30KKworSW5zdGFuY2UmIEluc3RhbmNlOjpz
aW5nbGV0b24oKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SW5zdGFuY2U+IHNf
aW5zdGFuY2U7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIHNfb25jZUZsYWc7CisgICAgc3Rk
OjpjYWxsX29uY2Uoc19vbmNlRmxhZywKKyAgICAgICAgWyZdIHsKKyAgICAgICAgICAgIHNfaW5z
dGFuY2UtPm1faW1wbCA9IG1ha2VVbmlxdWU8SW1wbD4oKTsKKyAgICAgICAgfSk7CisgICAgcmV0
dXJuIHNfaW5zdGFuY2UuZ2V0KCk7Cit9CisKK0luc3RhbmNlOjpJbnN0YW5jZSgpID0gZGVmYXVs
dDsKK0luc3RhbmNlOjp+SW5zdGFuY2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFBs
YXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDUw
MTA0YTljOWJiY2FhOTgyZmQyZjNkNzFhYTIzZjVhM2Y2ZWU5OGEuLmZiNDk0YjgwZGJlZjFhNDE2
NjdhNGU3ZmU3NGJiZWY4NDhjYWIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbApAQCAtMTk3NSw2ICsxOTc1LDE1IEBAIFdlYlNoYXJlRmlsZUFQSUVuYWJsZWQ6
CiAgICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgICBjYXRlZ29y
eTogZXhwZXJpbWVudGFsCiAKK1dlYlhSRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViWFIgRGV2aWNlIEFQSSIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWRkcyBzdXBwb3J0IGZvciBhY2Nlc3Npbmcgdmly
dHVhbCByZWFsaXR5IChWUikgYW5kIGF1Z21lbnRlZCByZWFsaXR5IChBUikgZGV2aWNlcywgaW5j
bHVkaW5nIHNlbnNvcnMgYW5kIGhlYWQtbW91bnRlZCBkaXNwbGF5cywgb24gdGhlIFdlYiIKKyAg
Y2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRG
ZWF0dXJlcworICBjb25kaXRpb246IEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oV1BFKQorCiAj
IERlcHJlY2F0ZWQKIAogSUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIu
Y21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmJmZGYwNGMxMWVkZDAzOTAwZmM0YzE0MmNlNzZhNjYxNDgzMGY2
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCkBAIC0w
LDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8gZmluZCBPcGVuWFIuCisjIE9uY2UgZG9uZSwgdGhpcyB3
aWxsIGRlZmluZQorIworIyAgT1BFTlhSX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBPUEVO
WFJfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBPUEVOWFJf
TElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTkgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAor
IyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2No
ZWNrX21vZHVsZXMoUENfT1BFTlhSIFFVSUVUIG9wZW54cikKKworZmluZF9wYXRoKE9QRU5YUl9J
TkNMVURFX0RJUlMKKyAgICBOQU1FUyBvcGVueHIvb3BlbnhyLmgKKyAgICBISU5UUyAke1BDX09Q
RU5YUl9JTkNMVURFRElSfSAke1BDX09QRU5YUl9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGli
cmFyeShPUEVOWFJfTElCUkFSSUVTCisgICAgTkFNRVMgb3BlbnhyX2xvYWRlcgorICAgIEhJTlRT
ICR7UENfT1BFTlhSX0xJQkRJUn0gJHtQQ19PUEVOWFJfTElCUkFSWV9ESVJTfQorKQorCittYXJr
X2FzX2FkdmFuY2VkKE9QRU5YUl9JTkNMVURFX0RJUlMgT1BFTlhSX0xJQlJBUklFUykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVf
c3RhbmRhcmRfYXJncyhPcGVuWFIgUkVRVUlSRURfVkFSUyBPUEVOWFJfSU5DTFVERV9ESVJTIE9Q
RU5YUl9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IDFhYmU5NTMyMGQ1YTYzNzhj
ZjJhN2QwOWFhOWZmOGQ0YTdhMDRjNGMuLjk2NzU2OGJlZGI5ZDJmNzY0Zjc0N2FmZDMzODY0NjBk
ZDMxZTU2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCkBAIC0xNzIsNiArMTcyLDkgQEAgaWYgKEVO
QUJMRV9XUEVfUVRfQVBJIE9SIFVTRV9XUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAg
ICAgZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQtZmRvIDEuNS4wIFJFUVVJUkVEKQogZW5kaWYgKCkK
IAorZmluZF9wYWNrYWdlKE9wZW5YUikKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVO
WFIgJHtPUEVOWFJfRk9VTkR9KQorCiBhZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0x
KQogYWRkX2RlZmluaXRpb25zKC1ER0VUVEVYVF9QQUNLQUdFPSJXUEUiKQogYWRkX2RlZmluaXRp
b25zKC1ESlNDX0dMSUJfQVBJX0VOQUJMRUQpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu
Z2VMb2cKaW5kZXggOGY4NTAxMjM2MDQ5MjA1M2ZkMDMzYWRjNWRkNmQ4ZGQxYjE3YTlkZC4uMGJh
MmVjNDE2MTJmZDhmNmZlYTU3NWE0ZTY5ODUwNTNmNmNkZDQ0ZiAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAzLTA2ICBTZXJnaW8g
VmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURM
cywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgT3BlblhSIGRldGVjdGlvbiBh
bmQgVVNFX09QRU5YUiBkZWZpbmUgdG8gYmUgdXNlZCBpbiB0aGUgc291cmNlcy4KKyAgICAgICAg
SXQgYWxzbyBhZGRzIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIFVTRV9PUEVOWFIgYW5kIEVOQUJMRV9X
RUJHTC4KKworICAgICAgICBMYXJnZWx5IGJhc2VkIG9uIHByZXZpb3VzIHdvcmsgYnkgxb1hbiBE
b2JlcsWhZWsuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZTogQWRk
ZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMjAtMDMt
MDMgIEZ1amlpIEhpcm9ub3JpICA8ZnVqaWkuaGlyb25vcmlAZ21haWwuY29tPgogCiAgICAgICAg
IFtDdXJsXSBBZGQgVExTIGRlYnVnZ2luZyBmZWF0dXJlIHRvIGxvZyBlbmNyeXB0aW9uIGtleXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393218</attachid>
            <date>2020-03-11 04:07:12 -0700</date>
            <delta_ts>2020-03-11 09:21:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208702-20200311120709.patch</filename>
            <type>text/plain</type>
            <size>266460</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5NzEyZjYwZWYyMzNhNDE0NzllMGNk
ZDViYmZjMzg5MmUxNTU5ODIuLmM1MmI1MzA1MjM1ZTYyZGYxODhjNjE1YzI0NmM2YjBkMGU2Mjg4
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQg
YnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBEZWZpbmUgVVNFX09QRU5YUiAo
ZGlzYWJsZWQpIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBieSB0aGUgYnVpbGQgc3lzdGVtIGp1c3Qg
aW4gY2FzZQorICAgICAgICBFTkFCTEVfV0VCR0wgaXMgZGVmaW5lZCBhbmQgYWN0aXZlLgorCisg
ICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOgorCiAyMDIwLTAzLTAzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgRml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2OWQyYmJkOTFm
ZDVmNTFiOTZmNjA1ZjVjY2JiOTdjMTkxZDkyOC4uMThjNjcwYWQxMDNiMGY4MzMxZjc3OGNlODE3
YzRkNDk2NmU5ZGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxNSBAQAorMjAyMC0wMy0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
WFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBJRExzIGRl
ZmluZWQgYnkgdGhlIHNwZWMgd2l0aCB2ZXJ5IGJhc2ljIGVtcHR5IGltcGxlbWVudGF0aW9ucyB0
byBnZXQgdGhlbQorICAgICAgICBidWlsdC4gQXBhcnQgZnJvbSB0aGF0IGEgdmVyeSBiYXNpYyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVxdWlyZWQgcGxhdGZvcm0gY29kZSB1c2luZworICAgICAg
ICBPcGVuWFIgQVBJIHdhcyBhbHNvIGFkZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBu
byBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgcmVhbGx5IGFkZGVkIChlbXB0eSBpbXBsZW1lbnRhdGlv
bnMpLiBIb3dldmVyCisgICAgICAgIGZvbGxvdyB1cCBwYXRjaGVzIHdpbGwgaW1wb3J0IHRoZSBh
bHJlYWR5IGF2YWlsYWJsZSBXUFQgdGVzdHMgZm9yIFdlYlhSLgorCisgICAgICAgIExhcmdlbHkg
YmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdG9yV2ViWFI6OnhyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcldlYlhS
Ojpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Ym91bmRzR2VvbWV0
cnkgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRXllLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhS
RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpYUkZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSRnJhbWU6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJGcmFtZTo6Z2V0Vmlld2VyUG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpn
ZXRQb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJIYW5kZWRuZXNzLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6WFJJbnB1dFNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpoYW5kZWRuZXNzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnRhcmdldFJheU1vZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnByb2ZpbGVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlQXJyYXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3Vy
Y2VBcnJheTo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VB
cnJheTo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
QXJyYXkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJy
YXkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXgg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ6OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSUG9zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJQ
b3NlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJQb3NlOjpYUlBvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJQb3NlOjp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
WFJQb3NlOjplbXVsYXRlZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSUG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VTcGFjZTo6WFJSZWZlcmVuY2VTcGFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VT
cGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnJlZmVyZW5jZVNw
YWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VFdmVudDo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZVR5cGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
VHlwZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6ZGVwdGhOZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
UmVuZGVyU3RhdGU6OmlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUlJlbmRlclN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlSW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVy
U3RhdGVJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJh
bnNmb3JtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6WFJSaWdpZFRyYW5z
Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpvcmllbnRhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjptYXRyaXggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6aW52ZXJzZSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNl
c3Npb246OmVudmlyb25tZW50QmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
U2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vz
c2lvbjo6cmVuZGVyU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjpp
bnB1dFNvdXJjZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjp1cGRhdGVS
ZW5kZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVu
Y2VTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OmNhbmNlbEFuaW1hdGlvbkZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlhSU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpYUlNlc3Npb246OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WFJTZXNzaW9uRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpY
UlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNz
aW9uRXZlbnQ6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNz
aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlNwYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNwYWNl
OjpYUlNwYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3BhY2UuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJTeXN0
ZW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlN5c3RlbTo6WFJTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6WFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBvcnRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUlN5c3RlbTo6cmVxdWVzdFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6WFJT
eXN0ZW06OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJT
eXN0ZW06OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9YUlZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6WFJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlhSVmlldzo6ZXllIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6cHJvamVjdGlv
bk1hdHJpeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OnRyYW5zZm9ybSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSVmlld2VyUG9zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3ZXJQb3Nl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3ZXJQb3NlOjp2aWV3cyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSVmll
d3BvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0Ojp4IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OnkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3cG9ydDo6d2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3cG9y
dDo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhSV2ViR0xMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXll
cjo6WFJXZWJHTExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6YW50aWFs
aWFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6aWdub3JlRGVwdGhW
YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVyV2lk
dGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlckhl
aWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmdldFZpZXdwb3J0
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6Z2V0TmF0aXZlRnJhbWVidWZmZXJT
Y2FsZUZhY3Rvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbDogQWRkZWQuCisgICAgICAgICog
UGxhdGZvcm1XUEUuY21ha2U6IEFkZCBPcGVuWFIgaW5jbHVkZXMgYW5kIGxpYnMuCisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoK
KyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDogQWRkZWQgV2ViWFIgZmVh
dHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhS
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJY
UkVuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgIChQ
bGF0Zm9ybVhSOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoUGxhdGZvcm1YUjo6cmVzdWx0
VG9TdHJpbmcpOgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6OkltcGwpOgor
ICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6On5JbXBsKToKKyAgICAgICAgKFBs
YXRmb3JtWFI6Okluc3RhbmNlOjpzaW5nbGV0b24pOgorCiAyMDIwLTAzLTA0ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVz
ZSByZXN0b3JlIHZpZXcgaWNvbiBmb3IgZXhpdCBmdWxsc2NyZWVuIGJ1dHRvbiBpbiBtZWRpYSBj
b250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA3ZjQ5NzdmMzcyNzA2ZDMzMGFhZWYxYzM5MzM1MDBhYzQwNjQy
OTI1Li5iY2UyYjg0ZmY5MTc5YTE5YjIxYmFiMTAyMDhlYWNlMGUyYzU2NTQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA2ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNv
bmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLF
oWVrLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6IEFkZGVkIGluZm8g
YWJvdXQgdGhlIFdlYlhSIGltcGxlbWVudGF0aW9uIHN0YXR1cy4KKwogMjAyMC0wMy0wMyAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
cmUtYWRkIGBJbnNwZWN0b3JGcm9udGVuZEhvc3RgIHN1cHBvcnQgZm9yIG1vdmluZyB0aGUgaW5z
cGVjdGVkIHdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZGVkZmExNGQ1YTVkZGRhODRlMzM1YmZkNDg1
ZTc1NTA5N2ZhZWM1Ny4uZGFhN2QzNjNhNTRlMjI0MzJkYjQ5ZTc4MWM4MzExMzcyNWFkYzMwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCkBAIC0xODAsNiArMTgwLDEwIEBACiAjaWYgKFVTRV9BTkdMRSAmJiAoVVNF
X09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wp
KSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRp
YmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAogI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChVU0VfT1BFTlhSKQorI2RlZmluZSBVU0VfT1BFTlhSIDAKKyNlbmRpZgog
I2VuZGlmCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05U
RVhUX0dMKSAmJiAhZGVmaW5lZChVU0VfVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDM3Y2IxYmVlNDljN2U5NTVhNzEyNGQxZTJkNmFlOWNkMTU1YzA3OWIuLmE5MjZm
MmI3NDcyZDk2YzEyNTM2OTA1MDk4N2UwN2UwZTI2MjlkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMTc5LDYgKzExNzksNDcgQEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICkKIGVuZGlm
ICgpCiAKK2lmIChFTkFCTEVfV0VCR0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRF
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2Vi
eHIiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS94ciIKKyAgICApCisKKyAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvTmF2aWdhdG9yV2ViWFIuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5k
TW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkV5ZS5pZGwKKyAgICAgICAgTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0
Q2FsbGJhY2suaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbAorICAg
ICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBNb2R1
bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbAorICAg
ICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSVGFyZ2V0UmF5TW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlkbAorICAgICAgICBNb2R1bGVzL3dl
YnhyL1hSVmlld3BvcnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3Rh
dGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCisgICAgKQorZW5kaWYgKCkKKwogc2V0
KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgJHtXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTfQogICAg
ICR7V2ViQ29yZV9TVkdfSURMX0ZJTEVTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggNWJhMjZiODA4MmRlNjg5MDFjMmUxMjY2MmY2NDc0YTg2NzA3MjQyMy4uZjk1NjcxNWM1NmQy
Y2M3MzQ1YjgxMjk5ZGVhM2QyY2U1MWU0MWEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC02NCw2ICs2NCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJkcml2ZXIgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJzb2NrZXRzIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIgXAog
ICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24g
XAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXApAQCAtNDYwLDYgKzQ2MSwzNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZp
Z2F0b3JHUFUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJFeWUuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VBcnJheS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlBvc2Uu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25Jbml0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbk1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIvWFJWaWV3LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhy
L1hSVmlld2VyUG9zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlZpZXdw
b3J0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllci5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSb2xlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2ZhMmI4MjY5ZWE0ZWU1ZGE2
NDZiODk1N2Y1NWExZTRmZGU5MmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIK
KworI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworWFJTeXN0ZW0mIE5hdmlnYXRvcldlYlhSOjp4cihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBOYXZpZ2F0b3ImIG5hdmlnYXRv
ck9iamVjdCkKK3sKKyAgICBhdXRvJiBuYXZpZ2F0b3IgPSBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShu
YXZpZ2F0b3JPYmplY3QpOworICAgIGlmICghbmF2aWdhdG9yLm1feHIpCisgICAgICAgIG5hdmln
YXRvci5tX3hyID0gWFJTeXN0ZW06OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAg
ICByZXR1cm4gKm5hdmlnYXRvci5tX3hyOworfQorCitOYXZpZ2F0b3JXZWJYUiYgTmF2aWdhdG9y
V2ViWFI6OmZyb20oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCit7CisgICAgYXV0byogc3VwcGxlbWVu
dCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvcldlYlhSKj4oU3VwcGxlbWVudDxOYXZpZ2F0b3I+Ojpm
cm9tKCZuYXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQp
IHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gbWFrZVVuaXF1ZTxOYXZpZ2F0b3JXZWJY
Uj4oKTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAg
IHByb3ZpZGVUbygmbmF2aWdhdG9yLCAiTmF2aWdhdG9yV2ViWFIiLCBXVEZNb3ZlKG5ld1N1cHBs
ZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuICpzdXBwbGVtZW50OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05h
dmlnYXRvcldlYlhSLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldl
YlhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjZjMGY5OGU0OTgxMDMyZWIyNmRhMzExYTFlY2M0ODM1N2YzOWNm
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF2aWdhdG9yOworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKK2NsYXNzIFhSU3lzdGVtOworCitjbGFzcyBOYXZpZ2F0b3JXZWJYUiBm
aW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4geworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBYUlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBOYXZpZ2F0
b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3ImKTsKKworICAgIFJlZlB0cjxYUlN5c3RlbT4gbV94cjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUzZWNmOTU5NGQyYzRmNDA2
OTMyOWM5M2ViZjQ2YmE1ZmZlNmNhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9
V0VCR0wKK10gcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKKyAgICBbU2VjdXJlQ29udGV4
dCwgU2FtZU9iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkg
YXR0cmlidXRlIFhSU3lzdGVtIHhyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUz
MDdiZjc3OTNhMWViMmVmNDI2NmRiMjc5OWFkMzhlNDkzNmVkYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3Bw
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIFhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYm91bmRzR2Vv
bWV0cnk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjVjOGU5NWRkZDVjMzk5NDU1MjY1MTgyYzAwYzYzYzExMzUxOWRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01Qb2ludFJl
YWRPbmx5OworCitjbGFzcyBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBYUlJlZmVy
ZW5jZVNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5kc0dl
b21ldHJ5KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRP
bmx5Pj4gbV9ib3VuZHNHZW9tZXRyeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM3NjRjOTY3YzQyMWQxNDVkYzQ4ZTVkMzUzMmQwZGU1
OTA2NjNiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UgOiBYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NUG9pbnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50
QmxlbmRNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWZhYzFlYzgwYjAyMjE0Zjk5YWEyZjJhNzkwYjU1OTc5
Y2I5YWU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkVudmlyb25tZW50QmxlbmRNb2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52aXJv
bm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBoYUJs
ZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NDk1MTNjY2MzYTVmNDRjMjgwNTcxNTdhOWFhNTQ5OGViYTA0MWM2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2Rl
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisgICAgImFkZGl0aXZlIiwKKyAgICAiYWxwaGEtYmxl
bmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZTcw
ZTU0NDQzNTY0MjYxZDM3OWM5MzBiOWQ1OTlkOTIxMmJmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNs
YXNzIFhSRXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAgUmlnaHQsCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMyNjlhMGY1MTIwNGQ4ODI2Yjk5OWRkYTFmMDIxNDgzNTQyYmIxZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhS
LAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJFeWUgeworICAgICJub25lIiwKKyAg
ICAibGVmdCIsCisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNTA0YWQxYzk3NjNkYWJkM2U1ODY4ZDMwMzI5ODQ4YTdk
NDExYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWUuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlhSRnJhbWUuaCIKKworI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgIlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhS
RnJhbWUpOworCitSZWY8WFJGcmFtZT4gWFJGcmFtZTo6Y3JlYXRlKFJlZjxYUlNlc3Npb24+JiYg
c2Vzc2lvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUkZyYW1lKFdURk1vdmUoc2Vz
c2lvbikpKTsKK30KKworWFJGcmFtZTo6WFJGcmFtZShSZWY8WFJTZXNzaW9uPiYmIHNlc3Npb24p
CisgICAgOiBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sKK30KKworWFJGcmFtZTo6flhS
RnJhbWUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSU2Vzc2lvbiYgWFJGcmFtZTo6c2Vzc2lvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFhSVmlld2VyUG9z
ZT4gWFJGcmFtZTo6Z2V0Vmlld2VyUG9zZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlJikKK3sKKyAg
ICByZXR1cm4geyB9OworfQorCitSZWZQdHI8WFJQb3NlPiBYUkZyYW1lOjpnZXRQb3NlKGNvbnN0
IFhSU3BhY2UmLCBjb25zdCBYUlNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyOWJhNTA1MjYzZDUzZTk4YzUwMzY4YjQ0NWU0ZmVjOTM3NTNjNDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBYUlBvc2U7CitjbGFzcyBYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgWFJTZXNzaW9u
OworY2xhc3MgWFJTcGFjZTsKK2NsYXNzIFhSVmlld2VyUG9zZTsKKworY2xhc3MgWFJGcmFtZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFhSRnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KFhSRnJhbWUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJGcmFtZT4gY3JlYXRlKFJlZjxY
UlNlc3Npb24+JiYpOworICAgIH5YUkZyYW1lKCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNl
c3Npb24oKSBjb25zdDsKKworICAgIFJlZlB0cjxYUlZpZXdlclBvc2U+IGdldFZpZXdlclBvc2Uo
Y29uc3QgWFJSZWZlcmVuY2VTcGFjZSYpOworICAgIFJlZlB0cjxYUlBvc2U+IGdldFBvc2UoY29u
c3QgWFJTcGFjZSYsIGNvbnN0IFhSU3BhY2UmKTsKKworcHJpdmF0ZToKKyAgICBYUkZyYW1lKFJl
ZjxYUlNlc3Npb24+JiYpOworCisgICAgUmVmPFhSU2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTI2MTBkZWNlODg4Mjc5ODUxZTAyNzQzYzE3MTIyOTM3NzBmM2Q1
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50
ZXJmYWNlIFhSRnJhbWUgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJT
ZXNzaW9uIHNlc3Npb247CisKKyAgICBYUlZpZXdlclBvc2U/IGdldFZpZXdlclBvc2UoWFJSZWZl
cmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZSk7CisgICAgWFJQb3NlPyBnZXRQb3NlKFhSU3BhY2Ug
c3BhY2UsIFhSU3BhY2UgYmFzZVNwYWNlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NThm
ZGMyMDQzNzgxZmE2Zjk5NzhiYzJiZDdkZWM4NDIwZWI0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJGcmFt
ZTsKKworY2xhc3MgWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFhS
RnJhbWVSZXF1ZXN0Q2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGlj
OgorICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKKworICAg
IHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoZG91YmxlIGhpZ2hSZXNU
aW1lTXMsIFhSRnJhbWUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxi
YWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMTFkNGJkMmM1ODZiMTA1NmEzN2QxMjJjNjRmZWQxOTgwOWFl
NTA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZy
YW1lUmVxdWVzdENhbGxiYWNrLmlkbApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5
cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK2NhbGxiYWNrIFhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2sgPSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUsIFhSRnJhbWUgZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5l
c3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTI3YWEzOWIzZGUyZjdmODYyOTVhZTkzYTgxZjQ3MzFkYzljZDc0YgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSSGFuZGVkbmVzcyB7CisgICAgTm9uZSwKKyAgICBMZWZ0
LAorICAgIFJpZ2h0LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZmNiNTZk
MGY4NzI4YjU2MTRkY2MyZTAyOTFkMjcwYWYyOGYxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJHTAorXSBlbnVtIFhSSGFuZGVkbmVzcyB7CisgICAgIm5vbmUiLAorICAgICJs
ZWZ0IiwKKyAgICAicmlnaHQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiYjQyMmI3ODVhZDMyYWM0MWUxMWM5Yjg3
YzM3ZDdmYWU4ZjliMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZS5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZS5oIgorCisjaW5jbHVk
ZSAiWFJTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSSW5wdXRTb3Vy
Y2UpOworCitSZWY8WFJJbnB1dFNvdXJjZT4gWFJJbnB1dFNvdXJjZTo6Y3JlYXRlKFJlZjxYUlNw
YWNlPiYmIHRhcmdldFJheVNwYWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSSW5w
dXRTb3VyY2UoV1RGTW92ZSh0YXJnZXRSYXlTcGFjZSkpKTsKK30KKworWFJJbnB1dFNvdXJjZTo6
WFJJbnB1dFNvdXJjZShSZWY8WFJTcGFjZT4mJiB0YXJnZXRSYXlTcGFjZSkKKyAgICA6IG1faGFu
ZGVkbmVzcyhYUkhhbmRlZG5lc3M6Ok5vbmUpCisgICAgLCBtX3RhcmdldFJheU1vZGUoWFJUYXJn
ZXRSYXlNb2RlOjpHYXplKQorICAgICwgbV90YXJnZXRSYXlTcGFjZShXVEZNb3ZlKHRhcmdldFJh
eVNwYWNlKSkKK3sKK30KKworWFJJbnB1dFNvdXJjZTo6flhSSW5wdXRTb3VyY2UoKSA9IGRlZmF1
bHQ7CisKK1hSSGFuZGVkbmVzcyBYUklucHV0U291cmNlOjpoYW5kZWRuZXNzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9oYW5kZWRuZXNzOworfQorCitYUlRhcmdldFJheU1vZGUgWFJJbnB1dFNv
dXJjZTo6dGFyZ2V0UmF5TW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5TW9k
ZTsKK30KKworY29uc3QgWFJTcGFjZSYgWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RhcmdldFJheVNwYWNlOworfQorCitSZWZQdHI8WFJTcGFj
ZT4gWFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9Owor
fQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgWFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMoKSBjb25z
dAoreworICAgIHJldHVybiBtX3Byb2ZpbGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjExODdmNzAzOWFlNWQzM2Y2YjkwNTZkNDQ3YjdiZjU5NjMwM2E2YWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJI
YW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgWFJTcGFjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFhSSW5wdXRTb3VyY2U+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSSW5wdXRT
b3VyY2UpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJJbnB1dFNvdXJjZT4gY3JlYXRlKFJl
ZjxYUlNwYWNlPiYmKTsKKyAgICB+WFJJbnB1dFNvdXJjZSgpOworCisgICAgWFJIYW5kZWRuZXNz
IGhhbmRlZG5lc3MoKSBjb25zdDsKKyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSgp
IGNvbnN0OworICAgIGNvbnN0IFhSU3BhY2UmIHRhcmdldFJheVNwYWNlKCkgY29uc3Q7CisgICAg
UmVmUHRyPFhSU3BhY2U+IGdyaXBTcGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwcm9maWxlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2UoUmVm
PFhSU3BhY2U+JiYpOworCisgICAgWFJIYW5kZWRuZXNzIG1faGFuZGVkbmVzczsKKyAgICBYUlRh
cmdldFJheU1vZGUgbV90YXJnZXRSYXlNb2RlOworICAgIFJlZjxYUlNwYWNlPiBtX3RhcmdldFJh
eVNwYWNlOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcHJvZmlsZXM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNmI0MDY5ZjBjYjQyMDVkNTA4NmNiNTE2MTNhNDgxNDM0OTYx
NjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNv
bnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhS
SGFuZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlRhcmdldFJh
eU1vZGUgdGFyZ2V0UmF5TW9kZSA7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBYUlNwYWNlIHRhcmdldFJheVNwYWNlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgWFJTcGFjZT8gZ3JpcFNwYWNlIDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gcHJvZmlsZXM7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmZDRjNDY1ZGFhM2Y3M2RlNjRmNDFhYmQyOGE5ODdjZDY0ZTBlODAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChYUklucHV0U291cmNlQXJyYXkpOworCit1bnNpZ25lZCBYUklucHV0U291cmNlQXJy
YXk6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1hSSW5wdXRTb3VyY2Uq
IFhSSW5wdXRTb3VyY2VBcnJheTo6aXRlbSh1bnNpZ25lZCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU1MjFi
NTVmZDE1OTI5NzU5MGI2NDcxNGU0YzFmOGM1MDU2ZDdmYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmgKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2U7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2VBcnJheSA6
IHB1YmxpYyBSZWZDb3VudGVkPFhSSW5wdXRTb3VyY2VBcnJheT4geworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoWFJJbnB1dFNvdXJjZUFycmF5KTsKK3B1YmxpYzoKKyAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdDsKKyAgICBYUklucHV0U291cmNlKiBpdGVtKHVuc2lnbmVkKSBjb25zdDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDc4MDM0YTY2
OThhNDRlM2YzNGQ3MTg3YjdlMWNjZDFiNWI3ZDgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuaWRsCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
Q29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRv
dywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBYUklucHV0U291
cmNlQXJyYXkgeworICAgIGl0ZXJhYmxlPFhSSW5wdXRTb3VyY2U+OworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgWFJJbnB1dFNvdXJjZSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE0NzY5MGJmMzNkZDMx
MjJiY2E0Y2M4ZDc5NjEwYzEzMmM0ZWQzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcApAQCAtMCwwICsxLDY2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUklucHV0U291
cmNlRXZlbnQuaCIKKworI2luY2x1ZGUgIlhSRnJhbWUuaCIKKyNpbmNsdWRlICJYUklucHV0U291
cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4g
WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0
ZWQpKTsKK30KKworWFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1Ry
dXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwg
bV9mcmFtZShpbml0aWFsaXplci5mcmFtZSkKKyAgICAsIG1faW5wdXRTb3VyY2UoaW5pdGlhbGl6
ZXIuaW5wdXRTb3VyY2UpCisgICAgLCBtX2J1dHRvbkluZGV4KGluaXRpYWxpemVyLmJ1dHRvbklu
ZGV4KQoreworICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBBU1NFUlQobV9pbnB1dFNvdXJjZSk7
Cit9CisKK1hSSW5wdXRTb3VyY2VFdmVudDo6flhSSW5wdXRTb3VyY2VFdmVudCgpID0gZGVmYXVs
dDsKKworY29uc3QgWFJGcmFtZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICptX2ZyYW1lOworfQorCitjb25zdCBYUklucHV0U291cmNlJiBYUklucHV0
U291cmNlRXZlbnQ6OmlucHV0U291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1faW5wdXRT
b3VyY2U7Cit9CisKK09wdGlvbmFsPGludD4gWFJJbnB1dFNvdXJjZUV2ZW50OjpidXR0b25JbmRl
eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnV0dG9uSW5kZXg7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZGM3YzBlM2M0OTEwNWQ0YmQyOTVhNjA2NmU2YTcz
NWYwYjVmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VFdmVudC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBYUkZyYW1lOworY2xhc3MgWFJJbnB1dFNvdXJjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZUV2
ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2
ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUkZyYW1lPiBmcmFtZTsKKyAgICAgICAgUmVmUHRy
PFhSSW5wdXRTb3VyY2U+IGlucHV0U291cmNlOworICAgICAgICBPcHRpb25hbDxpbnQ+IGJ1dHRv
bkluZGV4OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVk
OjpObyk7CisgICAgdmlydHVhbCB+WFJJbnB1dFNvdXJjZUV2ZW50KCk7CisKKyAgICBjb25zdCBY
UkZyYW1lJiBmcmFtZSgpIGNvbnN0OworICAgIGNvbnN0IFhSSW5wdXRTb3VyY2UmIGlucHV0U291
cmNlKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8aW50PiBidXR0b25JbmRleCgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3Qg
SW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJGcmFtZT4gbV9mcmFtZTsKKyAgICBS
ZWZQdHI8WFJJbnB1dFNvdXJjZT4gbV9pbnB1dFNvdXJjZTsKKyAgICBPcHRpb25hbDxpbnQ+IG1f
YnV0dG9uSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjliYWM2YzhhMTcyZmVmMmI2MmY5MWJjYWI4MjNiZThiZjk2OTExZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmlk
bApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJj
ZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgWFJGcmFtZSBmcmFtZTsKKyAg
ICByZXF1aXJlZCBYUklucHV0U291cmNlIGlucHV0U291cmNlOworfTsKKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29u
dGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJJ
bnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IFhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjk1NDJjZTEzMmU1NmI1ZTBmNDRkNWE0ZTIzNDJiNzU5MGVlZTljNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgorCisjaW5jbHVk
ZSAiWFJJbnB1dFNvdXJjZS5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYg
aW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIs
IElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKQorICAgICwgbV9zZXNzaW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAgICwgbV9h
ZGRlZChpbml0aWFsaXplci5hZGRlZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXplci5yZW1v
dmVkKQoreworfQorCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNzaW9uJiBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uOwor
fQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudDo6YWRkZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2FkZGVkOworfQorCitj
b25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudDo6cmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVtb3ZlZDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTkyZjI0MDI1
ODdjMWFmYTZhYzJkNzFlMzNkMzU1ZTdjZWI0ZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUklucHV0U291cmNlOworY2xhc3MgWFJTZXNzaW9u
OworCitjbGFzcyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50
IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0
cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJj
ZT4+IGFkZGVkOworICAgICAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiByZW1vdmVk
OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ+IGNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3Rl
ZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoKTsKKworICAg
IGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8WFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8WFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElz
VHJ1c3RlZCk7CisKKyAgICBSZWY8WFJTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVjdG9yPFJl
ZlB0cjxYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRyPFhSSW5wdXRT
b3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzA0ZjBkMjNkMzEzNDU3OGY2ZWM2OGExMmE0NjJhMGY4
NmYxZGJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdM
CitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudEluaXQgOiBFdmVudEluaXQg
eworICAgIHJlcXVpcmVkIFhSU2Vzc2lvbiBzZXNzaW9uOworICAgIHJlcXVpcmVkIEZyb3plbkFy
cmF5PFhSSW5wdXRTb3VyY2U+IGFkZGVkOworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFhSSW5w
dXRTb3VyY2U+IHJlbW92ZWQ7Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9
V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUklucHV0U291cmNlc0No
YW5nZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IFhSU2Vzc2lvbiBzZXNzaW9uOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
RnJvemVuQXJyYXk8WFJJbnB1dFNvdXJjZT4gYWRkZWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxYUklucHV0U291cmNlPiByZW1vdmVkOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTAzNTRlNmRj
NTdmOTY0NTk0MDc3NTRiOTBkZTVlMjA4ZjhlYzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUG9zZS5oIgorCisjaW5j
bHVkZSAiWFJSaWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFhSUG9zZSk7CisKK1JlZjxYUlBvc2U+IFhSUG9zZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBYUlBvc2UpOworfQorCitYUlBvc2U6OlhSUG9zZSgpCisgICAgOiBtX3Ry
YW5zZm9ybShYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sKK30KKworWFJQb3NlOjp+WFJQ
b3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiBYUlBvc2U6OnRyYW5z
Zm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIFhSUG9z
ZTo6ZW11bGF0ZWRQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW11bGF0ZWRQb3Np
dGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE0ODE5Y2UyNGRhOTIzNjZhNjU5YmUyNGNmNGQ3YTI5
Mzc5MjdlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJQb3NlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlJp
Z2lkVHJhbnNmb3JtOworCitjbGFzcyBYUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlBvc2U+
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSUG9zZSk7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxYUlBvc2U+IGNyZWF0ZSgpOworICAgIH5YUlBvc2UoKTsKKworICAgIGNvbnN0IFhS
UmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworICAgIGJvb2wgZW11bGF0ZWRQb3Np
dGlvbigpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgWFJQb3NlKCk7CisKKyAgICBSZWY8WFJS
aWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07CisgICAgYm9vbCBtX2VtdWxhdGVkUG9zaXRpb24g
eyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOTI3NjliNmRiYWJjNGE3OTZmMGIx
OTUzNWJhOTMzYTNhZDcwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSUG9zZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUG9zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzN2FjYmVh
NWU4OTcyNzJlODViODY5MTdmMjk3NmY3NzY3ZGY4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUmVm
ZXJlbmNlU3BhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitYUlJlZmVyZW5jZVNwYWNl
OjpYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAg
OiBYUlNwYWNlKGNvbnRleHQpCit7Cit9CisKK1hSUmVmZXJlbmNlU3BhY2U6On5YUlJlZmVyZW5j
ZVNwYWNlKCkgPSBkZWZhdWx0OworCitSZWY8WFJSZWZlcmVuY2VTcGFjZT4gWFJSZWZlcmVuY2VT
cGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSZWZlcmVuY2VTcGFjZSgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZl
MTRkNDgzZDRmNTgwNzg0ZTg5YjQ4ZjcwMmY1YTQ0YTYxZTEyNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5oCkBAIC0wLDAg
KzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlNwYWNl
LmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBY
UlNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUlJlZmVyZW5jZVNwYWNlKCk7CisKKyAg
ICBSZWY8WFJSZWZlcmVuY2VTcGFjZT4gZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJS
aWdpZFRyYW5zZm9ybSYpOworCitwcml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3BhY2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmFmZGFlY2Q1ZjFhYzc1MTczODdhNTQyMzE3NTI0MmJiMTU0MWUyMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5p
ZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdAorXSBpbnRlcmZhY2UgWFJSZWZlcmVuY2VTcGFjZSA6IFhSU3BhY2Ug
eworICAgIFtOZXdPYmplY3RdIFhSUmVmZXJlbmNlU3BhY2UgZ2V0T2Zmc2V0UmVmZXJlbmNlU3Bh
Y2UoWFJSaWdpZFRyYW5zZm9ybSBvcmlnaW5PZmZzZXQpOworCisgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnJlc2V0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWEwNGEwMTBkMDEy
YTNhMGJkYzhlMGU3OGJlNGQ1YmVjMWQ0NTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCkBAIC0wLDAgKzEs
NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSUmVm
ZXJlbmNlU3BhY2VFdmVudC5oIgorCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZS5oIgorI2lu
Y2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8
WFJSZWZlcmVuY2VTcGFjZUV2ZW50PiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlz
VHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQorCitYUlJlZmVyZW5jZVNwYWNl
RXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5
cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3JlZmVyZW5jZVNwYWNlKGluaXRp
YWxpemVyLnJlZmVyZW5jZVNwYWNlKQorICAgICwgbV90cmFuc2Zvcm0oaW5pdGlhbGl6ZXIudHJh
bnNmb3JtKQoreworICAgIEFTU0VSVChtX3JlZmVyZW5jZVNwYWNlKTsKKyAgICBBU1NFUlQobV90
cmFuc2Zvcm0pOworfQorCitYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6On5YUlJlZmVyZW5jZVNwYWNl
RXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSUmVmZXJlbmNlU3BhY2UmIFhSUmVmZXJlbmNl
U3BhY2VFdmVudDo6cmVmZXJlbmNlU3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZWZl
cmVuY2VTcGFjZTsKK30KKworY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50Ojp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiAqbV90cmFuc2Zvcm07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5OGQzOWZkMjhm
MGQ5MDJiMDg2NWZiODEwOGUzM2Q1ZDUwY2NlYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK2NsYXNzIFhSUmlnaWRUcmFu
c2Zvcm07CisKK2NsYXNzIFhSUmVmZXJlbmNlU3BhY2VFdmVudCA6IHB1YmxpYyBFdmVudCB7Citw
dWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQdHI8WFJS
ZWZlcmVuY2VTcGFjZT4gcmVmZXJlbmNlU3BhY2U7CisgICAgICAgIFJlZlB0cjxYUlJpZ2lkVHJh
bnNmb3JtPiB0cmFuc2Zvcm07CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJSZWZlcmVuY2VT
cGFjZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUlJlZmVyZW5jZVNwYWNlRXZlbnQo
KTsKKworICAgIGNvbnN0IFhSUmVmZXJlbmNlU3BhY2UmIHJlZmVyZW5jZVNwYWNlKCkgY29uc3Q7
CisgICAgY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3JtKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJ
bml0JiwgSXNUcnVzdGVkKTsKKworICAgIFJlZlB0cjxYUlJlZmVyZW5jZVNwYWNlPiBtX3JlZmVy
ZW5jZVNwYWNlOworICAgIFJlZlB0cjxYUlJpZ2lkVHJhbnNmb3JtPiBtX3RyYW5zZm9ybTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODYwMWM0
NzdiMGM1ZDJmZTFmZDU1YmRiOGUxODk3ZjA5ZTQwODMzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZGljdGlvbmFyeSBYUlJlZmVyZW5jZVNwYWNlRXZl
bnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBYUlJlZmVyZW5jZVNwYWNlIHJlZmVy
ZW5jZVNwYWNlOworICAgIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKKworWworICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2Vj
dXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJp
bmcgdHlwZSwgWFJSZWZlcmVuY2VTcGFjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRl
cmZhY2UgWFJSZWZlcmVuY2VTcGFjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZTsKKyAgICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3Jt
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWE0ZjlkNWU2MWZjMzc0MzIzYzNmMDMxNmM1NDk1Yzgw
ZDk4NzVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJlZmVyZW5jZVNwYWNlVHlwZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBYUlJlZmVyZW5j
ZVNwYWNlVHlwZSB7CisgICAgVmlld2VyLAorICAgIExvY2FsLAorICAgIExvY2FsRmxvb3IsCisg
ICAgQm91bmRlZEZsb29yLAorICAgIFVuYm91bmRlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VUeXBlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTczMmZiMTYzOThlN2Y5NjJmNTRjOWY3YTNiNTNm
ZmU4ZDM4NTFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTAor
XSBlbnVtIFhSUmVmZXJlbmNlU3BhY2VUeXBlIHsKKyAgICAidmlld2VyIiwKKyAgICAibG9jYWwi
LAorICAgICJsb2NhbC1mbG9vciIsCisgICAgImJvdW5kZWQtZmxvb3IiLAorICAgICJ1bmJvdW5k
ZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRl
clN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2VhYmZmYTJkMjY3ZWMyYjBiYWNiZjBhMzRmMzZlMDk1MWNmZTQzOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJT
dGF0ZS5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZS5oIgorCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0
ZUluaXQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSUmVuZGVyU3RhdGUpOwor
CitSZWY8WFJSZW5kZXJTdGF0ZT4gWFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKGNvbnN0IFhSU2Vzc2lv
biYgc2Vzc2lvbikKK3sKKyAgICAvLyBXaGVuIGFuIFhSUmVuZGVyU3RhdGUgb2JqZWN0IGlzIGNy
ZWF0ZWQgZm9yIGFuIFhSU2Vzc2lvbiBzZXNzaW9uLCB0aGUgdXNlciBhZ2VudCBNVVNUIGluaXRp
YWxpemUgdGhlIHJlbmRlciBzdGF0ZSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6Cisg
ICAgLy8gICAxLiBMZXQgc3RhdGUgYmUgdGhlIG5ld2x5IGNyZWF0ZWQgWFJSZW5kZXJTdGF0ZSBv
YmplY3QuCisKKyAgICAvLyAgIDIuIEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRoTmVhciB0byAw
LjEuCisgICAgLy8gICAzLiBJbml0aWFsaXplIHN0YXRl4oCZcyBkZXB0aEZhciB0byAxMDAwLjAu
CisgICAgLy8gKERlZmF1bHQtaW5pdGlhbGl6ZWQgaW4gdGhlIFhSUmVuZGVyU3RhdGUgY2xhc3Mg
ZGVmaW5pdGlvbi4pCisKKyAgICAvLyAgIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNl
c3Npb24sIGluaXRpYWxpemUgc3RhdGXigJlzIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgdG8g
bnVsbC4KKyAgICAvLyAgIDUuIEVsc2UgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVydGlj
YWxGaWVsZE9mVmlldyB0byBQSSAqIDAuNS4KKyAgICAvLyBGSVhNRTogImltbWVyc2l2ZSBzZXNz
aW9uIiBzdXBwb3J0CisgICAgVU5VU0VEX1BBUkFNKHNlc3Npb24pOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB7IHBpT3ZlclR3b0RvdWJsZSB9OworCisg
ICAgLy8gICA2LiBJbml0aWFsaXplIHN0YXRl4oCZcyBiYXNlTGF5ZXIgdG8gbnVsbC4KKyAgICAv
LyAgIDcuIEluaXRpYWxpemUgc3RhdGXigJlzIG91dHB1dENvbnRleHQgdG8gbnVsbC4KKyAgICAv
LyAoSW5pdGlhbGl6ZWQgdG8gbnVsbCBieSBkZWZhdWx0LikKKworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFhSUmVuZGVyU3RhdGUoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KSkp
OworfQorCitYUlJlbmRlclN0YXRlOjpYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJiBp
bmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KQorICAgIDogbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZW
aWV3KFdURk1vdmUoaW5saW5lVmVydGljYWxGaWVsZE9mVmlldykpCit7Cit9CisKK1hSUmVuZGVy
U3RhdGU6OlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKQoreworfQorCitY
UlJlbmRlclN0YXRlOjp+WFJSZW5kZXJTdGF0ZSgpID0gZGVmYXVsdDsKKworZG91YmxlIFhSUmVu
ZGVyU3RhdGU6OmRlcHRoTmVhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGVwdGgubmVhcjsK
K30KKworZG91YmxlIFhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9kZXB0aC5mYXI7Cit9CisKK09wdGlvbmFsPGRvdWJsZT4gWFJSZW5kZXJTdGF0ZTo6aW5s
aW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5saW5lVmVy
dGljYWxGaWVsZE9mVmlldzsKK30KKworUmVmUHRyPFhSV2ViR0xMYXllcj4gWFJSZW5kZXJTdGF0
ZTo6YmFzZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYXNlTGF5ZXI7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZW5kZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQxOTIxNGY0MGY3YzE5YmE0YjUyOWUzZWQwYjFlMWZl
NzJhN2VjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSZW5kZXJTdGF0ZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhS
V2ViR0xMYXllcjsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKK2NsYXNzIFhSU2Vzc2lvbjsK
KworY2xhc3MgWFJSZW5kZXJTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSUmVuZGVyU3RhdGU+
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSUmVuZGVyU3RhdGUpOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8WFJSZW5kZXJTdGF0ZT4gY3JlYXRlKGNvbnN0IFhSU2Vzc2lvbiYpOwor
ICAgIH5YUlJlbmRlclN0YXRlKCk7CisKKyAgICBkb3VibGUgZGVwdGhOZWFyKCkgY29uc3Q7Cisg
ICAgZG91YmxlIGRlcHRoRmFyKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVW
ZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3Q7CisgICAgUmVmUHRyPFhSV2ViR0xMYXllcj4gYmFz
ZUxheWVyKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSZW5kZXJTdGF0ZShPcHRpb25hbDxk
b3VibGU+JiYpOworICAgIFhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKTsK
KworICAgIHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBuZWFyIHsgMC4xIH07CisgICAgICAgIGRv
dWJsZSBmYXIgeyAxMDAwIH07CisgICAgfSBtX2RlcHRoOworICAgIE9wdGlvbmFsPGRvdWJsZT4g
bV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxYUldlYkdMTGF5ZXI+IG1f
YmFzZUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc4NWQ1YjVl
MTc1Y2U2NGJjMGM1ZmM4Zjk5MTYxN2E5MzM5ZDczMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwKQEAgLTAsMCArMSwzNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmVuZGVyU3RhdGUg
eworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhGYXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJs
ZT8gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJX
ZWJHTExheWVyPyBiYXNlTGF5ZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNTVmZDk5ZDVmMDJiZmYwOWU4
ODMwOGU5ZjRkOGRiZTk2YzhiZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlhSV2ViR0xMYXllci5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJSZW5k
ZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFy
OworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxYUldl
YkdMTGF5ZXI+IGJhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzY0MmViOTg4NjEzMWY0NzFmNjNjMjY2N2E0NmIwZGZhMTZjMDI4MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUlu
aXQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitdIGRpY3Rpb25hcnkgWFJSZW5k
ZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFy
OworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFhSV2ViR0xMYXll
cj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSaWdpZFRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmlnaWRUcmFuc2Zvcm0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYzRiN2U2OGQzNTI0MGYyMDgxZTMxNzIx
NzFhYjdkOTIwZjczNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJpZ2lkVHJhbnNmb3JtLmgiCisK
KyNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSUmlnaWRUcmFuc2Zvcm0pOworCitSZWY8
WFJSaWdpZFRyYW5zZm9ybT4gWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBYUlJpZ2lkVHJhbnNmb3JtKHsgfSwgeyB9KSk7Cit9CisKK0V4Y2Vw
dGlvbk9yPFJlZjxYUlJpZ2lkVHJhbnNmb3JtPj4gWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKGNv
bnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBvaW50SW5pdCYgb3JpZW50YXRp
b24pCit7CisgICAgLy8gVGhlIFhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRpb24sIG9yaWVudGF0aW9u
KSBjb25zdHJ1Y3RvciBNVVNUIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwcyB3aGVuIGludm9r
ZWQ6CisgICAgLy8gICAxLiBMZXQgdHJhbnNmb3JtIGJlIGEgbmV3IFhSUmlnaWRUcmFuc2Zvcm0u
CisKKyAgICAvLyAgIDIuIElmIHBvc2l0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFs
aXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3
OiAxLjAgfS4KKyAgICAvLyAgIDMuIElmIHBvc2l0aW9u4oCZcyB3IHZhbHVlIGlzIG5vdCAxLjAs
IHRocm93IGEgVHlwZUVycm9yLgorICAgIC8vICAgNC4gRWxzZSBpbml0aWFsaXplIHRyYW5zZm9y
beKAmXMgcG9zaXRpb27igJlzIHggdmFsdWUgdG8gcG9zaXRpb27igJlzIHggZGljdGlvbmFyeSBt
ZW1iZXIsIHkgdmFsdWUgdG8gcG9zaXRpb27igJlzIHkgZGljdGlvbmFyeSBtZW1iZXIsIHogdmFs
dWUgdG8gcG9zaXRpb27igJlzIHogZGljdGlvbmFyeSBtZW1iZXIgYW5kIHcgdG8gMS4wLgorICAg
IGlmIChwb3NpdGlvbi53ICE9IDEuMCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciB9OworICAgIERPTVBvaW50SW5pdCBwb3NpdGlvbkluaXQgeyBwb3NpdGlvbi54LCBwb3Np
dGlvbi55LCBwb3NpdGlvbi56LCAxIH07CisKKyAgICAvLyAgIDUuIElmIG9yaWVudGF0aW9uIGlz
IG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb24g
dG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDYuIEVsc2Ug
aW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9u4oCZcyB4IHZhbHVlIHRvIG9yaWVu
dGF0aW9u4oCZcyB4IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZ
cyB5IGRpY3Rpb25hcnkgbWVtYmVyLCB6IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB6IGRpY3Rp
b25hcnkgbWVtYmVyIGFuZCB3IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB3IGRpY3Rpb25hcnkg
bWVtYmVyLgorICAgIC8vICAgNy4gTm9ybWFsaXplIHgsIHksIHosIGFuZCB3IGNvbXBvbmVudHMg
b2YgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbi4KKyAgICBET01Qb2ludEluaXQgb3JpZW50YXRp
b25Jbml0IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwgb3JpZW50YXRpb24ueiwgb3Jp
ZW50YXRpb24udyB9OworICAgIHsKKyAgICAgICAgZG91YmxlIGxlbmd0aCA9IHN0ZDo6c3FydChv
cmllbnRhdGlvbkluaXQueCAqIG9yaWVudGF0aW9uSW5pdC54ICsgb3JpZW50YXRpb25Jbml0Lnkg
KiBvcmllbnRhdGlvbkluaXQueQorICAgICAgICAgICAgKyBvcmllbnRhdGlvbkluaXQueiAqIG9y
aWVudGF0aW9uSW5pdC56ICsgb3JpZW50YXRpb25Jbml0LncgKiBvcmllbnRhdGlvbkluaXQudyk7
CisgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWw8ZG91YmxlPihsZW5ndGgsIDAp
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisK
KyAgICAgICAgb3JpZW50YXRpb25Jbml0PSB7CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQu
eCAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LnkgLyBsZW5ndGgsCisgICAgICAgICAgICBvcmll
bnRhdGlvbkluaXQueiAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LncgLyBsZW5ndGgsCisgICAg
ICAgIH07CisgICAgfQorCisgICAgLy8gICA4LiBSZXR1cm4gdHJhbnNmb3JtLgorICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRpb25Jbml0LCBvcmllbnRhdGlv
bkluaXQpKTsKK30KKworWFJSaWdpZFRyYW5zZm9ybTo6WFJSaWdpZFRyYW5zZm9ybShjb25zdCBE
T01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBET01Qb2ludEluaXQmIG9yaWVudGF0aW9uKQor
ICAgIDogbV9wb3NpdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVhdGUocG9zaXRpb24pKQorICAg
ICwgbV9vcmllbnRhdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVhdGUob3JpZW50YXRpb24pKQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJvcGVybHksIHBlciBzcGVjLgorICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IG1hdHJpeDsKKyAgICBhdXRvIG1hdHJpeERhdGEgPSBtYXRyaXgudG9D
b2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKKyAgICBtX21hdHJpeCA9IEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKG1hdHJpeERhdGEuZGF0YSgpLCBtYXRyaXhEYXRhLnNpemUoKSk7Cit9CisKK1hSUmlnaWRU
cmFuc2Zvcm06On5YUlJpZ2lkVHJhbnNmb3JtKCkgPSBkZWZhdWx0OworCitjb25zdCBET01Qb2lu
dFJlYWRPbmx5JiBYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcG9zaXRpb247Cit9CisKK2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFhSUmlnaWRUcmFu
c2Zvcm06Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmllbnRhdGlvbjsK
K30KKworUmVmPEZsb2F0MzJBcnJheT4gIFhSUmlnaWRUcmFuc2Zvcm06Om1hdHJpeCgpIGNvbnN0
Cit7CisgICAgYXV0byBtYXRyaXggPSBGbG9hdDMyQXJyYXk6OmNyZWF0ZSgxNik7CisgICAgbWF0
cml4LT56ZXJvRmlsbCgpOworICAgIHJldHVybiBtYXRyaXg7Cit9CisKK1JlZjxYUlJpZ2lkVHJh
bnNmb3JtPiBYUlJpZ2lkVHJhbnNmb3JtOjppbnZlcnNlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50IHByb3Blcmx5LgorICAgIHJldHVybiBYUlJpZ2lkVHJhbnNmb3JtOjpjcmVh
dGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWQwNDNlODEyMzBm
NTRlYjEzYzk3OGU5ODM3NzBhMTRhMTU4MDU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IERPTVBvaW50SW5pdDsKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisK
K2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxYUlJpZ2lkVHJhbnNm
b3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJpZ2lkVHJhbnNmb3JtKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOworICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShjb25zdCBET01Q
b2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+WFJSaWdpZFRyYW5zZm9ybSgp
OworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRpb24oKSBjb25zdDsKKyAgICBj
b25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNvbnN0OworICAgIFJlZjxGbG9h
dDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxYUlJpZ2lkVHJhbnNmb3JtPiBpbnZl
cnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Q
b2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAgIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX29yaWVudGF0aW9u
OworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJp
Z2lkVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRy
YW5zZm9ybS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RmNWM4OTI3YTI0OWEwMDU2MTdjY2NhOTc3MWJkZTA0
M2ZlODNlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSaWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlv
bmFsIERPTVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0
aW9uKSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmlnaWRUcmFuc2Zvcm0geworICAgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seSBwb3NpdGlvbjsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVBvaW50UmVhZE9ubHkgb3JpZW50
YXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBtYXRyaXg7CisgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYyNzYyNTMyZjcxNzBiMjVlY2Q2MDZlZWJkZWMxMmE1OTM1NzQ1NzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5jcHAKQEAgLTAs
MCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
WFJTZXNzaW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUlNlc3Npb24p
OworCitYUlNlc3Npb246On5YUlNlc3Npb24oKSA9IGRlZmF1bHQ7CisKK1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUgWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7Cit9CisKK1hSVmlzaWJpbGl0eVN0YXRlIFhS
U2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmls
aXR5U3RhdGU7Cit9CisKK2NvbnN0IFhSUmVuZGVyU3RhdGUmIFhSU2Vzc2lvbjo6cmVuZGVyU3Rh
dGUoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZW5kZXJTdGF0ZTsKK30KKworY29uc3QgWFJJ
bnB1dFNvdXJjZUFycmF5JiBYUlNlc3Npb246OmlucHV0U291cmNlcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuICptX2lucHV0U291cmNlczsKK30KKwordm9pZCBYUlNlc3Npb246OnVwZGF0ZVJlbmRl
clN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0JikKK3sKK30KKwordm9pZCBYUlNlc3Npb246
OnJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVl
c3RSZWZlcmVuY2VTcGFjZVByb21pc2UmJikKK3sKK30KKworaW50IFhSU2Vzc2lvbjo6cmVxdWVz
dEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJl
dHVybiAwOworfQorCit2b2lkIFhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQor
eworfQorCit2b2lkIFhSU2Vzc2lvbjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3Qg
Y2hhciogWFJTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gIlhSU2Vzc2lvbiI7Cit9CisKK3ZvaWQgWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmRmYzhkNDIyNTUwNGVjNTI0ZTNmOGJkMDBlOWJlMzc1N2ZlNzM0ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRN
b2RlLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5LmgiCisjaW5jbHVkZSAiWFJSZWZl
cmVuY2VTcGFjZVR5cGUuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAi
WFJTcGFjZS5oIgorI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrOworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsKK3N0
cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKKworY2xhc3MgWFJTZXNzaW9uIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8WFJTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEs
IHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJT
ZXNzaW9uKTsKK3B1YmxpYzoKKyAgICB1c2luZyBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNl
ID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxYUlJlZmVyZW5jZVNwYWNlPj47Cisg
ICAgdXNpbmcgRW5kUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPjsKKworICAgIHZp
cnR1YWwgflhSU2Vzc2lvbigpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNlc3Npb24+Ojpy
ZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNlc3Npb24+OjpkZXJlZjsKKworICAgIFhSRW52
aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGUoKSBjb25zdDsKKyAgICBYUlZp
c2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBYUlJlbmRl
clN0YXRlJiByZW5kZXJTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IFhSSW5wdXRTb3VyY2VBcnJh
eSYgaW5wdXRTb3VyY2VzKCkgY29uc3Q7CisKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKGNv
bnN0IFhSUmVuZGVyU3RhdGVJbml0Jik7CisgICAgdm9pZCByZXF1ZXN0UmVmZXJlbmNlU3BhY2Uo
Y29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNl
JiYpOworCisgICAgaW50IHJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RD
YWxsYmFjaz4mJik7CisgICAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaGFuZGxlKTsK
KworICAgIHZvaWQgZW5kKEVuZFByb21pc2UmJik7CisKKyAgICBib29sIGVuZGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmRlZDsgfQorCitwcm90ZWN0ZWQ6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAg
ICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFhSU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsg
fQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBBY3Rp
dmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisKKyAgICBYUkVudmlyb25tZW50
QmxlbmRNb2RlIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUg
bV92aXNpYmlsaXR5U3RhdGU7CisgICAgUmVmUHRyPFhSUmVuZGVyU3RhdGU+IG1fcmVuZGVyU3Rh
dGU7CisgICAgUmVmUHRyPFhSSW5wdXRTb3VyY2VBcnJheT4gbV9pbnB1dFNvdXJjZXM7CisgICAg
Ym9vbCBtX2VuZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjNh
NTJmNTkyM2E0ZmI4YjEzNWM1OThjMDczYzYzMDkxNTljZTk3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaWRsCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCR0wsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFhSU2Vzc2lvbiA6IEV2ZW50VGFyZ2V0
IHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRW52aXJvbm1l
bnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFhSVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFhSUmVuZGVyU3RhdGUgcmVuZGVyU3RhdGU7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUklucHV0U291cmNlQXJyYXkgaW5wdXRTb3VyY2VzOwor
CisgICAgLy8gTWV0aG9kcworICAgIHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUob3B0aW9uYWwgWFJS
ZW5kZXJTdGF0ZUluaXQgc3RhdGVJbml0KTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFhSUmVm
ZXJlbmNlU3BhY2U+IHJlcXVlc3RSZWZlcmVuY2VTcGFjZShYUlJlZmVyZW5jZVNwYWNlVHlwZSB0
eXBlKTsKKworICAgIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFhSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9uZyBoYW5k
bGUpOworCisgICAgUHJvbWlzZTx2b2lkPiBlbmQoKTsKKworICAgIC8vIEV2ZW50cworICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bnNlbGVjdDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uaW5wdXRzb3VyY2VzY2hhbmdl
OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3RzdGFydDsKKyAgICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b252aXNpYmlsaXR5Y2hhbmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE1OWRhYmI2ZjNjZTY1M2ZhMzkyY2Q3
NjE3MGNkYjdlYTU0MTE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbkV2ZW50LmgiCisKKyNp
bmNsdWRlICJYUlNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJTZXNz
aW9uRXZlbnQ+IFhSU2Vzc2lvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgWFJTZXNzaW9uRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1
c3RlZCkpOworfQorCitYUlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNz
aW9uKGluaXRpYWxpemVyLnNlc3Npb24pCit7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7Cit9CisK
K1hSU2Vzc2lvbkV2ZW50Ojp+WFJTZXNzaW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhS
U2Vzc2lvbiYgWFJTZXNzaW9uRXZlbnQ6OnNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiAq
bV9zZXNzaW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlMWY5ZTZhMThl
MzkwNjM3ZjRiNzA2MmE2N2ViNzFiYzBlMjVkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlNlc3Npb247CisKK2NsYXNzIFhSU2Vzc2lvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50
SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgfTsKKworICAg
IHN0YXRpYyBSZWY8WFJTZXNzaW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSU2Vz
c2lvbkV2ZW50KCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBYUlNlc3Npb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5p
dCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJTZXNzaW9uPiBtX3Nlc3Npb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NDQzNjZkZjYxM2VmOTEwYzgyNTBm
MWI0YTMzOTMyODZmODdhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdM
LAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVx
dWlyZWQgWFJTZXNzaW9uIHNlc3Npb247Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUlNlc3Npb25F
dmVudEluaXQgZXZlbnRJbml0RGljdCkKK10gaW50ZXJmYWNlIFhSU2Vzc2lvbkV2ZW50IDogRXZl
bnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJTZXNzaW9uIHNlc3Np
b247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25Jbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMmI0N2NjMjZhNDE4Mjc5YzVmOWNmZTJmYjFlNjFhMTU5MGVjMmY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0
LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisK
K25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgWFJTZXNzaW9uSW5pdCB7CisgICAgVmVjdG9yPEpTQzo6SlNWYWx1ZT4gcmVx
dWlyZWRGZWF0dXJlczsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVlPiBvcHRpb25hbEZlYXR1cmVz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU4NjBhOGJhNDc3OWQ0ZDRi
ZGIwY2VlZmIwZmU0NjIzYzFiNWVmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1X
RUJHTAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkluaXQgeworICAgIHNlcXVlbmNlPGFueT4gcmVx
dWlyZWRGZWF0dXJlczsKKyAgICBzZXF1ZW5jZTxhbnk+IG9wdGlvbmFsRmVhdHVyZXM7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MjFlYzY1OGZmYmJiZDc0OTk5YjRiOTdlYjg3YTc5Yjk5ZWNiYjlkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgKQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlBsYXRm
b3JtWFIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBYUlNlc3Npb25Nb2RlID0g
UGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUxOWQ5YjQ1ZTkxMzM3YTI5ODE2ZWQ3OTQ4YzU2NTE4NGMyNWI5Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCkBAIC0w
LDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZW51bSBYUlNlc3Npb25Nb2RlIHsKKyAgICAiaW5s
aW5lIiwKKyAgICAiaW1tZXJzaXZlLXZyIiwKKyAgICAiaW1tZXJzaXZlLWFyIgorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YTcwMDg5YTUz
ODJiMjJlZDhmZjUzNTJjNTQxZDhkY2I2Y2E3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU3BhY2UuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSU3BhY2UpOworCitYUlNwYWNlOjpYUlNwYWNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcigmY29udGV4dCkKK3sKK30KKworWFJTcGFjZTo6flhSU3BhY2UoKSA9IGRlZmF1
bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE1OTEzOTI5NjYzNzc4YjBiN2E0NGZjZWUwZDQyMWYxZmM0
NzI0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJT
cGFjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBYUlNwYWNlIDogcHVi
bGljIFJlZkNvdW50ZWQ8WFJTcGFjZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoWFJTcGFjZSk7CitwdWJsaWM6CisgICAgdmlydHVhbCB+WFJTcGFjZSgpOworCisg
ICAgdXNpbmcgUmVmQ291bnRlZDxYUlNwYWNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
WFJTcGFjZT46OmRlcmVmOworCitwcm90ZWN0ZWQ6CisgICAgWFJTcGFjZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisK
K3ByaXZhdGU6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhSU3BhY2VFdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJp
ZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ5MDA0YTk4YmQ4MzRhMzMwNTk1YWVj
Y2E0NTk0NWZjMTA3YzJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTcGFjZS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBYUlNwYWNlIDog
RXZlbnRUYXJnZXQgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDk3NDUzZTM2NDgwZWU0ZDRjZTJiMzdhY2IxZjk5MDEyOTc3NWMxMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0u
Y3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWFJTeXN0ZW0pOworCitSZWY8WFJTeXN0ZW0+IFhSU3lz
dGVtOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlN5c3RlbShzY3JpcHRFeGVjdXRpb25D
b250ZXh0KSk7Cit9CisKK1hSU3lzdGVtOjpYUlN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRF
eGVjdXRpb25Db250ZXh0KQoreworfQorCitYUlN5c3RlbTo6flhSU3lzdGVtKCkgPSBkZWZhdWx0
OworCit2b2lkIFhSU3lzdGVtOjppc1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNT
ZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSYmKQoreworICAgIC8vIFdoZW4gdGhlIHN1cHBvcnRzU2Vz
c2lvbihtb2RlKSBtZXRob2QgaXMgaW52b2tlZCwgaXQgTVVTVCByZXR1cm4gYSBuZXcgUHJvbWlz
ZSBwcm9taXNlIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKKyAgICAv
LyAgIDEuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAgLy8gICAyLiBJZiB0
aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9ydGVk
RXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICAzLiBJ
ZiB0aGUgWFIgZGV2aWNlJ3MgbGlzdCBvZiBzdXBwb3J0ZWQgbW9kZXMgZG9lcyBub3QgY29udGFp
biBtb2RlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNl
cHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4gRWxzZSByZXNvbHZlIHBy
b21pc2UuCit9CisKK3ZvaWQgWFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUs
IGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJikKK3sKKyAgICBQ
bGF0Zm9ybVhSOjpJbnN0YW5jZTo6c2luZ2xldG9uKCk7CisKKyAgICAvLyBXaGVuIHRoZSByZXF1
ZXN0U2Vzc2lvbihtb2RlKSBtZXRob2QgaXMgaW52b2tlZCwgdGhlIHVzZXIgYWdlbnQgTVVTVCBy
ZXR1cm4gYSBuZXcgUHJvbWlzZSBwcm9taXNlIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBp
biBwYXJhbGxlbDoKKyAgICAvLyAgIDEuIExldCBpbW1lcnNpdmUgYmUgdHJ1ZSBpZiBtb2RlIGlz
ICJpbW1lcnNpdmUtdnIiIG9yICJpbW1lcnNpdmUtYXIiLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgor
ICAgIC8vICAgMi4gSWYgaW1tZXJzaXZlIGlzIHRydWU6CisgICAgLy8gICAgIDEuIElmIHBlbmRp
bmcgaW1tZXJzaXZlIHNlc3Npb24gaXMgdHJ1ZSBvciBhY3RpdmUgaW1tZXJzaXZlIHNlc3Npb24g
aXMgbm90IG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBE
T01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgICAyLiBFbHNlIHNl
dCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRvIGJlIHRydWUuCisgICAgLy8gICAzLiBFbnN1
cmUgYW4gWFIgZGV2aWNlIGlzIHNlbGVjdGVkLgorICAgIC8vICAgNC4gSWYgdGhlIFhSIGRldmlj
ZSBpcyBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIG51bGwuCisgICAgLy8gICA1LiBFbHNlIGlm
IHRoZSBYUiBkZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRlZCBtb2RlcyBkb2VzIG5vdCBjb250YWlu
IG1vZGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2Vw
dGlvbi4KKyAgICAvLyAgIDYuIEVsc2UgSWYgaW1tZXJzaXZlIGlzIHRydWUgYW5kIHRoZSBhbGdv
cml0aG0gaXMgbm90IHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24sIHJlamVjdCBwcm9taXNl
IHdpdGggYSAiU2VjdXJpdHlFcnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVw
cy4KKyAgICAvLyAgIDcuIElmIHByb21pc2Ugd2FzIHJlamVjdGVkIGFuZCBpbW1lcnNpdmUgaXMg
dHJ1ZSwgc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gZmFsc2UuCisgICAgLy8gICA4
LiBJZiBwcm9taXNlIHdhcyByZWplY3RlZCwgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICA5
LiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBYUlNlc3Npb24gb2JqZWN0LgorICAgIC8vICAgMTAuIElu
aXRpYWxpemUgdGhlIHNlc3Npb24gd2l0aCBzZXNzaW9uIGFuZCBtb2RlLgorICAgIC8vICAgMTEu
IElmIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgdGhlIGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiB0
byBzZXNzaW9uLCBhbmQgc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gZmFsc2UuCisg
ICAgLy8gICAxMi4gRWxzZSBhcHBlbmQgc2Vzc2lvbiB0byB0aGUgbGlzdCBvZiBpbmxpbmUgc2Vz
c2lvbnMuCisgICAgLy8gICAxMy4gUmVzb2x2ZSBwcm9taXNlIHdpdGggc2Vzc2lvbi4KK30KKwor
Y29uc3QgY2hhciogWFJTeXN0ZW06OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiAiWFJTeXN0ZW0iOworfQorCit2b2lkIFhSU3lzdGVtOjpzdG9wKCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3Rl
bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhjYzk0NGNhNDA3OTliMTcwZmU5MjcyZWIyMzNiMWM5ZDEyNjY3YWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVt
LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2Ns
YXNzIFhSU2Vzc2lvbjsKK3N0cnVjdCBYUlNlc3Npb25Jbml0OworCitjbGFzcyBYUlN5c3RlbSBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFhSU3lzdGVtPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoWFJTeXN0ZW0pOworcHVibGljOgorICAgIHVzaW5nIElzU2Vzc2lvblN1cHBvcnRl
ZFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CisgICAgdXNpbmcgUmVx
dWVzdFNlc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxYUlNl
c3Npb24+PjsKKworICAgIHN0YXRpYyBSZWY8WFJTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisgICAgdmlydHVhbCB+WFJTeXN0ZW0oKTsKKworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8WFJTeXN0ZW0+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlN5c3RlbT46OmRl
cmVmOworCisgICAgdm9pZCBpc1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNTZXNz
aW9uU3VwcG9ydGVkUHJvbWlzZSYmKTsKKyAgICB2b2lkIHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lv
bk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJik7CisK
K3Byb3RlY3RlZDoKKyAgICBYUlN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAg
ICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50
ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWFJTeXN0ZW1FdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYo
KTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU3lzdGVtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzViNmRhNWE2MjBhODg1MTdlOWRkYTBmMDdlYzdi
ZmNhZmQxOTU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlN5c3RlbS5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBBY3RpdmVE
T01PYmplY3QsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRl
cmZhY2UgWFJTeXN0ZW0gOiBFdmVudFRhcmdldCB7CisgICAgLy8gTWV0aG9kcworICAgIFByb21p
c2U8dm9pZD4gaXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUgbW9kZSk7CisgICAgW05l
d09iamVjdF0gUHJvbWlzZTxYUlNlc3Npb24+IHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUg
bW9kZSwgb3B0aW9uYWwgWFJTZXNzaW9uSW5pdCBvcHRpb25zKTsKKworICAgIC8vIEV2ZW50cwor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kZXZpY2VjaGFuZ2U7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1
NWYxNTIwMWNhOTE2ODRkYzZiMTA1NjAwYmJlMjA2ZTlmNjFkNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIGNsYXNzIFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgR2F6ZSwKKyAgICBUcmFja2Vk
UG9pbnRlciwKKyAgICBTY3JlZW4sCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzY4MjE4YTA4YzZmYTE1OTY1YjJiZjQwNTAwZmRmZTY3NGJhNDBkYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlk
bApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJUYXJnZXRSYXlNb2RlIHsK
KyAgICAiZ2F6ZSIsCisgICAgInRyYWNrZWQtcG9pbnRlciIsCisgICAgInNjcmVlbiIKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYyMjg3NmNh
ZTI2OWI2Y2VkYzVjNDM3ZGM1YTgzNzYzNDZiZTY1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlZpZXcuaCIKKworI2lu
Y2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBl
ZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSVmlldyk7
CisKK1JlZjxYUlZpZXc+IFhSVmlldzo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBYUlZpZXcpOworfQorCitYUlZpZXc6OlhSVmlldygpCisgICAgOiBtX2V5ZShYUkV5ZTo6
TGVmdCkKKyAgICAsIG1fcHJvamVjdGlvbk1hdHJpeChGbG9hdDMyQXJyYXk6OmNyZWF0ZSgwKSkK
KyAgICAsIG1fdHJhbnNmb3JtKFhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpKQoreworfQorCitY
UlZpZXc6On5YUlZpZXcoKSA9IGRlZmF1bHQ7CisKK1hSRXllIFhSVmlldzo6ZXllKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9leWU7Cit9CisKK2NvbnN0IEZsb2F0MzJBcnJheSYgWFJWaWV3Ojpw
cm9qZWN0aW9uTWF0cml4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9qZWN0aW9uTWF0cml4
OworfQorCitjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiBYUlZpZXc6OnRyYW5zZm9ybSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGJmMzU5M2Ux
ZjllNTkwMmVjZWVhMzgyYWQwOGQxZTQ2MDEwYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJFeWUuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJWaWV3
IDogcHVibGljIFJlZkNvdW50ZWQ8WFJWaWV3PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChYUlZpZXcpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJWaWV3PiBjcmVhdGUoKTsKKyAg
ICB+WFJWaWV3KCk7CisKKyAgICBYUkV5ZSBleWUoKSBjb25zdDsKKyAgICBjb25zdCBGbG9hdDMy
QXJyYXkmIHByb2plY3Rpb25NYXRyaXgoKSBjb25zdDsKKyAgICBjb25zdCBYUlJpZ2lkVHJhbnNm
b3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXcoKTsKKworICAg
IFhSRXllIG1fZXllOworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1fcHJvamVjdGlvbk1hdHJpeDsK
KyAgICBSZWY8WFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
Vmlldy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzM1OTk1NWMyZjIwYjAyNmUwN2ZkMWU4MmUwMWNhMzI2ZTQzYTNiZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3LmlkbApAQCAtMCww
ICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAor
ICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1X
aW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJWaWV3
IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJFeWUgZXllOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBGbG9hdDMyQXJyYXkgcHJvamVjdGlvbk1hdHJpeDsKKyAgICBbU2FtZU9iamVjdF0gcmVh
ZG9ubHkgYXR0cmlidXRlIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2Zi
ZjJhNzYwMGJmYzcwYWI2MmM1NDFmNmIzMDhhMjcxZDEyMzEyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuY3BwCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSVmll
d2VyUG9zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUlZpZXdlclBvc2U+IFhS
Vmlld2VyUG9zZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXdl
clBvc2UpOworfQorCitYUlZpZXdlclBvc2U6OlhSVmlld2VyUG9zZSgpID0gZGVmYXVsdDsKK1hS
Vmlld2VyUG9zZTo6flhSVmlld2VyUG9zZSgpID0gZGVmYXVsdDsKKworY29uc3QgVmVjdG9yPFJl
ZjxYUlZpZXc+PiYgWFJWaWV3ZXJQb3NlOjp2aWV3cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dmlld3M7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmOTQwYzJmMTUyM2ZkZDE1MTdh
YTU5N2Y0ZDlkNjRlODY5Zjg1NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlBvc2UuaCIKKyNpbmNsdWRlICJYUlZpZXcu
aCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSVmlld2VyUG9zZSA6IHB1YmxpYyBYUlBvc2Ugewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJWaWV3ZXJQb3NlPiBjcmVhdGUoKTsKKyAgICB+WFJW
aWV3ZXJQb3NlKCk7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPFhSVmlldz4+JiB2aWV3cygpIGNv
bnN0OworCitwcml2YXRlOgorICAgIFhSVmlld2VyUG9zZSgpOworCisgICAgVmVjdG9yPFJlZjxY
UlZpZXc+PiBtX3ZpZXdzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNGJj
NmQwMTIyN2ViMjc3ZTcyOTczOTVlN2UwZTNiMGVjYWJlMmUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93
LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSVmlld2VyUG9z
ZSA6IFhSUG9zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5B
cnJheTxYUlZpZXc+IHZpZXdzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJWaWV3cG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
Vmlld3BvcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZjBkODllNzM3NDY1ZmI1MDk2ZDczODUxN2M3OTI0
YmQzY2RhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlld3BvcnQuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSVmlld3BvcnQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKFhSVmlld3BvcnQpOworCitSZWY8WFJWaWV3cG9ydD4gWFJWaWV3cG9ydDo6
Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXdwb3J0KTsKK30KKwor
WFJWaWV3cG9ydDo6WFJWaWV3cG9ydCgpID0gZGVmYXVsdDsKKworaW50IFhSVmlld3BvcnQ6Ongo
KSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitpbnQgWFJWaWV3cG9ydDo6eSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBYUlZpZXdwb3J0Ojp3aWR0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBYUlZpZXdwb3J0OjpoZWlnaHQoKSBjb25zdAorewor
ICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MTdiZGExMjgyYzhiZGRk
YTQyOGQzNDIyODZmODUwMDdlOWMzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFhSVmlld3BvcnQgOiBwdWJsaWMgUmVmQ291bnRlZDxYUlZpZXdwb3J0
PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlZpZXdwb3J0KTsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFhSVmlld3BvcnQ+IGNyZWF0ZSgpOworCisgICAgaW50IHgoKSBjb25zdDsK
KyAgICBpbnQgeSgpIGNvbnN0OworICAgIGludCB3aWR0aCgpIGNvbnN0OworICAgIGludCBoZWln
aHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXdwb3J0KCk7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlld3BvcnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDNjMjZlZTVmZGYxMjg5OTE0NmViNjE2MTk5ZTI3MDUxN2Q5N2Qy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdw
b3J0LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBp
bnRlcmZhY2UgWFJWaWV3cG9ydCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IHdpZHRoOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGMyYjYwZWRiYzkyMDEzYzM3Nzk5MWNhNDY0Mzg3YWJjYTcwYmJhMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaApA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJWaXNpYmlsaXR5U3RhdGUgeworICAgIFZpc2libGUs
CisgICAgVmlzaWJsZUJsdXJyZWQsCisgICAgSGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJp
bGl0eVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5
U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTc3YTA4ZGUyNDZiODc1YzgzMjI2ZDNlZjliMjgzN2M1
OGE5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
VmlzaWJpbGl0eVN0YXRlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0g
WFJWaXNpYmlsaXR5U3RhdGUgeworICAgICJ2aXNpYmxlIiwKKyAgICAidmlzaWJsZS1ibHVycmVk
IiwKKyAgICAiaGlkZGVuIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODIwYjZkNGZkMGViM2FhZjRhY2VkNjZkYjQ2ZmZk
MzIxYjFkZTQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUldlYkdMTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIuaCIKKworI2luY2x1ZGUgIldl
YkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNp
ZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKKyNl
bmRpZgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlhSVmlld3BvcnQuaCIKKyNp
bmNsdWRlICJYUldlYkdMTGF5ZXJJbml0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXhj
ZXB0aW9uT3I8UmVmPFhSV2ViR0xMYXllcj4+IFhSV2ViR0xMYXllcjo6Y3JlYXRlKGNvbnN0IFhS
U2Vzc2lvbiYgc2Vzc2lvbiwgWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJX
ZWJHTExheWVySW5pdCYgaW5pdCkKK3sKKyAgICAvLyBUaGUgWFJXZWJHTExheWVyKHNlc3Npb24s
IGNvbnRleHQsIGxheWVySW5pdCkgY29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dp
bmcgc3RlcHMgd2hlbiBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0IGxheWVyIGJlIGEgbmV3IFhS
V2ViR0xMYXllcgorCisgICAgLy8gICAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2YWx1ZSBpcyB0
cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisg
ICAgaWYgKHNlc3Npb24uZW5kZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICAvLyAgIDMuIElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4g
SWYgY29udGV4dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRP
RE8KKworICAgIC8vICAgNS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0
LgorICAgIC8vICAgNi4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5p
dOKAmXMgYW50aWFsaWFzIHZhbHVlLgorICAgIC8vICAgNy4gSWYgbGF5ZXJJbml04oCZcyBpZ25v
cmVEZXB0aFZhbHVlcyB2YWx1ZSBpcyBmYWxzZSBhbmQgdGhlIFhSIENvbXBvc2l0b3Igd2lsbCBt
YWtlIHVzZSBvZiBkZXB0aCB2YWx1ZXMsIEluaXRpYWxpemUgbGF5ZXLigJlzIGlnbm9yZURlcHRo
VmFsdWVzIHRvIGZhbHNlLgorICAgIC8vICAgOC4gRWxzZSBJbml0aWFsaXplIGxheWVy4oCZcyBp
Z25vcmVEZXB0aFZhbHVlcyB0byB0cnVlCisgICAgLy8gICA5LiBJbml0aWFsaXplIGxheWVy4oCZ
cyBmcmFtZWJ1ZmZlciB0byBhIG5ldyBvcGFxdWUgZnJhbWVidWZmZXIgY3JlYXRlZCB3aXRoIGNv
bnRleHQuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgbGF5ZXLigJlzIHN3YXAgY2hhaW4u
CisgICAgLy8gICAxMS4gSWYgbGF5ZXLigJlzIHN3YXAgY2hhaW4gd2FzIHVuYWJsZSB0byBiZSBj
cmVhdGVkIGZvciBhbnkgcmVhc29uLCB0aHJvdyBhbiBPcGVyYXRpb25FcnJvciBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8vICAgMTIuIFJldHVybiBs
YXllci4KKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUldlYkdMTGF5ZXIoc2Vzc2lvbiwgV1RG
TW92ZShjb250ZXh0KSwgaW5pdCkpOworfQorCitYUldlYkdMTGF5ZXI6OlhSV2ViR0xMYXllcihj
b25zdCBYUlNlc3Npb24mLCBYUlJlbmRlcmluZ0NvbnRleHQmJiBjb250ZXh0LCBjb25zdCBYUldl
YkdMTGF5ZXJJbml0JiBpbml0KQorICAgIDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCisg
ICAgLCBtX2FudGlhbGlhcyhpbml0LmFudGlhbGlhcykKKyAgICAsIG1faWdub3JlRGVwdGhWYWx1
ZXMoaW5pdC5pZ25vcmVEZXB0aFZhbHVlcykKK3sKKyAgICBtX2ZyYW1lYnVmZmVyLm9iamVjdCA9
IFdURjo6c3dpdGNoT24obV9jb250ZXh0LAorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0PiYgY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgUmVmUHRy
PFdlYkdMRnJhbWVidWZmZXI+IGZyYW1lQnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRl
KCpjb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBmcmFtZUJ1ZmZlcjsKKyAgICAgICAgfSwK
KyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0wyUmVuZGVy
aW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJH
TEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqY29u
dGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0sCisjZW5k
aWYKKyAgICAgICAgW10oV1RGOjpNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAp
OworfQorCitYUldlYkdMTGF5ZXI6On5YUldlYkdMTGF5ZXIoKSA9IGRlZmF1bHQ7CisKK2Jvb2wg
WFJXZWJHTExheWVyOjphbnRpYWxpYXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2FudGlhbGlh
czsKK30KKworYm9vbCBYUldlYkdMTGF5ZXI6Omlnbm9yZURlcHRoVmFsdWVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pZ25vcmVEZXB0aFZhbHVlczsKK30KKworY29uc3QgV2ViR0xGcmFtZWJ1
ZmZlciYgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuICpt
X2ZyYW1lYnVmZmVyLm9iamVjdDsKK30KKwordW5zaWduZWQgWFJXZWJHTExheWVyOjpmcmFtZWJ1
ZmZlcldpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlci53aWR0aDsKK30K
KwordW5zaWduZWQgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlckhlaWdodCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZnJhbWVidWZmZXIuaGVpZ2h0OworfQorCitSZWZQdHI8WFJWaWV3cG9ydD4g
WFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydChjb25zdCBYUlZpZXcmKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK2RvdWJsZSBYUldlYkdMTGF5ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVG
YWN0b3IoY29uc3QgWFJTZXNzaW9uJikKK3sKKyAgICByZXR1cm4gMS4wOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMGYzY2E4OTU0MDA4NWFiNzc0N2EwNzQ5NzU4ZjMxNzk2OWEzNDc0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdM
TGF5ZXIuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDsKKyNpZiBFTkFCTEUoV0VCR0wyKQorY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsK
KyNlbmRpZgorY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJWaWV3OworY2xhc3MgWFJWaWV3cG9y
dDsKK3N0cnVjdCBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBYUldlYkdMTGF5ZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2luZyBY
UlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+LCAKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBSZWZQdHI8V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dD4sCisjZW5kaWYKKyAgICAgICAgV1RGOjpNb25vc3RhdGUKKyAg
ICA+OworCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxYUldlYkdMTGF5ZXI+PiBjcmVhdGUo
Y29uc3QgWFJTZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXll
ckluaXQmKTsKKyAgICB+WFJXZWJHTExheWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygpIGNv
bnN0OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0IFdl
YkdMRnJhbWVidWZmZXImIGZyYW1lYnVmZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVi
dWZmZXJXaWR0aCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkgY29u
c3Q7CisKKyAgICBSZWZQdHI8WFJWaWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgWFJWaWV3Jik7
CisKKyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29u
c3QgWFJTZXNzaW9uJik7CisKK3ByaXZhdGU6CisgICAgWFJXZWJHTExheWVyKGNvbnN0IFhSU2Vz
c2lvbiYsIFhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7CisK
KyAgICBYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxpYXMg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisKKyAg
ICBzdHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0OworICAg
ICAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9
OworICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44YjY0NzU4YmVlNjExMzI2ZDllN2MwNzdhM2MxOTdlMTYxNWQwM2Q3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250ZXh0
IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0OworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIC8vQ29uc3RydWN0b3Io
WFJTZXNzaW9uIHNlc3Npb24sIFhSV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQsIG9wdGlv
bmFsIFhSV2ViR0xMYXllckluaXQgbGF5ZXJJbml0KSwKKyAgICAvL0NvbnN0cnVjdG9yTWF5VGhy
b3dFeGNlcHRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2Ug
WFJXZWJHTExheWVyIHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gYW50aWFsaWFzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlnbm9y
ZURlcHRoVmFsdWVzOworCisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJH
TEZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGZyYW1lYnVmZmVyV2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgZnJhbWVidWZmZXJIZWlnaHQ7CisKKyAgICAvLyBNZXRob2RzCisgICAgWFJWaWV3cG9y
dD8gZ2V0Vmlld3BvcnQoWFJWaWV3IHZpZXcpOworCisgICAgLy8gU3RhdGljIE1ldGhvZHMKKyAg
ICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoWFJTZXNzaW9u
IHNlc3Npb24pOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdM
TGF5ZXJJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM3MThmZGUyNDVmNjEyMzc3MzNmZjc5OTU2MGFjNDk4
MzVjOTBmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVySW5pdC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFhSV2ViR0xMYXllckluaXQg
eworICAgIGJvb2wgYW50aWFsaWFzIHsgdHJ1ZSB9OworICAgIGJvb2wgZGVwdGggeyB0cnVlIH07
CisgICAgYm9vbCBzdGVuY2lsIHsgZmFsc2UgfTsKKyAgICBib29sIGFscGhhIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMgeyB0cnVlIH07CisgICAgZG91YmxlIGZyYW1lYnVm
ZmVyU2NhbGVGYWN0b3IgeyAxLjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyNDViMWU2MTE5ZDc3NzNjZmJkMGYwZTQ1N2IyZjRlOTZjMTI1NmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllcklu
aXQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZGljdGlvbmFyeSBYUldlYkdM
TGF5ZXJJbml0IHsKKyAgICBib29sZWFuIGFudGlhbGlhcyA9IHRydWU7CisgICAgYm9vbGVhbiBk
ZXB0aCA9IHRydWU7CisgICAgYm9vbGVhbiBzdGVuY2lsID0gZmFsc2U7CisgICAgYm9vbGVhbiBh
bHBoYSA9IHRydWU7CisgICAgYm9vbGVhbiBpZ25vcmVEZXB0aFZhbHVlcyA9IGZhbHNlOworICAg
IGRvdWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yID0gMS4wOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
UEUuY21ha2UKaW5kZXggMGQ1OTgyZTFkYzY5ZWI2ODBmMDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4u
ZTc1ZWNlZjE0MGFiNWNlZWYxZDBkNmRiYzA2NmUzNWM5MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XUEUuY21ha2UKQEAgLTcwLDMgKzcwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1f
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7VVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9CiAgICAg
JHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9CiApCisKK2lmIChVU0VfT1BFTlhSKQorICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTlhSX0xJQlJBUklFU30pCisgICAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke09QRU5YUl9J
TkNMVURFX0RJUlN9KQorZW5kaWYgKCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IGE3MjFmYmIxYWQ4YTVhYTZiZGEwOWI2M2IzYTJhOWQ5OTdjOTExMmYuLjcx
ZGE4ZTY2MWFlYTI5NjViMjExNThiMWZlYjAyNzRjOTIzNDg2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC00MTEsNiArNDExLDMxIEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5h
dmlnYXRvckdQVS5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitNb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmNwcCBAbm8tdW5pZnkK
K01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VBcnJheS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIv
WFJSZW5kZXJTdGF0ZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zv
cm0uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uY3BwIEBuby11bmlmeQor
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hS
Vmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwIEBu
by11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwIEBuby11bmlmeQorCisjZW5k
aWYKKwogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGwuY3BwCkBAIC0yMDcxLDYgKzIwOTYsOSBAQCBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5jcHAKIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAogCitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhS
LmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5p
ZnkKKwogcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5j
cHAKIHBsdWdpbnMvRE9NUGx1Z2luLmNwcApAQCAtMzUxOCw2ICszNTQ2LDQxIEBAIEpTWFBhdGhO
U1Jlc29sdmVyLmNwcAogSlNYUGF0aFJlc3VsdC5jcHAKIEpTWFNMVFByb2Nlc3Nvci5jcHAKIAor
I2lmIEVOQUJMRV9XRUJHTAorCitKU1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVu
dmlyb25tZW50QmxlbmRNb2RlLmNwcAorSlNYUkV5ZS5jcHAKK0pTWFJGcmFtZS5jcHAKK0pTWFJG
cmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKK0pTWFJIYW5kZWRuZXNzLmNwcAorSlNYUklucHV0U291
cmNlLmNwcAorSlNYUklucHV0U291cmNlQXJyYXkuY3BwCitKU1hSSW5wdXRTb3VyY2VFdmVudC5j
cHAKK0pTWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKK0pTWFJQb3NlLmNwcAorSlNYUlJl
ZmVyZW5jZVNwYWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hSUmVmZXJl
bmNlU3BhY2VUeXBlLmNwcAorSlNYUlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRlclN0YXRlSW5p
dC5jcHAKK0pTWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTWFJTZXNzaW9uLmNwcAorSlNYUlNlc3Np
b25FdmVudC5jcHAKK0pTWFJTZXNzaW9uSW5pdC5jcHAKK0pTWFJTZXNzaW9uTW9kZS5jcHAKK0pT
WFJTcGFjZS5jcHAKK0pTWFJTeXN0ZW0uY3BwCitKU1hSVGFyZ2V0UmF5TW9kZS5jcHAKK0pTWFJW
aWV3LmNwcAorSlNYUlZpZXdlclBvc2UuY3BwCitKU1hSVmlld3BvcnQuY3BwCitKU1hSVmlzaWJp
bGl0eVN0YXRlLmNwcAorSlNYUldlYkdMTGF5ZXIuY3BwCitKU1hSV2ViR0xMYXllckluaXQuY3Bw
CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFX0dBTUVQQUQKIAogSlNHYW1lcGFkLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRm
MDIzZWJkNGVkZGJmNjkzNDA1NzIzNjk3YWRlOWJmNTM5Njg1ODkuLjMzYmZlMTcwOTZjYzNlMTI5
NjAyMDAxNzYwOTAzZDZmNDJkYjY3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MDAsNiArNDgwMCw2MCBAQAogCQlFMUU2
RUVBODBCNjI4REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNkVFQTcwQjYyOERCMzAwNUYy
RjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuaCAqLzsgfTsKIAkJRTFFQzI5QTAwQkIwNEM2QjAw
RUExODdCIC8qIFhQYXRoTm9kZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFQzI5OUUwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxRUQ4
QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVEOEFDMjBDQzQ5QkUw
MDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUxRUU4QjcwMjQxMkIyQTgwMEU3OTRE
NiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QjZDMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLzsg
fTsKKwkJRTFFRThCNzEyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCNkUyNDEyQjJBNzAw
RTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovOyB9OworCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0
RDYgLyogUGxhdGZvcm1YUi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRThCNkYyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCAqLzsgfTsK
KwkJRTFFRThCNzYyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQzcyNDEyQjE2RjAwRTc5
NEQ2IC8qIFhSVmlld2VyUG9zZS5oICovOyB9OworCQlFMUVFOEI3NzI0MTMxOTFGMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUM5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlVHlwZS5oICovOyB9OworCQlFMUVFOEI3ODI0MTMxOTFGMDBFNzk0RDYgLyogTmF2aWdhdG9y
V2ViWFIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovOyB9OworCQlFMUVF
OEI3OTI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNCMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oICovOyB9OworCQlFMUVFOEI3QTI0MTMxOTFGMDBFNzk0
RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNDMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291
cmNlRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEI3QjI0MTMxOTFGMDBFNzk0RDYgLyogWFJSaWdp
ZFRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi87
IH07CisJCUUxRUU4QjdDMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNFMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmNwcCAqLzsgfTsKKwkJRTFFRThCN0QyNDEzMTkx
RjAwRTc5NEQ2IC8qIFhSU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QUNGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNwYWNlLmggKi87IH07
CisJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDEy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggKi87IH07CisJCUUx
RUU4QjdGMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQyMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLzsgfTsKKwkJRTFFRThCODAyNDEzMTkxRjAw
RTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQzMjQxMkIxNzAwMEU3OTRENiAvKiBY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi87IH07CisJCUUxRUU4QjgxMjQxMzE5MUYwMEU3
OTRENiAvKiBYUlJlbmRlclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5o
ICovOyB9OworCQlFMUVFOEI4MjI0MTMxOTFGMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ2
MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5oICovOyB9OworCQlFMUVFOEI4
MzI0MTMxOTFGMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBY
UldlYkdMTGF5ZXIuY3BwICovOyB9OworCQlFMUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJS
ZWZlcmVuY2VTcGFjZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEFEQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmggKi87IH07CisJCUUxRUU4Qjg1MjQxMzE5MUYwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3BwICovOyB9OworCQlFMUVF
OEI4NjI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFERDI0MTJCMTcwMDBFNzk0
RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmggKi87IH07CisJCUUxRUU4Qjg3MjQxMzE5MUYwMEU3
OTRENiAvKiBYUlZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXcuaCAqLzsgfTsKKwkJRTFF
RThCODgyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUG9zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9z
ZS5oICovOyB9OworCQlFMUVFOEI4OTI0MTMxOTFGMDBFNzk0RDYgLyogWFJTeXN0ZW0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUyMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlN5c3RlbS5oICovOyB9OworCQlFMUVFOEI4QTI0MTMxOTFGMDBFNzk0
RDYgLyogWFJGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuaCAqLzsgfTsKKwkJRTFF
RThCOEIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJQ
b3NlLmNwcCAqLzsgfTsKKwkJRTFFRThCOEMyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2VBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmNwcCAqLzsg
fTsKKwkJRTFFRThCOEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNzI0MTJCMTcw
MDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAqLzsgfTsKKwkJRTFFRThCOEUyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QUU4MjQxMkIxNzAwMEU3OTRENiAvKiBYUlN5c3RlbS5jcHAgKi87
IH07CisJCUUxRUU4QjhGMjQxMzE5NTAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFF
OTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oICovOyB9OworCQlF
MUVFOEI5MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFQTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi87IH07CisJCUUxRUU4QjkxMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUlZpZXdwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmNwcCAqLzsg
fTsKKwkJRTFFRThCOTIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRUUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovOyB9OworCQlFMUVFOEI5MzI0MTMxOTUwMDBFNzk0
RDYgLyogWFJGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZS5jcHAgKi87IH07CisJ
CUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGMTI0MTJCMTcwMDBF
Nzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovOyB9OworCQlFMUVFOEI5NTI0MTMxOTUwMDBF
Nzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUYzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEI5NjI0MTMxOTUwMDBFNzk0RDYg
LyogWFJWaWV3cG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQuaCAqLzsgfTsKKwkJ
RTFFRThCOTcyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJF
eWUuaCAqLzsgfTsKKwkJRTFFRThCOTgyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU3BhY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjgyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2UuY3BwICovOyB9OworCQlFMUVFOEI5OTI0MTMxOTUwMDBF
Nzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLzsgfTsKKwkJRTFFRThCOUEyNDEzMTk1MDAwRTc5
NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QUZFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmgg
Ki87IH07CisJCUUxRUU4QjlCMjQxMzE5NTAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA0MjQxMkIx
NzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCAqLzsgfTsKKwkJRTFFRThCOUMyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVu
dmlyb25tZW50QmxlbmRNb2RlLmggKi87IH07CisJCUUxRUU4QjlEMjQxMzE5NTAwMEU3OTRENiAv
KiBYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5o
ICovOyB9OworCQlFMUVFOEI5RTI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDgy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCAqLzsgfTsKKwkJRTFFRThCOUYy
NDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2VFdmVudC5oICovOyB9OworCQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYg
LyogWFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdlclBvc2UuY3BwICov
OyB9OworCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwRDI0MTJC
MTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAgKi87IH07CisJCUUxRUU4QkEyMjQxMzE5
NjMwMEU3OTRENiAvKiBYUlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5j
cHAgKi87IH07CisJCUUxRUU4QkEzMjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjExMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaCAqLzsgfTsKKwkJRTFFRThCQTQyNDEzMTk2MzAwRTc5
NEQ2IC8qIFhSVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmNwcCAqLzsgfTsKKwkJ
RTFFRThCQTUyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjEzMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlNlc3Npb25Jbml0LmggKi87IH07CisJCUUxRUU4QkE2MjQxMzE5NjMwMEU3OTRENiAv
KiBYUlJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5o
ICovOyB9OworCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5j
cHAgKi87IH07CisJCUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRENiAvKiBYUklucHV0U291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5oICovOyB9OwogCQlFMUYxRTgzMDBDM0My
QkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjFFODJFMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0
ZW5zaW9ucy5oICovOyB9OwogCQlFMUY4MEI4ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5
UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFG
ODBCODYxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0b0tleVBhaXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUY4MEI4RTE4MzE3MkI1MDA3ODg1
QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUY4MEI4QzE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWly
LmggKi87IH07CkBAIC0xNTExNCw2ICsxNTE2OCw5MSBAQAogCQlFMUVDMjk5RDBCQjA0QzZCMDBF
QTE4N0IgLyogWFBhdGhOb2RlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFhQYXRoTm9kZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
RUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhOb2RlU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzcyNDEyQjE2
RjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUlZpZXdlclBvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThB
QzgyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFhSU2Vzc2lvbk1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZVR5cGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmln
YXRvcldlYlhSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldl
YlhSLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNCMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUlJlbmRlclN0YXRlSW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEFDQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlJpZ2lkVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhSUmlnaWRUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlJlbmRlclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlRXZlbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQzMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUQ0MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNwYWNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZW5kZXJTdGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmls
aXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJWaXNpYmlsaXR5
U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDcyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vz
c2lvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEODI0MTJC
MTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFhSV2ViR0xMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaXNpYmlsaXR5U3RhdGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFEQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVu
dEJsZW5kTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJFbnZpcm9ubWVudEJsZW5k
TW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURCMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlNlc3Npb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAv
KiBYUklucHV0U291cmNlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFJJbnB1dFNvdXJjZUFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QURFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFhSU2Vzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURG
MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhS
Vmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUwMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJW
aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUxMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlBvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJQb3Nl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlN5c3Rl
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFMzI0MTJCMTcwMDBFNzk0
RDYgLyogWFJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkZyYW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU0MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlBvc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VB
cnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU3MjQxMkIxNzAw
MEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUlNlc3Npb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFFODI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gWFJTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkZyYW1lUmVxdWVzdENhbGxiYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVBMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFJUYXJnZXRSYXlNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVC
MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhSVmlld3BvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3RhdGVJbml0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld2VyUG9z
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3ZXJQb3NlLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVk
bmVzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkhhbmRlZG5lc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0
RDYgLyogWFJGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBY
UkZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjEyNDEyQjE3
MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5hdmlnYXRvcldlYlhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRjIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFGMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSUmVmZXJlbmNl
U3BhY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY0MjQx
MkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhSVmlld3BvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThB
RjUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRXllLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhSRXllLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY2MjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBYUlJlZmVyZW5jZVNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRjcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNw
YWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSU3BhY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGOTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUZBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlw
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGQjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUZDMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFhSV2ViR0xMYXllci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUZEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWFJTZXNzaW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFGRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUZGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1v
ZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVGFyZ2V0UmF5TW9kZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAwMjQxMkIxNzAwMEU3OTRENiAvKiBYUklu
cHV0U291cmNlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAxMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBY
UlJpZ2lkVHJhbnNmb3JtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThC
MDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUlN5c3RlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAzMjQx
MkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJFeWUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNDI0MTJCMTcwMDBFNzk0
RDYgLyogWFJXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhS
V2ViR0xMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYUkVudmlyb25tZW50QmxlbmRNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QjA2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNm
b3JtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUmlnaWRUcmFuc2Zvcm0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDcyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSSGFuZGVkbmVzcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJIYW5kZWRuZXNz
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDgyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFJXZWJHTExheWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEIwOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIwQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdlclBvc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJWaWV3ZXJQb3NlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEMyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSRnJhbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRnJhbWUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUklu
cHV0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEUyNDEy
QjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBOYXZpZ2F0b3JXZWJYUi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QjBGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gWFJTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThCMTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSV2ViR0xMYXllckluaXQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIxMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSU2Vzc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSVmlldy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNl
c3Npb25Jbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSU2Vzc2lvbklu
aXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTQyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFJSZWZlcmVuY2VTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTYyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJQb3NlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJJbnB1
dFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxODI0MTJCMTcw
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUklucHV0U291cmNlQXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEI2QzI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1YUi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0
Zm9ybVhSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtWFIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4MkQwQzNDMkJCOTAwNkRCMzkxIC8q
IFhTTFRFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhTTFRFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4
MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRjgwQjg0MTgzMTcyNDcwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBDcnlwdG9LZXlQYWlyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzM4
LDYgKzIyNDc3LDcgQEAKIAkJCQk5OTZFNTlEQTFERjAwRDQ1MDA2NjEyQjkgLyogd2ViZHJpdmVy
ICovLAogCQkJCUQwMEY1OTNFMjE2RUNDNDMwMDBENzFEQiAvKiB3ZWJncHUgKi8sCiAJCQkJOTdB
QUJDRjcxNEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNvY2tldHMgKi8sCisJCQkJRTFFRThBQzYyNDEy
QjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovLAogCQkJKTsKIAkJCXBhdGggPSBNb2R1bGVzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI1ODg1LDYgKzI2MDI1LDcgQEAKIAkJCQk2NTZC
ODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0d29yayAqLywKIAkJCQkxQTJFNkU1NjBDQzU1MUUw
MDA0QTIwNjIgLyogc3FsICovLAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0
ICovLAorCQkJCUUxRUU4QjZCMjQxMkIyQTcwMEU3OTRENiAvKiB4ciAqLywKIAkJCQlERkRCOTEy
Q0Y4RTg4QTZEQTFBRDI2NEYgLyogQWJvcnRhYmxlVGFza1F1ZXVlLmggKi8sCiAJCQkJNDlBRTJE
OTQxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuY3BwICovLAogCQkJCTQ5QUUy
RDk1MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmggKi8sCkBAIC0yNjk3MCw2
ICsyNzExMSwxMTMgQEAKIAkJCW5hbWUgPSBUaHJlYWRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUVFOEFGMTI0MTJCMTcw
MDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovLAorCQkJCUUxRUU4QUNBMjQxMkIxNzAw
MEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovLAorCQkJCUUxRUU4QjBFMjQxMkIxNzAwMEU3
OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5pZGwgKi8sCisJCQkJRTFFRThBRDMyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEFEMTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLywKKwkJCQlFMUVFOEFG
NzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovLAorCQkJ
CUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi8s
CisJCQkJRTFFRThBREEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUu
aWRsICovLAorCQkJCUUxRUU4QUY1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5oICovLAorCQkJ
CUUxRUU4QjAzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5pZGwgKi8sCisJCQkJRTFFRThBRjAy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuY3BwICovLAorCQkJCUUxRUU4QUUzMjQxMkIxNzAw
MEU3OTRENiAvKiBYUkZyYW1lLmggKi8sCisJCQkJRTFFRThCMEMyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSRnJhbWUuaWRsICovLAorCQkJCUUxRUU4QUU5MjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1l
UmVxdWVzdENhbGxiYWNrLmggKi8sCisJCQkJRTFFRThBRkIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovLAorCQkJCUUxRUU4QUVFMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUkhhbmRlZG5lc3MuaCAqLywKKwkJCQlFMUVFOEIwNzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJIYW5kZWRuZXNzLmlkbCAqLywKKwkJCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZS5jcHAgKi8sCisJCQkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2UuaCAqLywKKwkJCQlFMUVFOEFFRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZS5pZGwgKi8sCisJCQkJRTFFRThBRTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2VBcnJheS5jcHAgKi8sCisJCQkJRTFFRThBREQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VBcnJheS5oICovLAorCQkJCUUxRUU4QjE4MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0
U291cmNlQXJyYXkuaWRsICovLAorCQkJCUUxRUU4QUNDMjQxMkIxNzAwMEU3OTRENiAvKiBYUklu
cHV0U291cmNlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QjA5MjQxMkIxNzAwMEU3OTRENiAvKiBY
UklucHV0U291cmNlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEIwMDI0MTJCMTcwMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8sCisJCQkJRTFFRThBRjkyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEFF
NDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgKi8sCisJ
CQkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAgKi8sCisJCQkJRTFFRThB
RTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5oICovLAorCQkJCUUxRUU4QjE2MjQxMkIxNzAw
MEU3OTRENiAvKiBYUlBvc2UuaWRsICovLAorCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxRUU4QUY2MjQxMkIxNzAwMEU3OTRENiAv
KiBYUlJlZmVyZW5jZVNwYWNlLmlkbCAqLywKKwkJCQlFMUVFOEFGMzI0MTJCMTcwMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLywKKwkJCQlFMUVFOEFEQjI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggKi8sCisJCQkJRTFFRThBRDAyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwgKi8sCisJCQkJRTFFRThBQzky
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmggKi8sCisJCQkJRTFFRThB
RkEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCAqLywKKwkJCQlF
MUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5jcHAgKi8sCisJCQkJRTFF
RThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaCAqLywKKwkJCQlFMUVFOEFG
MjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5pZGwgKi8sCisJCQkJRTFFRThBQ0Iy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggKi8sCisJCQkJRTFFRThBRUMy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmlkbCAqLywKKwkJCQlFMUVFOEFD
RDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8sCisJCQkJRTFFRThC
MDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zvcm0uaCAqLywKKwkJCQlFMUVFOEIw
MTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8sCisJCQkJRTFFRThC
MEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgKi8sCisJCQkJRTFFRThCMTEyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5oICovLAorCQkJCUUxRUU4QURFMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlNlc3Npb24uaWRsICovLAorCQkJCUUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlNlc3Npb25FdmVudC5jcHAgKi8sCisJCQkJRTFFRThBRTcyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSU2Vzc2lvbkV2ZW50LmggKi8sCisJCQkJRTFFRThBRkQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
U2Vzc2lvbkV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEIxMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJT
ZXNzaW9uSW5pdC5oICovLAorCQkJCUUxRUU4QUQ3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Np
b25Jbml0LmlkbCAqLywKKwkJCQlFMUVFOEFGRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9u
TW9kZS5oICovLAorCQkJCUUxRUU4QUM4MjQxMkIxNkYwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2Rl
LmlkbCAqLywKKwkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5jcHAgKi8s
CisJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2UuaCAqLywKKwkJCQlFMUVF
OEFENDI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5pZGwgKi8sCisJCQkJRTFFRThBRTgyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmNwcCAqLywKKwkJCQlFMUVFOEFFMjI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJTeXN0ZW0uaCAqLywKKwkJCQlFMUVFOEIwMjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJTeXN0ZW0uaWRsICovLAorCQkJCUUxRUU4QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdl
dFJheU1vZGUuaCAqLywKKwkJCQlFMUVFOEFGRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJUYXJnZXRS
YXlNb2RlLmlkbCAqLywKKwkJCQlFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmNw
cCAqLywKKwkJCQlFMUVFOEFFMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmggKi8sCisJCQkJ
RTFFRThBREYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlldy5pZGwgKi8sCisJCQkJRTFFRThCMEIy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5jcHAgKi8sCisJCQkJRTFFRThBQzcyNDEy
QjE2RjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oICovLAorCQkJCUUxRUU4QUVEMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlZpZXdlclBvc2UuaWRsICovLAorCQkJCUUxRUU4QUVCMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlZpZXdwb3J0LmNwcCAqLywKKwkJCQlFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYg
LyogWFJWaWV3cG9ydC5oICovLAorCQkJCUUxRUU4QjBBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
ZXdwb3J0LmlkbCAqLywKKwkJCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmls
aXR5U3RhdGUuaCAqLywKKwkJCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmls
aXR5U3RhdGUuaWRsICovLAorCQkJCUUxRUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdM
TGF5ZXIuY3BwICovLAorCQkJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5
ZXIuaCAqLywKKwkJCQlFMUVFOEFGQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmlk
bCAqLywKKwkJCQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5o
ICovLAorCQkJCUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0Lmlk
bCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VieHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OworCQlFMUVFOEI2QjI0MTJCMkE3MDBFNzk0RDYgLyogeHIgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRUU4QjZEMjQxMkIyQTcwMEU3OTRE
NiAvKiBvcGVueHIgKi8sCisJCQkJRTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3Jt
WFIuY3BwICovLAorCQkJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmgg
Ki8sCisJCQkpOworCQkJcGF0aCA9IHhyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJRTFFRThCNkQyNDEyQjJBNzAwRTc5NEQ2IC8qIG9wZW54ciAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2
IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJKTsKKwkJCXBhdGggPSBvcGVueHI7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFMUYwNDI0MzA5ODM5Mzg5MDA2Njk0RUEgLyog
eG1sICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTMxNjMz
LDYgKzMxODgxLDcgQEAKIAkJCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9y
SXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVBNzI1RDYxQUNBQkQ1NzAwRUFEMTdC
IC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2RTU5REYx
REYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVt
ZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzQzMEFEQkE1REUwMEE0NTU0RCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5RDkzNEIx
QUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxODQ1LDYgKzMyMDk0LDcgQEAKIAkJCQkwNzRFODJCQjE4QTY5RjBFMDA3
RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkIwRDRC
RTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzVDNDc2QjA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzEyQkU0ODAxRkU4NjRBNzAwMjAzMUNDIC8qIFBsYXliYWNrRGlyZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEwOTFDQkQ5OUY0MDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEzMjFDQzAx
QTk1MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzMxODEsNiArMzM0MzEsMzYgQEAKIAkJCQkxQUI3RkM4NDBBOEI5MkVDMDBEOUQz
N0IgLyogWFBhdGhVdGlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3RkM4NjBBOEI5MkVDMDBE
OUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCN0ZDODgwQThCOTJF
QzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUMyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1l
bnRCbGVuZE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjk3MjQxMzE5NTAwMEU3OTRE
NiAvKiBYUkV5ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOEEyNDEzMTkxRjAwRTc5NEQ2
IC8qIFhSRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjhGMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5
MjI0MTMxOTUwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MUVFOEJBODI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTFFRThCODYyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTkyNDEzMTk1MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg4
MjQxMzE5MUYwMEU3OTRENiAvKiBYUlBvc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE2
MjQxMzE5NjMwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEI3NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjgxMjQxMzE5MUYwMEU3OTRENiAv
KiBYUlJlbmRlclN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3OTI0MTMxOTFGMDBF
Nzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjlE
MjQxMzE5NTAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEJBMzI0MTMxOTYzMDBFNzk0RDYgLyogWFJTZXNzaW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUxRUU4QkE1MjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QTI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9u
TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCN0QyNDEzMTkxRjAwRTc5NEQ2IC8qIFhS
U3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg5MjQxMzE5MUYwMEU3OTRENiAvKiBY
UlN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTAyNDEzMTk1MDAwRTc5NEQ2IC8q
IFhSVGFyZ2V0UmF5TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODcyNDEzMTkxRjAw
RTc5NEQ2IC8qIFhSVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCNzYyNDEzMTkxRjAw
RTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTYyNDEz
MTk1MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjgy
MjQxMzE5MUYwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCOUIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTFFRThCOUUyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1MjE3RTAzMEE1RUNENDcwMERCOEQwMCAvKiBYU0xJbXBvcnRS
dWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlFQzA4MjQ1RTU5MDAxRTlBQkMgLyogWFNM
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGMUU4MzAwQzNDMkJCOTAwNkRCMzkx
IC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTMzNzEzLDYgKzMzOTkzLDcg
QEAKIAkJCQlDREYyQjAxNjE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDIxREJGREMyNzAwN0E3RDk5IC8qIE5h
dmlnYXRvckVNRS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE0QkIxMDE5NTRENjI3MDBGQTVD
MkUgLyogTmF2aWdhdG9yR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5NDI0
MTMxOTUwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE1NjlEMTMwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfY2xhc3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTU2OUQxNjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19pbnN0YW5jZS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNTY5RDE4MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX3J1bnRpbWUubW0g
aW4gU291cmNlcyAqLywKQEAgLTMzNzIwLDYgKzM0MDAxLDcgQEAKIAkJCQlFMTY5ODI2MDExMzQ2
MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
RUEyODQ2NjIxNDFFODQ5MDBFNDA3RTggLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjcxMjQxMkIyQTgw
MEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTMwMUNC
Rjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRG
Q0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLywK
QEAgLTM0MzgyLDYgKzM0NjY0LDI1IEBACiAJCQkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8q
IFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4MEMwQTJDRjI1NjAwRDU3
NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNUEzNkQ5MTEwNDU3Mjcw
MEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjgwMjQx
MzE5MUYwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMUVFOEI5MzI0MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4QzI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjdBMjQxMzE5MUYwMEU3OTRE
NiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCQTcy
NDEzMTk2MzAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTFFRThCOEIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFMUVFOEI3RjI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFj
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJS
ZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjdDMjQxMzE5
MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4
QjdCMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUUxRUU4QkEyMjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTFFRThCODUyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjk4MjQxMzE5NTAwMEU3OTRENiAvKiBYUlNwYWNl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjhFMjQxMzE5NTAwMEU3OTRENiAvKiBYUlN5
c3RlbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBNDI0MTMxOTYzMDBFNzk0RDYgLyog
WFJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkEwMjQxMzE5NTAwMEU3OTRENiAv
KiBYUlZpZXdlclBvc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCOTEyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSVmlld3BvcnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCODMyNDEz
MTkxRjAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IDMwNWJjZjUxNDRlMDJlMzYxZTVkMzJmMDQ3NTQxNWU1
OGI4NjVmZjMuLjk0ZjMxNjVlMWYyN2JhMDJjYTlkNmIzMjI0MmNkMzEzNGViMTMyYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtNjIsNiArNjIsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogc3RydWN0IElETFR5cGUgewogICAgIHVzaW5nIEltcGxlbWVudGF0aW9uVHlwZSA9
IFQ7CiAgICAgdXNpbmcgU3RvcmFnZVR5cGUgPSBUOworICAgIHVzaW5nIFNlcXVlbmNlU3RvcmFn
ZVR5cGUgPSBUOwogCiAgICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IFQ7CiAgICAgdXNpbmcgTnVs
bGFibGVQYXJhbWV0ZXJUeXBlID0gT3B0aW9uYWw8SW1wbGVtZW50YXRpb25UeXBlPjsKQEAgLTgy
LDYgKzgzLDcgQEAgc3RydWN0IElETFVuc3VwcG9ydGVkVHlwZSA6IElETFR5cGU8dm9pZD4geyB9
Owogc3RydWN0IElETE51bGwgOiBJRExUeXBlPHN0ZDo6bnVsbHB0cl90PiB7IH07CiAKIHN0cnVj
dCBJRExBbnkgOiBJRExUeXBlPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+IHsKKyAgICB1c2lu
ZyBTZXF1ZW5jZVN0b3JhZ2VUeXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIFBhcmFtZXRl
clR5cGUgPSBKU0M6OkpTVmFsdWU7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0g
SlNDOjpKU1ZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydFNlcXVlbmNlcy5oCmluZGV4IGM0OWRkOTM4ZmNlMjcxNjVmNzQ3ZTU4ZmUwOGE1NTNk
YmJmZGY1YzIuLjg2ZjdmMjc2ZmMwOGFlMDdjMDEwMDAyMjJkMzU5ZjBlZmViNWFlYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5o
CkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBEZXRhaWwgewogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJRExUeXBlPgogc3RydWN0IEdlbmVyaWNTZXF1ZW5jZUNvbnZlcnRlciB7Ci0gICAgdXNpbmcg
UmV0dXJuVHlwZSA9IFZlY3Rvcjx0eXBlbmFtZSBJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+
OworICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6U2VxdWVu
Y2VTdG9yYWdlVHlwZT47CiAKICAgICBzdGF0aWMgUmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6SlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QqIG9iamVjdCkK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKaW5kZXggNDRkNTBiMjA3YzUzOGExOTc5MmI0ZjMyMjZhZmU2NTI4Nzc4NzIwOS4uMTg4
MmE5ZWZmZTI0MGM0NTliZDVkMzQyNjE3YTBjZDkzM2MyZDg4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM1LDYgKzIzNSwy
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV29ya2xldEdsb2JhbFNjb3BlKSBc
CiAgICAgbWFjcm8oV3JpdGFibGVTdHJlYW0pIFwKICAgICBtYWNybyhYTUxIdHRwUmVxdWVzdCkg
XAorICAgIG1hY3JvKFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKSBcCisgICAgbWFjcm8oWFJGcmFt
ZSkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2UpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNl
QXJyYXkpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlRXZlbnQpIFwKKyAgICBtYWNybyhYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50KSBcCisgICAgbWFjcm8oWFJQb3NlKSBcCisgICAgbWFjcm8o
WFJSZWZlcmVuY2VTcGFjZSkgXAorICAgIG1hY3JvKFhSUmVmZXJlbmNlU3BhY2VFdmVudCkgXAor
ICAgIG1hY3JvKFhSUmVuZGVyU3RhdGUpIFwKKyAgICBtYWNybyhYUlJpZ2lkVHJhbnNmb3JtKSBc
CisgICAgbWFjcm8oWFJTZXNzaW9uKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uRXZlbnQpIFwKKyAg
ICBtYWNybyhYUlNwYWNlKSBcCisgICAgbWFjcm8oWFJTeXN0ZW0pIFwKKyAgICBtYWNybyhYUlZp
ZXcpIFwKKyAgICBtYWNybyhYUlZpZXdlclBvc2UpIFwKKyAgICBtYWNybyhYUlZpZXdwb3J0KSBc
CisgICAgbWFjcm8oWFJXZWJHTExheWVyKSBcCiAgICAgbWFjcm8oYXBwZW5kRnJvbUpTKSBcCiAg
ICAgbWFjcm8oYXNzb2NpYXRlZFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIpIFwKICAgICBt
YWNybyhhdXRvQWxsb2NhdGVDaHVua1NpemUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4
IGQ0OTYwYjljZjc1MWY0MTE0MjJiNjcwODQxYTA1YjhiZDJjNzFjMjguLmY4YzFkMzVhZmNkYTM5
ZDM0YTZlZWE3MzU3Y2M4YzM0OGJjYWRmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAt
MTQ4LDYgKzE0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhpY2VnYXRoZXJp
bmdzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKGluYWN0aXZlKSBcCiAgICAgbWFjcm8oaW5wdXQp
IFwKKyAgICBtYWNybyhpbnB1dHNvdXJjZXNjaGFuZ2UpIFwKICAgICBtYWNybyhpbnN0YWxsKSBc
CiAgICAgbWFjcm8oaW52YWxpZCkgXAogICAgIG1hY3JvKGtleWRvd24pIFwKQEAgLTIzMSw2ICsy
MzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oc2Vla2VkKSBcCiAgICAgbWFj
cm8oc2Vla2luZykgXAogICAgIG1hY3JvKHNlbGVjdCkgXAorICAgIG1hY3JvKHNlbGVjdGVuZCkg
XAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkgXAogICAgIG1hY3JvKHNlbGVjdHN0YXJ0KSBc
CiAgICAgbWFjcm8oc2hpcHBpbmdhZGRyZXNzY2hhbmdlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCmluZGV4IDE1N2YzMzFjMWJhNzNjMTBkNWQzMzQ5NmFkMjVmZTY1M2E3YzUxYTIuLmM3OTNl
M2Y2NjJjNmMzZWQ4ZWM1NTJlYTM4M2FjOTZmYzlmYTA5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluCkBAIC04NSwzICs4NSw3IEBAIE1lZGlhS2V5TWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFs
PUVOQ1JZUFRFRF9NRURJQQogUG9pbnRlckV2ZW50IGNvbmRpdGlvbmFsPVBPSU5URVJfRVZFTlRT
CiBHUFVVbmNhcHR1cmVkRXJyb3JFdmVudCBjb25kaXRpb25hbD1XRUJHUFUKIEVudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50IGNvbmRpdGlvbmFsPVBJQ1RVUkVfSU5fUElDVFVSRV9BUEkKK1hSSW5w
dXRTb3VyY2VFdmVudCBjb25kaXRpb25hbD1XRUJHTAorWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dCBjb25kaXRpb25hbD1XRUJHTAorWFJSZWZlcmVuY2VTcGFjZUV2ZW50IGNvbmRpdGlvbmFsPVdF
QkdMCitYUlNlc3Npb25FdmVudCBjb25kaXRpb25hbD1XRUJHTApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggODFlN2NjOWYwYjc2NTA1NjJhYWJmZWZlMDVhNWEz
YWQxYmJiYjhmZi4uZWIwYWUwMDY2ODNhODdkYjdmM2I4NGM1NWQxNDBhNDc5N2I4M2I1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC01OCw0ICs1OCw3IEBA
IFdvcmtlcgogV29ya2xldEdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPUNTU19QQUlOVElOR19BUEkK
IFhNTEh0dHBSZXF1ZXN0CiBYTUxIdHRwUmVxdWVzdFVwbG9hZAorWFJTZXNzaW9uIGNvbmRpdGlv
bmFsPVdFQkdMCitYUlNwYWNlIGNvbmRpdGlvbmFsPVdFQkdMCitYUlN5c3RlbSBjb25kaXRpb25h
bD1XRUJHTAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
CmluZGV4IGFhMjliODM1NWZiNThlMTMxMTE0MDQ1MTZjNDA2NzAxMzc4YTFiMjAuLjg4YjJkY2Q3
YTZhYjZkNjQ5NDY0NmYzM2JlNzEyNzg1NTYwNzdjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0xMzgsNiArMTM4LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBt
X2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGluc3Bl
Y3RvckFkZGl0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckFkZGl0aW9u
c0VuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0V2ViWFJFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IG1fd2ViWFJFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB3ZWJYUkVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3dlYlhSRW5hYmxlZDsgfQorCiAgICAgdm9pZCBzZXRBY2Nlc3NpYmls
aXR5T2JqZWN0TW9kZWxFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYWNjZXNzaWJpbGl0eU9i
amVjdE1vZGVsRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgYWNjZXNzaWJpbGl0eU9i
amVjdE1vZGVsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eU9iamVjdE1v
ZGVsRW5hYmxlZDsgfQogCkBAIC00NDEsNiArNDQ0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNXZWJTb2NrZXRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mZXRjaEFQSUtlZXBBbGl2
ZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2ViWFJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1fYWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2FyaWFSZWZsZWN0aW9uRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXRwRGVidWdNb2Rl
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRm
b3JtWFIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTcyNjhlZTY3N2EzNzlhNmJmNTUxNzBiOTkwNGYzM2JiZTc3MWFmOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwCkBA
IC0wLDAgKzEsMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhLCBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL1BsYXRmb3JtWFIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTAyOTMwMmI2MDkwOTJlOGQ3ZDYz
MjkzZTIwYmMxMWIzMjdiYzU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvUGxhdGZvcm1YUi5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhLCBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8bWVtb3J5PgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBQbGF0Zm9ybVhSIHsKKworZW51bSBj
bGFzcyBTZXNzaW9uTW9kZSB7CisgICAgSW5saW5lLAorICAgIEltbWVyc2l2ZVZyLAorICAgIElt
bWVyc2l2ZUFyLAorfTsKKworY2xhc3MgRGV2aWNlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERl
dmljZT4geworcHVibGljOgorfTsKKworY2xhc3MgSW5zdGFuY2UgeworcHVibGljOgorICAgIHN0
YXRpYyBJbnN0YW5jZSYgc2luZ2xldG9uKCk7CisKK3ByaXZhdGU6CisgICAgSW5zdGFuY2UoKTsK
KyAgICB+SW5zdGFuY2UoKTsKKworICAgIHN0cnVjdCBJbXBsOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJbXBsPiBtX2ltcGw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBQbGF0Zm9ybVhSCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGU4YzIyYjY5ZmJmYTA2ZDk1MmY2OTM1MWEyMWQ1OTJhMWQ4MzRmYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcApA
QCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorCisjaWYgVVNFX09Q
RU5YUgorI2luY2x1ZGUgPG9wZW54ci9vcGVueHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KyNlbmRpZiAvLyBVU0VfT1BFTlhSCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisK
K25hbWVzcGFjZSBQbGF0Zm9ybVhSIHsKKworI2lmIFVTRV9PUEVOWFIKKwordGVtcGxhdGU8dHlw
ZW5hbWUgVCwgWHJTdHJ1Y3R1cmVUeXBlIFN0cnVjdHVyZVR5cGU+CitUIGNyZWF0ZVN0cnVjdHVy
ZSgpCit7CisgICAgVCBvYmplY3Q7CisgICAgc3RkOjptZW1zZXQoJm9iamVjdCwgMCwgc2l6ZW9m
KFQpKTsKKyAgICBvYmplY3QudHlwZSA9IFN0cnVjdHVyZVR5cGU7CisgICAgb2JqZWN0Lm5leHQg
PSBudWxscHRyOworICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cmluZyByZXN1bHRUb1N0cmlu
ZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBpbnN0YW5jZSkKK3sKKyAgICBjaGFyIGJ1ZmZl
cltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKKyAgICBYclJlc3VsdCByZXN1bHQgPSB4clJl
c3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVmZmVyKTsKKyAgICBpZiAocmVzdWx0ID09
IFhSX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4g
bWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKK30KKworI2RlZmluZSBS
RVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgY2FsbCwgaW5zdGFuY2UpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKFhSX0ZBSUxFRChy
ZXN1bHQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyAlczog
JXNcbiIsIF9fZnVuY19fLCBjYWxsLCByZXN1bHRUb1N0cmluZyhyZXN1bHQsIGluc3RhbmNlKS51
dGY4KCkuZGF0YSgpKTsgXAorICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwor
I2VuZGlmIC8vIFVTRV9PUEVOWFIKKworc3RydWN0IEluc3RhbmNlOjpJbXBsIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBJbXBsKCk7CisgICAgfkltcGwoKTsK
KworI2lmIFVTRV9PUEVOWFIKKyAgICBYckluc3RhbmNlIG1faW5zdGFuY2UgeyBYUl9OVUxMX0hB
TkRMRSB9OworI2VuZGlmIC8vIFVTRV9PUEVOWFIKK307CisKK0luc3RhbmNlOjpJbXBsOjpJbXBs
KCkKK3sKKyNpZiBVU0VfT1BFTlhSCisgICAgV1RGTG9nQWx3YXlzKCJPcGVuWFI6IGluaXRpYWxp
emluZ1xuIik7CisKKyAgICBbJl0geworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50T3V0
cHV0IHsgMCB9OworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVy
UHJvcGVydGllcygwLCAmcHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJF
VFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKSIs
IG1faW5zdGFuY2UpOworCisgICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1dCkgeworICAg
ICAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpOiBu
byBwcm9wZXJ0aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIFZlY3RvcjxYckFwaUxheWVyUHJvcGVydGllcz4gcHJvcGVydGllcyhwcm9wZXJ0eUNvdW50
T3V0cHV0KTsKKyAgICAgICAgcmVzdWx0ID0geHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMo
cHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0ciwgcHJvcGVydGllcy5kYXRhKCkpOworICAgICAg
ICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVz
KCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlQXBp
TGF5ZXJQcm9wZXJ0aWVzKCk6ICV6dSBwcm9wZXJ0aWVzXG4iLCBwcm9wZXJ0aWVzLnNpemUoKSk7
CisgICAgfSgpOworCisgICAgWyZdIHsKKyAgICAgICAgdWludDMyX3QgcHJvcGVydHlDb3VudE91
dHB1dCB7IDAgfTsKKyAgICAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJFbnVtZXJhdGVJbnN0YW5j
ZUV4dGVuc2lvblByb3BlcnRpZXMobnVsbHB0ciwgMCwgJnByb3BlcnR5Q291bnRPdXRwdXQsIG51
bGxwdHIpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlSW5z
dGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBpZiAo
IXByb3BlcnR5Q291bnRPdXRwdXQpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVt
ZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKTogbm8gcHJvcGVydGllc1xuIik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8WHJFeHRlbnNp
b25Qcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRwdXQsCisgICAgICAgICAg
ICBbXSB7CisgICAgICAgICAgICAgICAgWHJFeHRlbnNpb25Qcm9wZXJ0aWVzIG9iamVjdDsKKyAg
ICAgICAgICAgICAgICBzdGQ6Om1lbXNldCgmb2JqZWN0LCAwLCBzaXplb2YoWHJFeHRlbnNpb25Q
cm9wZXJ0aWVzKSk7CisgICAgICAgICAgICAgICAgb2JqZWN0LnR5cGUgPSBYUl9UWVBFX0VYVEVO
U0lPTl9QUk9QRVJUSUVTOworICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAg
ICAgICB9KCkpOworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50V3JpdHRlbiB7IDAgfTsK
KyAgICAgICAgcmVzdWx0ID0geHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMo
bnVsbHB0ciwgcHJvcGVydHlDb3VudE91dHB1dCwgJnByb3BlcnR5Q291bnRXcml0dGVuLCBwcm9w
ZXJ0aWVzLmRhdGEoKSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVt
ZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAg
ICAgIFdURkxvZ0Fsd2F5cygieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMo
KTogJXp1IGV4dGVuc2lvbiBwcm9wZXJ0aWVzXG4iLCBwcm9wZXJ0aWVzLnNpemUoKSk7CisgICAg
ICAgIGZvciAoYXV0byYgcHJvcGVydHkgOiBwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBXVEZM
b2dBbHdheXMoIiAgZXh0ZW5zaW9uICclcycsIHZlcnNpb24gJXVcbiIsCisgICAgICAgICAgICAg
ICAgcHJvcGVydHkuZXh0ZW5zaW9uTmFtZSwgcHJvcGVydHkuZXh0ZW5zaW9uVmVyc2lvbik7Cisg
ICAgICAgIH0KKyAgICB9KCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc19hcHBsaWNhdGlv
bk5hbWUgPSAiV2ViWFIgKFdlYktpdCkiOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2Fw
cGxpY2F0aW9uVmVyc2lvbiA9IDE7CisKKyAgICB7CisgICAgICAgIGF1dG8gY3JlYXRlSW5mbyA9
IGNyZWF0ZVN0cnVjdHVyZTxYckluc3RhbmNlQ3JlYXRlSW5mbywgWFJfVFlQRV9JTlNUQU5DRV9D
UkVBVEVfSU5GTz4oKTsKKyAgICAgICAgY3JlYXRlSW5mby5jcmVhdGVGbGFncyA9IDA7CisgICAg
ICAgIHN0ZDo6bWVtY3B5KGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwcGxpY2F0aW9uTmFt
ZSwgc19hcHBsaWNhdGlvbk5hbWUsIFhSX01BWF9BUFBMSUNBVElPTl9OQU1FX1NJWkUpOworICAg
ICAgICBjcmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5mby5hcGlWZXJzaW9uID0gWFJfQ1VSUkVOVF9B
UElfVkVSU0lPTjsKKyAgICAgICAgY3JlYXRlSW5mby5hcHBsaWNhdGlvbkluZm8uYXBwbGljYXRp
b25WZXJzaW9uID0gc19hcHBsaWNhdGlvblZlcnNpb247CisgICAgICAgIGNyZWF0ZUluZm8uZW5h
YmxlZEFwaUxheWVyQ291bnQgPSAwOworICAgICAgICBjcmVhdGVJbmZvLmVuYWJsZWRFeHRlbnNp
b25Db3VudCA9IDA7CisKKyAgICAgICAgWHJJbnN0YW5jZSBpbnN0YW5jZTsKKyAgICAgICAgWHJS
ZXN1bHQgcmVzdWx0ID0geHJDcmVhdGVJbnN0YW5jZSgmY3JlYXRlSW5mbywgJmluc3RhbmNlKTsK
KyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckNyZWF0ZUluc3RhbmNlKCkiLCBt
X2luc3RhbmNlKTsKKworICAgICAgICBtX2luc3RhbmNlID0gaW5zdGFuY2U7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygieHJDcmVhdGVJbnN0YW5jZSgpOiB1c2luZyBpbnN0YW5jZSAlcFxuIiwgbV9p
bnN0YW5jZSk7CisgICAgfQorI2VuZGlmIC8vIFVTRV9PUEVOWFIKK30KKworSW5zdGFuY2U6Oklt
cGw6On5JbXBsKCkKK3sKK30KKworSW5zdGFuY2UmIEluc3RhbmNlOjpzaW5nbGV0b24oKQorewor
ICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SW5zdGFuY2U+IHNfaW5zdGFuY2U7CisgICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIHNfb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uoc19v
bmNlRmxhZywKKyAgICAgICAgWyZdIHsKKyAgICAgICAgICAgIHNfaW5zdGFuY2UtPm1faW1wbCA9
IG1ha2VVbmlxdWU8SW1wbD4oKTsKKyAgICAgICAgfSk7CisgICAgcmV0dXJuIHNfaW5zdGFuY2Uu
Z2V0KCk7Cit9CisKK0luc3RhbmNlOjpJbnN0YW5jZSgpID0gZGVmYXVsdDsKK0luc3RhbmNlOjp+
SW5zdGFuY2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFBsYXRmb3JtWFIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDUwMTA0YTljOWJiY2FhOTgy
ZmQyZjNkNzFhYTIzZjVhM2Y2ZWU5OGEuLmZiNDk0YjgwZGJlZjFhNDE2NjdhNGU3ZmU3NGJiZWY4
NDhjYWIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAt
MTk3NSw2ICsxOTc1LDE1IEBAIFdlYlNoYXJlRmlsZUFQSUVuYWJsZWQ6CiAgICAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgICBjYXRlZ29yeTogZXhwZXJpbWVudGFs
CiAKK1dlYlhSRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViWFIgRGV2aWNlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiQWRkcyBzdXBwb3J0IGZvciBhY2Nlc3NpbmcgdmlydHVhbCByZWFsaXR5IChW
UikgYW5kIGF1Z21lbnRlZCByZWFsaXR5IChBUikgZGV2aWNlcywgaW5jbHVkaW5nIHNlbnNvcnMg
YW5kIGhlYWQtbW91bnRlZCBkaXNwbGF5cywgb24gdGhlIFdlYiIKKyAgY2F0ZWdvcnk6IGV4cGVy
aW1lbnRhbAorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjb25k
aXRpb246IEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oV1BFKQorCiAjIERlcHJlY2F0ZWQKIAog
SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9G
aW5kT3BlblhSLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIuY21ha2UKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmJmZGYwNGMxMWVkZDAzOTAwZmM0YzE0MmNlNzZhNjYxNDgzMGY2ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMg
LSBUcnkgdG8gZmluZCBPcGVuWFIuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIwor
IyAgT1BFTlhSX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBPUEVOWFJfSU5DTFVERV9ESVJT
IC0gdGhlIFdQRSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBPUEVOWFJfTElCUkFSSUVTIC0gbGlu
ayB0aGVzZSB0byB1c2UgV1BFLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENf
T1BFTlhSIFFVSUVUIG9wZW54cikKKworZmluZF9wYXRoKE9QRU5YUl9JTkNMVURFX0RJUlMKKyAg
ICBOQU1FUyBvcGVueHIvb3BlbnhyLmgKKyAgICBISU5UUyAke1BDX09QRU5YUl9JTkNMVURFRElS
fSAke1BDX09QRU5YUl9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShPUEVOWFJfTElC
UkFSSUVTCisgICAgTkFNRVMgb3BlbnhyX2xvYWRlcgorICAgIEhJTlRTICR7UENfT1BFTlhSX0xJ
QkRJUn0gJHtQQ19PUEVOWFJfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2FkdmFuY2VkKE9Q
RU5YUl9JTkNMVURFX0RJUlMgT1BFTlhSX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFja2Fn
ZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhP
cGVuWFIgUkVRVUlSRURfVkFSUyBPUEVOWFJfSU5DTFVERV9ESVJTIE9QRU5YUl9MSUJSQVJJRVMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IDFhYmU5NTMyMGQ1YTYzNzhjZjJhN2QwOWFhOWZmOGQ0
YTdhMDRjNGMuLjk2NzU2OGJlZGI5ZDJmNzY0Zjc0N2FmZDMzODY0NjBkZDMxZTU2ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlCkBAIC0xNzIsNiArMTcyLDkgQEAgaWYgKEVOQUJMRV9XUEVfUVRfQVBJ
IE9SIFVTRV9XUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAgICAgZmluZF9wYWNrYWdl
KFdQRUJhY2tlbmQtZmRvIDEuNS4wIFJFUVVJUkVEKQogZW5kaWYgKCkKIAorZmluZF9wYWNrYWdl
KE9wZW5YUikKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOWFIgJHtPUEVOWFJfRk9V
TkR9KQorCiBhZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQogYWRkX2RlZmluaXRp
b25zKC1ER0VUVEVYVF9QQUNLQUdFPSJXUEUiKQogYWRkX2RlZmluaXRpb25zKC1ESlNDX0dMSUJf
QVBJX0VOQUJMRUQpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOGY4
NTAxMjM2MDQ5MjA1M2ZkMDMzYWRjNWRkNmQ4ZGQxYjE3YTlkZC4uMGJhMmVjNDE2MTJmZDhmNmZl
YTU3NWE0ZTY5ODUwNTNmNmNkZDQ0ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAzLTA2ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1
aWxkIGNvbmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgT3BlblhSIGRldGVjdGlvbiBhbmQgVVNFX09QRU5YUiBk
ZWZpbmUgdG8gYmUgdXNlZCBpbiB0aGUgc291cmNlcy4KKyAgICAgICAgSXQgYWxzbyBhZGRzIGEg
ZGVwZW5kZW5jeSBiZXR3ZWVuIFVTRV9PUEVOWFIgYW5kIEVOQUJMRV9XRUJHTC4KKworICAgICAg
ICBMYXJnZWx5IGJhc2VkIG9uIHByZXZpb3VzIHdvcmsgYnkgxb1hbiBEb2JlcsWhZWsuCisKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZTogQWRkZWQuCisgICAgICAgICog
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMjAtMDMtMDMgIEZ1amlpIEhpcm9u
b3JpICA8ZnVqaWkuaGlyb25vcmlAZ21haWwuY29tPgogCiAgICAgICAgIFtDdXJsXSBBZGQgVExT
IGRlYnVnZ2luZyBmZWF0dXJlIHRvIGxvZyBlbmNyeXB0aW9uIGtleXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393250</attachid>
            <date>2020-03-11 09:21:53 -0700</date>
            <delta_ts>2020-03-13 13:59:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208702-20200311172150.patch</filename>
            <type>text/plain</type>
            <size>268814</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYzZTU2NWJmMjU3Yjk3ODFhMWNhMzg1
ZWMwMjk3Y2ZlMDUyNmJiZjguLmRiOTU1NmQ3NmNhMzM0NzQwM2I5ZThlNjg3M2QwODQxMmRjMmIz
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQg
YnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBEZWZpbmUgVVNFX09QRU5YUiAo
ZGlzYWJsZWQpIGlmIGl0IHdhcyBub3QgZGVmaW5lZCBieSB0aGUgYnVpbGQgc3lzdGVtIGp1c3Qg
aW4gY2FzZQorICAgICAgICBFTkFCTEVfV0VCR0wgaXMgZGVmaW5lZCBhbmQgYWN0aXZlLgorCisg
ICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOgorCiAyMDIwLTAzLTA5ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgRml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcyMDA4MzAzNjk3
M2IzNTUwOGVmNWNkY2RlYjBmMzExMDY5NWY2ZS4uYTA5YmMxMTQ3ODVjZjBiZTMyNWI4ODg2M2Zm
NWQzZjUwZjM4NDg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxNSBAQAorMjAyMC0wMy0wNiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2Vi
WFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRoZSBJRExzIGRl
ZmluZWQgYnkgdGhlIHNwZWMgd2l0aCB2ZXJ5IGJhc2ljIGVtcHR5IGltcGxlbWVudGF0aW9ucyB0
byBnZXQgdGhlbQorICAgICAgICBidWlsdC4gQXBhcnQgZnJvbSB0aGF0IGEgdmVyeSBiYXNpYyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVxdWlyZWQgcGxhdGZvcm0gY29kZSB1c2luZworICAgICAg
ICBPcGVuWFIgQVBJIHdhcyBhbHNvIGFkZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyBu
byBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgcmVhbGx5IGFkZGVkIChlbXB0eSBpbXBsZW1lbnRhdGlv
bnMpLiBIb3dldmVyCisgICAgICAgIGZvbGxvdyB1cCBwYXRjaGVzIHdpbGwgaW1wb3J0IHRoZSBh
bHJlYWR5IGF2YWlsYWJsZSBXUFQgdGVzdHMgZm9yIFdlYlhSLgorCisgICAgICAgIExhcmdlbHkg
YmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdG9yV2ViWFI6OnhyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcldlYlhS
Ojpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Ym91bmRzR2VvbWV0
cnkgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRXllLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhS
RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpYUkZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSRnJhbWU6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJGcmFtZTo6Z2V0Vmlld2VyUG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpYUkZyYW1lOjpn
ZXRQb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJIYW5kZWRuZXNzLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6WFJJbnB1dFNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlOjpoYW5kZWRuZXNzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnRhcmdldFJheU1vZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhSSW5wdXRTb3VyY2U6OnByb2ZpbGVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlQXJyYXkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3Vy
Y2VBcnJheTo6bGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VB
cnJheTo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
QXJyYXkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJy
YXkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXgg
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ6OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSUG9zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJQ
b3NlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJQb3NlOjpYUlBvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJQb3NlOjp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
WFJQb3NlOjplbXVsYXRlZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSUG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VTcGFjZTo6WFJSZWZlcmVuY2VTcGFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VT
cGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnJlZmVyZW5jZVNw
YWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VFdmVudDo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZVR5cGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
VHlwZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6ZGVwdGhOZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
UmVuZGVyU3RhdGU6OmlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9YUlJlbmRlclN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlSW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVy
U3RhdGVJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJh
bnNmb3JtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6WFJSaWdpZFRyYW5z
Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjpvcmllbnRhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpYUlJpZ2lkVHJhbnNmb3JtOjptYXRyaXggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6WFJSaWdpZFRyYW5zZm9ybTo6aW52ZXJzZSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNl
c3Npb246OmVudmlyb25tZW50QmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhS
U2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vz
c2lvbjo6cmVuZGVyU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjpp
bnB1dFNvdXJjZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNzaW9uOjp1cGRhdGVS
ZW5kZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVu
Y2VTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb246OmNhbmNlbEFuaW1hdGlvbkZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbjo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlhSU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpYUlNlc3Npb246OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WFJTZXNzaW9uRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpY
UlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNz
aW9uRXZlbnQ6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNz
aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlNwYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYUlNwYWNl
OjpYUlNwYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU3BhY2UuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUlN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJTeXN0
ZW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlN5c3RlbTo6WFJTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6WFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBvcnRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpYUlN5c3RlbTo6cmVxdWVzdFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6WFJT
eXN0ZW06OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJT
eXN0ZW06OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTeXN0ZW0uaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9YUlZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6WFJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlhSVmlldzo6ZXllIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSVmlldzo6cHJvamVjdGlv
bk1hdHJpeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXc6OnRyYW5zZm9ybSBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1hSVmlld2VyUG9zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3ZXJQb3Nl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3ZXJQb3NlOjp2aWV3cyBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhSVmll
d3BvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlZpZXdwb3J0Ojp4IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSVmlld3BvcnQ6OnkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJWaWV3cG9ydDo6d2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJWaWV3cG9y
dDo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhSV2ViR0xMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXll
cjo6WFJXZWJHTExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6YW50aWFs
aWFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6aWdub3JlRGVwdGhW
YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVyV2lk
dGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlckhl
aWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpYUldlYkdMTGF5ZXI6OmdldFZpZXdwb3J0
KToKKyAgICAgICAgKFdlYkNvcmU6OlhSV2ViR0xMYXllcjo6Z2V0TmF0aXZlRnJhbWVidWZmZXJT
Y2FsZUZhY3Rvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbDogQWRkZWQuCisgICAgICAgICog
UGxhdGZvcm1XUEUuY21ha2U6IEFkZCBPcGVuWFIgaW5jbHVkZXMgYW5kIGxpYnMuCisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoK
KyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDogQWRkZWQgV2ViWFIgZmVh
dHVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhS
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJY
UkVuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgIChQ
bGF0Zm9ybVhSOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoUGxhdGZvcm1YUjo6cmVzdWx0
VG9TdHJpbmcpOgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6OkltcGwpOgor
ICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OkltcGw6On5JbXBsKToKKyAgICAgICAgKFBs
YXRmb3JtWFI6Okluc3RhbmNlOjpzaW5nbGV0b24pOgorCiAyMDIwLTAzLTExICBKYWNrIExlZSAg
PHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIEtleWZyYW1lRWZm
ZWN0OjpnZXRBbmltYXRlZFN0eWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlYjM2ZjExOTJkNTJjNjc3YWM1MWJm
ZmUxMGVlNjUyNWI4NmIwZjguLmVhZjFlYzI3YWQ4MTVhYzViZTM4ODg2YTJjMmMyYjNkODkxYmVl
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDYgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVi
cyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMYXJnZWx5IGJhc2VkIG9uIHByZXZpb3VzIHdvcmsg
Ynkgxb1hbiBEb2JlcsWhZWsuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFt
bDogQWRkZWQgaW5mbyBhYm91dCB0aGUgV2ViWFIgaW1wbGVtZW50YXRpb24gc3RhdHVzLgorCiAy
MDIwLTAzLTEwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAg
ICAgW0dQVSBQcm9jZXNzXSBXb3JrIHRvd2FyZHMgY29tcGlsaW5nIG91dCBvbiBub24tQ29jb2Eg
cG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGRlZGZhMTRkNWE1ZGRkYTg0ZTMzNWJmZDQ4NWU3NTUwOTdm
YWVjNTcuLmRhYTdkMzYzYTU0ZTIyNDMyZGI0OWU3ODFjODMxMTM3MjVhZGMzMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaApAQCAtMTgwLDYgKzE4MCwxMCBAQAogI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wg
fHwgVVNFX09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpICYmICFV
U0UoVEVYVFVSRV9NQVBQRVIpCiAjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRo
IFVTRV9PUEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wKICNlbmRpZgorCisjaWYgIWRl
ZmluZWQoVVNFX09QRU5YUikKKyNkZWZpbmUgVVNFX09QRU5YUiAwCisjZW5kaWYKICNlbmRpZgog
CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkg
JiYgIWRlZmluZWQoVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAyZWZjZTBkM2Q5NDUxYzUxNDBmN2NmYmU2MjIzZTJmZjM5Mjg3ZjUzLi4yMTkyMDQ1NWNhNDc3
YTM2ZDk3Yjc4YjU5NjI0MjNjMzQ5ODkyY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjQs
NiArNjQsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93
ZWJzb2NrZXRzIgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnhyIgogICAgICIke1dF
QkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vYW5pbWF0aW9uIgpAQCAtMTQx
LDcgKzE0Miw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9zcWwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQiCi0gICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3ZyIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS94
ciIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGx1Z2lucyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVu
ZGVyaW5nIgogICAgICIke1dFQkNPUkVfRElSfS9yZW5kZXJpbmcvbGluZSIKQEAgLTExNzksNiAr
MTE4MCw0MiBAQCBpZiAoRU5BQkxFX0dBTUVQQUQpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKEVO
QUJMRV9XRUJHTCkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCisgICAgICAgIE1vZHVsZXMv
d2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
WFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkV5ZS5p
ZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbAorICAgICAgICBNb2R1bGVzL3dl
YnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJI
YW5kZWRuZXNzLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbAorICAgICAgICBNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUG9z
ZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmlkbAorICAgICAg
ICBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9Y
UlJlbmRlclN0YXRlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaWRsCisgICAgICAg
IE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbkV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9YUlNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlkbAorICAg
ICAgICBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9YUlZpZXcuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2Vi
eHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJXZWJHTExh
eWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCisgICAg
KQorZW5kaWYgKCkKKwogc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgJHtXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTfQogICAgICR7V2ViQ29yZV9TVkdfSURMX0ZJTEVTfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGQ5ZWRhZjFhNjZiNmRhZDk1NzE1MGFiYzY0OWQzZWVkMjFm
NzY0MS4uMmUyY2E0OGZlMTA2ODUxMWVhNDgxYzFlZTFkOWVmM2QwNWM4ZGQ4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02NCw2ICs2NCw3IEBAIFZQQVRIID0gXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJkcml2ZXIgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJn
cHUgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIgXAogICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eSBcCiAgICAgJChX
ZWJDb3JlKS9hbmltYXRpb24gXAogICAgICQoV2ViQ29yZSkvYmluZGluZ3MvanMgXApAQCAtNDYw
LDYgKzQ2MSwzNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJFeWUu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ci9YUlBvc2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJS
ZWZlcmVuY2VTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVy
ZW5jZVNwYWNlRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZWZl
cmVuY2VTcGFjZVR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZW5k
ZXJTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRl
SW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3Jt
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbi5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VieHIvWFJTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlN5c3Rl
bS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJWaWV3LmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhy
L1hSVmlzaWJpbGl0eVN0YXRlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hS
V2ViR0xMYXllci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXJJbml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
b2xlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5L0FyaWFBdHRyaWJ1dGVzLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vQW5pbWF0YWJsZS5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
M2ZhMmI4MjY5ZWE0ZWU1ZGE2NDZiODk1N2Y1NWExZTRmZGU5MmUzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TmF2aWdhdG9yV2ViWFIuaCIKKworI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIlhS
U3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFJTeXN0ZW0mIE5hdmlnYXRvcldl
YlhSOjp4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBO
YXZpZ2F0b3ImIG5hdmlnYXRvck9iamVjdCkKK3sKKyAgICBhdXRvJiBuYXZpZ2F0b3IgPSBOYXZp
Z2F0b3JXZWJYUjo6ZnJvbShuYXZpZ2F0b3JPYmplY3QpOworICAgIGlmICghbmF2aWdhdG9yLm1f
eHIpCisgICAgICAgIG5hdmlnYXRvci5tX3hyID0gWFJTeXN0ZW06OmNyZWF0ZShzY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKKyAgICByZXR1cm4gKm5hdmlnYXRvci5tX3hyOworfQorCitOYXZpZ2F0
b3JXZWJYUiYgTmF2aWdhdG9yV2ViWFI6OmZyb20oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCit7Cisg
ICAgYXV0byogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvcldlYlhSKj4oU3VwcGxl
bWVudDxOYXZpZ2F0b3I+Ojpmcm9tKCZuYXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIpKTsKKyAg
ICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gbWFrZVVu
aXF1ZTxOYXZpZ2F0b3JXZWJYUj4oKTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1l
bnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbygmbmF2aWdhdG9yLCAiTmF2aWdhdG9yV2ViWFIi
LCBXVEZNb3ZlKG5ld1N1cHBsZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuICpzdXBwbGVtZW50
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL05hdmlnYXRvcldlYlhSLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZjMGY5OGU0OTgxMDMyZWIyNmRh
MzExYTFlY2M0ODM1N2YzOWNmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF2aWdhdG9y
OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFhSU3lzdGVtOworCitjbGFz
cyBOYXZpZ2F0b3JXZWJYUiBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBYUlN5c3Rl
bSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworCitwcml2YXRlOgor
ICAgIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3ImKTsKKworICAgIFJlZlB0
cjxYUlN5c3RlbT4gbV94cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODUzZWNmOTU5NGQyYzRmNDA2OTMyOWM5M2ViZjQ2YmE1ZmZlNmNhNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCkBAIC0w
LDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yIHsK
KyAgICBbU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdCwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSU3lzdGVtIHhyOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzUzMDdiZjc3OTNhMWViMmVmNDI2NmRiMjc5OWFkMzhlNDkzNmVkYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4m
IFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fYm91bmRzR2VvbWV0cnk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43YjVjOGU5NWRkZDVjMzk5NDU1MjY1MTgyYzAwYzYzYzExMzUx
OWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBET01Qb2ludFJlYWRPbmx5OworCitjbGFzcyBYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSA6IHB1YmxpYyBYUlJlZmVyZW5jZVNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJl
YWRPbmx5Pj4mIGJvdW5kc0dlb21ldHJ5KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVmVjdG9y
PFJlZjxET01Qb2ludFJlYWRPbmx5Pj4gbV9ib3VuZHNHZW9tZXRyeTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM3NjRjOTY3YzQyMWQx
NDVkYzQ4ZTVkMzUzMmQwZGU1OTA2NjNiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEs
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
Q29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRv
dworXSBpbnRlcmZhY2UgWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgOiBYUlJlZmVyZW5jZVNwYWNl
IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NUG9pbnRSZWFkT25seT4g
Ym91bmRzR2VvbWV0cnk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWZhYzFlYzgwYjAyMjE0
Zjk5YWEyZjJhNzkwYjU1OTc5Y2I5YWU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmgKQEAgLTAsMCArMSwzNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1ZSwKKyAgICBBZGRp
dGl2ZSwKKyAgICBBbHBoYUJsZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1v
ZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRN
b2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NDk1MTNjY2MzYTVmNDRjMjgwNTcxNTdhOWFhNTQ5OGViYTA0
MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVu
dmlyb25tZW50QmxlbmRNb2RlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVu
dW0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisgICAgImFkZGl0aXZl
IiwKKyAgICAiYWxwaGEtYmxlbmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUkV5ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxZTcwZTU0NDQzNTY0MjYxZDM3OWM5MzBiOWQ1OTlkOTIxMmJmMzIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSRXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAg
UmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJFeWUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjlhMGY1MTIwNGQ4ODI2Yjk5OWRkYTFmMDIx
NDgzNTQyYmIxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRXllLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0gWFJFeWUg
eworICAgICJub25lIiwKKyAgICAibGVmdCIsCisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNTA0YWQxYzk3NjNkYWJk
M2U1ODY4ZDMwMzI5ODQ4YTdkNDExYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSRnJhbWUuaCIKKworI2luY2x1ZGUg
IlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFhSRnJhbWUpOworCitSZWY8WFJGcmFtZT4gWFJGcmFtZTo6Y3JlYXRl
KFJlZjxYUlNlc3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBY
UkZyYW1lKFdURk1vdmUoc2Vzc2lvbikpKTsKK30KKworWFJGcmFtZTo6WFJGcmFtZShSZWY8WFJT
ZXNzaW9uPiYmIHNlc3Npb24pCisgICAgOiBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sK
K30KKworWFJGcmFtZTo6flhSRnJhbWUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSU2Vzc2lvbiYg
WFJGcmFtZTo6c2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbjsKK30KKwor
UmVmUHRyPFhSVmlld2VyUG9zZT4gWFJGcmFtZTo6Z2V0Vmlld2VyUG9zZShjb25zdCBYUlJlZmVy
ZW5jZVNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCitSZWZQdHI8WFJQb3NlPiBYUkZy
YW1lOjpnZXRQb3NlKGNvbnN0IFhSU3BhY2UmLCBjb25zdCBYUlNwYWNlJikKK3sKKyAgICByZXR1
cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJGcmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyOWJhNTA1MjYzZDUzZTk4YzUwMzY4YjQ0NWU0
ZmVjOTM3NTNjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSRnJhbWUuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlBvc2U7CitjbGFzcyBYUlJlZmVyZW5jZVNwYWNl
OworY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJTcGFjZTsKK2NsYXNzIFhSVmlld2VyUG9zZTsK
KworY2xhc3MgWFJGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSRnJhbWU+IHsKKyAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFhSRnJhbWUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJG
cmFtZT4gY3JlYXRlKFJlZjxYUlNlc3Npb24+JiYpOworICAgIH5YUkZyYW1lKCk7CisKKyAgICBj
b25zdCBYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKworICAgIFJlZlB0cjxYUlZpZXdlclBv
c2U+IGdldFZpZXdlclBvc2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZSYpOworICAgIFJlZlB0cjxY
UlBvc2U+IGdldFBvc2UoY29uc3QgWFJTcGFjZSYsIGNvbnN0IFhSU3BhY2UmKTsKKworcHJpdmF0
ZToKKyAgICBYUkZyYW1lKFJlZjxYUlNlc3Npb24+JiYpOworCisgICAgUmVmPFhSU2Vzc2lvbj4g
bV9zZXNzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI2MTBkZWNlODg4Mjc5ODUxZTAy
NzQzYzE3MTIyOTM3NzBmM2Q1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJGcmFtZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSRnJhbWUgeworICAgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgWFJTZXNzaW9uIHNlc3Npb247CisKKyAgICBYUlZpZXdlclBvc2U/IGdl
dFZpZXdlclBvc2UoWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZSk7CisgICAgWFJQb3Nl
PyBnZXRQb3NlKFhSU3BhY2Ugc3BhY2UsIFhSU3BhY2UgYmFzZVNwYWNlKTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk5NThmZGMyMDQzNzgxZmE2Zjk5NzhiYzJiZDdkZWM4NDIwZWI0N2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jl
c3VsdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgWFJGcmFtZTsKKworY2xhc3MgWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA6IHB1
YmxpYyBSZWZDb3VudGVkPFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9N
Q2FsbGJhY2sgeworcHVibGljOgorICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVE
T01DYWxsYmFjazsKKworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZl
bnQoZG91YmxlIGhpZ2hSZXNUaW1lTXMsIFhSRnJhbWUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTFkNGJkMmM1ODZiMTA1NmEz
N2QxMjJjNjRmZWQxOTgwOWFlNTA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbApAQCAtMCwwICsxLDI4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK2Nh
bGxiYWNrIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1w
IHRpbWUsIFhSRnJhbWUgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJI
YW5kZWRuZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI3YWEzOWIzZGUyZjdmODYyOTVhZTkzYTgxZjQ3MzFk
YzljZDc0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJIYW5kZWRuZXNzLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSSGFuZGVkbmVzcyB7Cisg
ICAgTm9uZSwKKyAgICBMZWZ0LAorICAgIFJpZ2h0LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5l
c3MuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk0ZmNiNTZkMGY4NzI4YjU2MTRkY2MyZTAyOTFkMjcwYWYyOGYxNWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5p
ZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTAorXSBlbnVtIFhSSGFuZGVkbmVzcyB7Cisg
ICAgIm5vbmUiLAorICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiYjQyMmI3
ODVhZDMyYWM0MWUxMWM5Yjg3YzM3ZDdmYWU4ZjliMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAKQEAgLTAsMCArMSw3NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNv
dXJjZS5oIgorCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFhSSW5wdXRTb3VyY2UpOworCitSZWY8WFJJbnB1dFNvdXJjZT4gWFJJbnB1dFNvdXJj
ZTo6Y3JlYXRlKFJlZjxYUlNwYWNlPiYmIHRhcmdldFJheVNwYWNlKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFhSSW5wdXRTb3VyY2UoV1RGTW92ZSh0YXJnZXRSYXlTcGFjZSkpKTsKK30K
KworWFJJbnB1dFNvdXJjZTo6WFJJbnB1dFNvdXJjZShSZWY8WFJTcGFjZT4mJiB0YXJnZXRSYXlT
cGFjZSkKKyAgICA6IG1faGFuZGVkbmVzcyhYUkhhbmRlZG5lc3M6Ok5vbmUpCisgICAgLCBtX3Rh
cmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlOjpHYXplKQorICAgICwgbV90YXJnZXRSYXlTcGFj
ZShXVEZNb3ZlKHRhcmdldFJheVNwYWNlKSkKK3sKK30KKworWFJJbnB1dFNvdXJjZTo6flhSSW5w
dXRTb3VyY2UoKSA9IGRlZmF1bHQ7CisKK1hSSGFuZGVkbmVzcyBYUklucHV0U291cmNlOjpoYW5k
ZWRuZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kZWRuZXNzOworfQorCitYUlRhcmdl
dFJheU1vZGUgWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5TW9kZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdGFyZ2V0UmF5TW9kZTsKK30KKworY29uc3QgWFJTcGFjZSYgWFJJbnB1dFNvdXJjZTo6
dGFyZ2V0UmF5U3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3RhcmdldFJheVNwYWNlOwor
fQorCitSZWZQdHI8WFJTcGFjZT4gWFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4geyB9OworfQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgWFJJbnB1dFNvdXJj
ZTo6cHJvZmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb2ZpbGVzOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExODdmNzAzOWFlNWQzM2Y2YjkwNTZkNDQ3YjdiZjU5NjMw
M2E2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2UuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2Rl
LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJTcGFjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJj
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSSW5wdXRTb3VyY2U+IHsKKyAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFhSSW5wdXRTb3VyY2UpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJJbnB1
dFNvdXJjZT4gY3JlYXRlKFJlZjxYUlNwYWNlPiYmKTsKKyAgICB+WFJJbnB1dFNvdXJjZSgpOwor
CisgICAgWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3MoKSBjb25zdDsKKyAgICBYUlRhcmdldFJheU1v
ZGUgdGFyZ2V0UmF5TW9kZSgpIGNvbnN0OworICAgIGNvbnN0IFhSU3BhY2UmIHRhcmdldFJheVNw
YWNlKCkgY29uc3Q7CisgICAgUmVmUHRyPFhSU3BhY2U+IGdyaXBTcGFjZSgpIGNvbnN0OworICAg
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm9maWxlcygpIGNvbnN0OworCitwcml2YXRlOgorICAg
IFhSSW5wdXRTb3VyY2UoUmVmPFhSU3BhY2U+JiYpOworCisgICAgWFJIYW5kZWRuZXNzIG1faGFu
ZGVkbmVzczsKKyAgICBYUlRhcmdldFJheU1vZGUgbV90YXJnZXRSYXlNb2RlOworICAgIFJlZjxY
UlNwYWNlPiBtX3RhcmdldFJheVNwYWNlOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcHJvZmlsZXM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmI0MDY5ZjBjYjQyMDVkNTA4
NmNiNTE2MTNhNDgxNDM0OTYxNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdF
QkdMLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZSB7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSA7CisgICAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlNwYWNlIHRhcmdldFJheVNwYWNlOworICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJTcGFjZT8gZ3JpcFNwYWNlIDsKKyAgICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gcHJvZmlsZXM7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
QXJyYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZDRjNDY1ZGFhM2Y3M2RlNjRmNDFhYmQyOGE5ODdjZDY0
ZTBlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2VBcnJheS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5LmgiCisKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChYUklucHV0U291cmNlQXJyYXkpOworCit1bnNpZ25l
ZCBYUklucHV0U291cmNlQXJyYXk6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK1hSSW5wdXRTb3VyY2UqIFhSSW5wdXRTb3VyY2VBcnJheTo6aXRlbSh1bnNpZ25lZCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJy
YXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTU1MjFiNTVmZDE1OTI5NzU5MGI2NDcxNGU0YzFmOGM1MDU2ZDdmYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJj
ZUFycmF5LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2U7CisKK2NsYXNzIFhS
SW5wdXRTb3VyY2VBcnJheSA6IHB1YmxpYyBSZWZDb3VudGVkPFhSSW5wdXRTb3VyY2VBcnJheT4g
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJJbnB1dFNvdXJjZUFycmF5KTsKK3B1Ymxp
YzoKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBYUklucHV0U291cmNlKiBpdGVt
KHVuc2lnbmVkKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMDc4MDM0YTY2OThhNDRlM2YzNGQ3MTg3YjdlMWNjZDFiNWI3ZDgzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJy
YXkuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwK
KyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGlu
dGVyZmFjZSBYUklucHV0U291cmNlQXJyYXkgeworICAgIGl0ZXJhYmxlPFhSSW5wdXRTb3VyY2U+
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0
ZXIgWFJJbnB1dFNvdXJjZSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWE0NzY5MGJmMzNkZDMxMjJiY2E0Y2M4ZDc5NjEwYzEzMmM0ZWQzMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNw
cApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJYUklucHV0U291cmNlRXZlbnQuaCIKKworI2luY2x1ZGUgIlhSRnJhbWUuaCIKKyNp
bmNsdWRlICJYUklucHV0U291cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhS
SW5wdXRTb3VyY2VFdmVudD4gWFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZUV2ZW50KHR5cGUsIGlu
aXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0
U291cmNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6
ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwg
aXNUcnVzdGVkKQorICAgICwgbV9mcmFtZShpbml0aWFsaXplci5mcmFtZSkKKyAgICAsIG1faW5w
dXRTb3VyY2UoaW5pdGlhbGl6ZXIuaW5wdXRTb3VyY2UpCisgICAgLCBtX2J1dHRvbkluZGV4KGlu
aXRpYWxpemVyLmJ1dHRvbkluZGV4KQoreworICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBBU1NF
UlQobV9pbnB1dFNvdXJjZSk7Cit9CisKK1hSSW5wdXRTb3VyY2VFdmVudDo6flhSSW5wdXRTb3Vy
Y2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJGcmFtZSYgWFJJbnB1dFNvdXJjZUV2ZW50
OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2ZyYW1lOworfQorCitjb25zdCBYUklu
cHV0U291cmNlJiBYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gKm1faW5wdXRTb3VyY2U7Cit9CisKK09wdGlvbmFsPGludD4gWFJJbnB1dFNvdXJj
ZUV2ZW50OjpidXR0b25JbmRleCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnV0dG9uSW5kZXg7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzZGM3YzBlM2M0OTEw
NWQ0YmQyOTVhNjA2NmU2YTczNWYwYjVmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBYUkZyYW1lOworY2xhc3MgWFJJbnB1dFNvdXJjZTsKKworY2xh
c3MgWFJJbnB1dFNvdXJjZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUkZyYW1lPiBmcmFt
ZTsKKyAgICAgICAgUmVmUHRyPFhSSW5wdXRTb3VyY2U+IGlucHV0U291cmNlOworICAgICAgICBP
cHRpb25hbDxpbnQ+IGJ1dHRvbkluZGV4OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5w
dXRTb3VyY2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNU
cnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+WFJJbnB1dFNvdXJjZUV2ZW50
KCk7CisKKyAgICBjb25zdCBYUkZyYW1lJiBmcmFtZSgpIGNvbnN0OworICAgIGNvbnN0IFhSSW5w
dXRTb3VyY2UmIGlucHV0U291cmNlKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8aW50PiBidXR0b25J
bmRleCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2VFdmVudChjb25zdCBB
dG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJGcmFt
ZT4gbV9mcmFtZTsKKyAgICBSZWZQdHI8WFJJbnB1dFNvdXJjZT4gbV9pbnB1dFNvdXJjZTsKKyAg
ICBPcHRpb25hbDxpbnQ+IG1fYnV0dG9uSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3Vy
Y2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VF
dmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjliYWM2YzhhMTcyZmVmMmI2MmY5MWJjYWI4MjNiZThiZjk2
OTExZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJ
bnB1dFNvdXJjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGRpY3Rp
b25hcnkgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQg
WFJGcmFtZSBmcmFtZTsKKyAgICByZXF1aXJlZCBYUklucHV0U291cmNlIGlucHV0U291cmNlOwor
fTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
R0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgWFJJbnB1dFNvdXJjZUV2ZW50SW5pdCBldmVudEluaXREaWN0
KQorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk1NDJjZTEzMmU1NmI1ZTBmNDRkNWE0ZTIzNDJiNzU5
MGVlZTljNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudC5oIgorCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZS5oIgorI2luY2x1ZGUgIlhSU2Vzc2lv
bi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50PiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCh0eXBlLCBp
bml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6
OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBl
LCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKCppbml0aWFsaXplci5z
ZXNzaW9uKQorICAgICwgbV9hZGRlZChpbml0aWFsaXplci5hZGRlZCkKKyAgICAsIG1fcmVtb3Zl
ZChpbml0aWFsaXplci5yZW1vdmVkKQoreworfQorCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50
Ojp+WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgWFJTZXNz
aW9uJiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zZXNzaW9uOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+
PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRkZWQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2FkZGVkOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiYgWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cmVtb3ZlZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTkyZjI0MDI1ODdjMWFmYTZhYzJkNzFlMzNkMzU1ZTdjZWI0ZGQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUklucHV0U291cmNl
OworY2xhc3MgWFJTZXNzaW9uOworCitjbGFzcyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGZp
bmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5p
dCB7CisgICAgICAgIFJlZlB0cjxYUlNlc3Npb24+IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxS
ZWZQdHI8WFJJbnB1dFNvdXJjZT4+IGFkZGVkOworICAgICAgICBWZWN0b3I8UmVmUHRyPFhSSW5w
dXRTb3VyY2U+PiByZW1vdmVkOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3Vy
Y2VzQ2hhbmdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElz
VHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQoKTsKKworICAgIGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAg
IGNvbnN0IFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAg
IGNvbnN0IFZlY3RvcjxSZWZQdHI8WFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWY8WFJTZXNzaW9uPiBtX3Nlc3Np
b247CisgICAgVmVjdG9yPFJlZlB0cjxYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0
b3I8UmVmUHRyPFhSSW5wdXRTb3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzA0ZjBkMjNkMzEzNDU3
OGY2ZWM2OGExMmE0NjJhMGY4NmYxZGJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQkdMCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFhSU2Vzc2lvbiBzZXNzaW9uOworICAg
IHJlcXVpcmVkIEZyb3plbkFycmF5PFhSSW5wdXRTb3VyY2U+IGFkZGVkOworICAgIHJlcXVpcmVk
IEZyb3plbkFycmF5PFhSSW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9OworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBl
LCBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50SW5pdCBldmVudEluaXREaWN0KQorXSBpbnRlcmZh
Y2UgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVjdF0g
cmVhZG9ubHkgYXR0cmlidXRlIFhSU2Vzc2lvbiBzZXNzaW9uOworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8WFJJbnB1dFNvdXJjZT4gYWRkZWQ7CisgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxYUklucHV0U291cmNl
PiByZW1vdmVkOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJQb3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wOTAzNTRlNmRjNTdmOTY0NTk0MDc3NTRiOTBkZTVlMjA4ZjhlYzAyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuY3BwCkBAIC0w
LDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlhSUG9zZS5oIgorCisjaW5jbHVkZSAiWFJSaWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFhSUG9zZSk7CisKK1JlZjxYUlBvc2U+IFhSUG9zZTo6Y3JlYXRl
KCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlBvc2UpOworfQorCitYUlBvc2U6OlhS
UG9zZSgpCisgICAgOiBtX3RyYW5zZm9ybShYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sK
K30KKworWFJQb3NlOjp+WFJQb3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBYUlJpZ2lkVHJhbnNm
b3JtJiBYUlBvc2U6OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3Jt
OworfQorCitib29sIFhSUG9zZTo6ZW11bGF0ZWRQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZW11bGF0ZWRQb3NpdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE0ODE5Y2UyNGRhOTIz
NjZhNjU5YmUyNGNmNGQ3YTI5Mzc5MjdlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJQb3NlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBYUlJpZ2lkVHJhbnNmb3JtOworCitjbGFzcyBYUlBvc2UgOiBwdWJsaWMg
UmVmQ291bnRlZDxYUlBvc2U+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSUG9zZSk7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxYUlBvc2U+IGNyZWF0ZSgpOworICAgIH5YUlBvc2Uo
KTsKKworICAgIGNvbnN0IFhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworICAg
IGJvb2wgZW11bGF0ZWRQb3NpdGlvbigpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgWFJQb3Nl
KCk7CisKKyAgICBSZWY8WFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07CisgICAgYm9vbCBt
X2VtdWxhdGVkUG9zaXRpb24geyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOTI3
NjliNmRiYWJjNGE3OTZmMGIxOTUzNWJhOTMzYTNhZDcwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUG9zZS5pZGwKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUG9zZSB7CisgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzN2FjYmVhNWU4OTcyNzJlODViODY5MTdmMjk3NmY3NzY3ZGY4OGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3Bh
Y2UuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlhSUmVmZXJlbmNlU3BhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitYUlJlZmVyZW5jZVNwYWNlOjpYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpCisgICAgOiBYUlNwYWNlKGNvbnRleHQpCit7Cit9CisKK1hSUmVmZXJlbmNl
U3BhY2U6On5YUlJlZmVyZW5jZVNwYWNlKCkgPSBkZWZhdWx0OworCitSZWY8WFJSZWZlcmVuY2VT
cGFjZT4gWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJS
aWdpZFRyYW5zZm9ybSYpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSZWZlcmVuY2VT
cGFjZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmZlMTRkNDgzZDRmNTgwNzg0ZTg5YjQ4ZjcwMmY1YTQ0YTYxZTEyNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJYUlNwYWNlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJSZWZlcmVu
Y2VTcGFjZSA6IHB1YmxpYyBYUlNwYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUlJlZmVy
ZW5jZVNwYWNlKCk7CisKKyAgICBSZWY8WFJSZWZlcmVuY2VTcGFjZT4gZ2V0T2Zmc2V0UmVmZXJl
bmNlU3BhY2UoY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYpOworCitwcml2YXRlOgorICAgIFhSUmVm
ZXJlbmNlU3BhY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
ZmVyZW5jZVNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFmZGFlY2Q1ZjFhYzc1MTczODdhNTQyMzE3NTI0MmJi
MTU0MWUyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEpTR2VuZXJhdGVUb0pTT2Jq
ZWN0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdAorXSBpbnRlcmZhY2UgWFJSZWZlcmVu
Y2VTcGFjZSA6IFhSU3BhY2UgeworICAgIFtOZXdPYmplY3RdIFhSUmVmZXJlbmNlU3BhY2UgZ2V0
T2Zmc2V0UmVmZXJlbmNlU3BhY2UoWFJSaWdpZFRyYW5zZm9ybSBvcmlnaW5PZmZzZXQpOworCisg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc2V0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YWEwNGEwMTBkMDEyYTNhMGJkYzhlMGU3OGJlNGQ1YmVjMWQ0NTMwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZl
bnQuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlhSUmVmZXJlbmNlU3BhY2VFdmVudC5oIgorCisjaW5jbHVkZSAiWFJSZWZl
cmVuY2VTcGFjZS5oIgorI2luY2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitSZWY8WFJSZWZlcmVuY2VTcGFjZUV2ZW50PiBYUlJlZmVyZW5jZVNwYWNl
RXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBY
UlJlZmVyZW5jZVNwYWNlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQor
CitYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3Rl
ZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3Jl
ZmVyZW5jZVNwYWNlKGluaXRpYWxpemVyLnJlZmVyZW5jZVNwYWNlKQorICAgICwgbV90cmFuc2Zv
cm0oaW5pdGlhbGl6ZXIudHJhbnNmb3JtKQoreworICAgIEFTU0VSVChtX3JlZmVyZW5jZVNwYWNl
KTsKKyAgICBBU1NFUlQobV90cmFuc2Zvcm0pOworfQorCitYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6
On5YUlJlZmVyZW5jZVNwYWNlRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFhSUmVmZXJlbmNl
U3BhY2UmIFhSUmVmZXJlbmNlU3BhY2VFdmVudDo6cmVmZXJlbmNlU3BhY2UoKSBjb25zdAorewor
ICAgIHJldHVybiAqbV9yZWZlcmVuY2VTcGFjZTsKK30KKworY29uc3QgWFJSaWdpZFRyYW5zZm9y
bSYgWFJSZWZlcmVuY2VTcGFjZUV2ZW50Ojp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVy
biAqbV90cmFuc2Zvcm07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ5OGQzOWZkMjhmMGQ5MDJiMDg2NWZiODEwOGUzM2Q1ZDUwY2NlYmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZTsK
K2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm07CisKK2NsYXNzIFhSUmVmZXJlbmNlU3BhY2VFdmVudCA6
IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgewor
ICAgICAgICBSZWZQdHI8WFJSZWZlcmVuY2VTcGFjZT4gcmVmZXJlbmNlU3BhY2U7CisgICAgICAg
IFJlZlB0cjxYUlJpZ2lkVHJhbnNmb3JtPiB0cmFuc2Zvcm07CisgICAgfTsKKworICAgIHN0YXRp
YyBSZWY8WFJSZWZlcmVuY2VTcGFjZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNv
bnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUlJl
ZmVyZW5jZVNwYWNlRXZlbnQoKTsKKworICAgIGNvbnN0IFhSUmVmZXJlbmNlU3BhY2UmIHJlZmVy
ZW5jZVNwYWNlKCkgY29uc3Q7CisgICAgY29uc3QgWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3Jt
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKworICAgIFJlZlB0cjxYUlJlZmVy
ZW5jZVNwYWNlPiBtX3JlZmVyZW5jZVNwYWNlOworICAgIFJlZlB0cjxYUlJpZ2lkVHJhbnNmb3Jt
PiBtX3RyYW5zZm9ybTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODYwMWM0NzdiMGM1ZDJmZTFmZDU1YmRiOGUxODk3ZjA5ZTQwODMzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZGljdGlvbmFyeSBY
UlJlZmVyZW5jZVNwYWNlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBYUlJl
ZmVyZW5jZVNwYWNlIHJlZmVyZW5jZVNwYWNlOworICAgIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNm
b3JtOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9u
YWw9V0VCR0wsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJSZWZlcmVuY2VTcGFjZUV2ZW50SW5pdCBldmVu
dEluaXREaWN0KQorXSBpbnRlcmZhY2UgWFJSZWZlcmVuY2VTcGFjZUV2ZW50IDogRXZlbnQgewor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJSZWZlcmVuY2VTcGFjZSByZWZl
cmVuY2VTcGFjZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmlnaWRU
cmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWE0ZjlkNWU2MWZjMzc0
MzIzYzNmMDMxNmM1NDk1YzgwZDk4NzVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5oCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7CisgICAgVmlld2VyLAorICAgIExvY2FsLAor
ICAgIExvY2FsRmxvb3IsCisgICAgQm91bmRlZEZsb29yLAorICAgIFVuYm91bmRlZAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTczMmZiMTYzOThl
N2Y5NjJmNTRjOWY3YTNiNTNmZmU4ZDM4NTFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJHTAorXSBlbnVtIFhSUmVmZXJlbmNlU3BhY2VUeXBlIHsKKyAgICAidmll
d2VyIiwKKyAgICAibG9jYWwiLAorICAgICJsb2NhbC1mbG9vciIsCisgICAgImJvdW5kZWQtZmxv
b3IiLAorICAgICJ1bmJvdW5kZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZW5kZXJTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2VhYmZmYTJkMjY3ZWMyYjBiYWNiZjBh
MzRmMzZlMDk1MWNmZTQzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZS5oIgorCisjaW5j
bHVkZSAiWFJSZW5kZXJTdGF0ZUluaXQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIuaCIKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFhSUmVuZGVyU3RhdGUpOworCitSZWY8WFJSZW5kZXJTdGF0ZT4gWFJSZW5kZXJTdGF0ZTo6Y3Jl
YXRlKGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICAvLyBXaGVuIGFuIFhSUmVuZGVy
U3RhdGUgb2JqZWN0IGlzIGNyZWF0ZWQgZm9yIGFuIFhSU2Vzc2lvbiBzZXNzaW9uLCB0aGUgdXNl
ciBhZ2VudCBNVVNUIGluaXRpYWxpemUgdGhlIHJlbmRlciBzdGF0ZSBieSBydW5uaW5nIHRoZSBm
b2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAxLiBMZXQgc3RhdGUgYmUgdGhlIG5ld2x5IGNyZWF0
ZWQgWFJSZW5kZXJTdGF0ZSBvYmplY3QuCisKKyAgICAvLyAgIDIuIEluaXRpYWxpemUgc3RhdGXi
gJlzIGRlcHRoTmVhciB0byAwLjEuCisgICAgLy8gICAzLiBJbml0aWFsaXplIHN0YXRl4oCZcyBk
ZXB0aEZhciB0byAxMDAwLjAuCisgICAgLy8gKERlZmF1bHQtaW5pdGlhbGl6ZWQgaW4gdGhlIFhS
UmVuZGVyU3RhdGUgY2xhc3MgZGVmaW5pdGlvbi4pCisKKyAgICAvLyAgIDQuIElmIHNlc3Npb24g
aXMgYW4gaW1tZXJzaXZlIHNlc3Npb24sIGluaXRpYWxpemUgc3RhdGXigJlzIGlubGluZVZlcnRp
Y2FsRmllbGRPZlZpZXcgdG8gbnVsbC4KKyAgICAvLyAgIDUuIEVsc2UgaW5pdGlhbGl6ZSBzdGF0
ZeKAmXMgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB0byBQSSAqIDAuNS4KKyAgICAvLyBGSVhN
RTogImltbWVyc2l2ZSBzZXNzaW9uIiBzdXBwb3J0CisgICAgVU5VU0VEX1BBUkFNKHNlc3Npb24p
OworICAgIE9wdGlvbmFsPGRvdWJsZT4gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB7IHBpT3Zl
clR3b0RvdWJsZSB9OworCisgICAgLy8gICA2LiBJbml0aWFsaXplIHN0YXRl4oCZcyBiYXNlTGF5
ZXIgdG8gbnVsbC4KKyAgICAvLyAgIDcuIEluaXRpYWxpemUgc3RhdGXigJlzIG91dHB1dENvbnRl
eHQgdG8gbnVsbC4KKyAgICAvLyAoSW5pdGlhbGl6ZWQgdG8gbnVsbCBieSBkZWZhdWx0LikKKwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmVuZGVyU3RhdGUoV1RGTW92ZShpbmxpbmVWZXJ0
aWNhbEZpZWxkT2ZWaWV3KSkpOworfQorCitYUlJlbmRlclN0YXRlOjpYUlJlbmRlclN0YXRlKE9w
dGlvbmFsPGRvdWJsZT4mJiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KQorICAgIDogbV9pbmxp
bmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KFdURk1vdmUoaW5saW5lVmVydGljYWxGaWVsZE9mVmlldykp
Cit7Cit9CisKK1hSUmVuZGVyU3RhdGU6OlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0
ZUluaXQmKQoreworfQorCitYUlJlbmRlclN0YXRlOjp+WFJSZW5kZXJTdGF0ZSgpID0gZGVmYXVs
dDsKKworZG91YmxlIFhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZGVwdGgubmVhcjsKK30KKworZG91YmxlIFhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXB0aC5mYXI7Cit9CisKK09wdGlvbmFsPGRvdWJsZT4g
WFJSZW5kZXJTdGF0ZTo6aW5saW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKK30KKworUmVmUHRyPFhSV2ViR0xM
YXllcj4gWFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YXNlTGF5ZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQxOTIxNGY0MGY3YzE5
YmE0YjUyOWUzZWQwYjFlMWZlNzJhN2VjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFhSV2ViR0xMYXllcjsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsK
K2NsYXNzIFhSU2Vzc2lvbjsKKworY2xhc3MgWFJSZW5kZXJTdGF0ZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFhSUmVuZGVyU3RhdGU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFhSUmVuZGVy
U3RhdGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJSZW5kZXJTdGF0ZT4gY3JlYXRlKGNv
bnN0IFhSU2Vzc2lvbiYpOworICAgIH5YUlJlbmRlclN0YXRlKCk7CisKKyAgICBkb3VibGUgZGVw
dGhOZWFyKCkgY29uc3Q7CisgICAgZG91YmxlIGRlcHRoRmFyKCkgY29uc3Q7CisgICAgT3B0aW9u
YWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3Q7CisgICAgUmVmUHRy
PFhSV2ViR0xMYXllcj4gYmFzZUxheWVyKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSZW5k
ZXJTdGF0ZShPcHRpb25hbDxkb3VibGU+JiYpOworICAgIFhSUmVuZGVyU3RhdGUoY29uc3QgWFJS
ZW5kZXJTdGF0ZUluaXQmKTsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBuZWFyIHsg
MC4xIH07CisgICAgICAgIGRvdWJsZSBmYXIgeyAxMDAwIH07CisgICAgfSBtX2RlcHRoOworICAg
IE9wdGlvbmFsPGRvdWJsZT4gbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0
cjxYUldlYkdMTGF5ZXI+IG1fYmFzZUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDc4NWQ1YjVlMTc1Y2U2NGJjMGM1ZmM4Zjk5MTYxN2E5MzM5ZDczMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5p
ZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJm
YWNlIFhSUmVuZGVyU3RhdGUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhO
ZWFyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhGYXI7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGRvdWJsZT8gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgWFJXZWJHTExheWVyPyBiYXNlTGF5ZXI7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
NTVmZDk5ZDVmMDJiZmYwOWU4ODMwOGU5ZjRkOGRiZTk2YzhiZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmgKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlhSV2Vi
R0xMYXllci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgWFJSZW5kZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7Cisg
ICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3
OworICAgIFJlZlB0cjxYUldlYkdMTGF5ZXI+IGJhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJS
ZW5kZXJTdGF0ZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRl
clN0YXRlSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY0MmViOTg4NjEzMWY0NzFmNjNjMjY2N2E0NmIw
ZGZhMTZjMDI4MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCitd
IGRpY3Rpb25hcnkgWFJSZW5kZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7Cisg
ICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3
OworICAgIFhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYzRiN2U2
OGQzNTI0MGYyMDgxZTMxNzIxNzFhYjdkOTIwZjczNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwCkBAIC0wLDAgKzEs
MTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlJp
Z2lkVHJhbnNmb3JtLmgiCisKKyNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5LmgiCisjaW5jbHVk
ZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBl
ZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSUmlnaWRU
cmFuc2Zvcm0pOworCitSZWY8WFJSaWdpZFRyYW5zZm9ybT4gWFJSaWdpZFRyYW5zZm9ybTo6Y3Jl
YXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlJpZ2lkVHJhbnNmb3JtKHsgfSwg
eyB9KSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxYUlJpZ2lkVHJhbnNmb3JtPj4gWFJSaWdpZFRy
YW5zZm9ybTo6Y3JlYXRlKGNvbnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBv
aW50SW5pdCYgb3JpZW50YXRpb24pCit7CisgICAgLy8gVGhlIFhSUmlnaWRUcmFuc2Zvcm0ocG9z
aXRpb24sIG9yaWVudGF0aW9uKSBjb25zdHJ1Y3RvciBNVVNUIHBlcmZvcm0gdGhlIGZvbGxvd2lu
ZyBzdGVwcyB3aGVuIGludm9rZWQ6CisgICAgLy8gICAxLiBMZXQgdHJhbnNmb3JtIGJlIGEgbmV3
IFhSUmlnaWRUcmFuc2Zvcm0uCisKKyAgICAvLyAgIDIuIElmIHBvc2l0aW9uIGlzIG5vdCBhIERP
TVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb24gdG8geyB4OiAwLjAs
IHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDMuIElmIHBvc2l0aW9u4oCZcyB3
IHZhbHVlIGlzIG5vdCAxLjAsIHRocm93IGEgVHlwZUVycm9yLgorICAgIC8vICAgNC4gRWxzZSBp
bml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb27igJlzIHggdmFsdWUgdG8gcG9zaXRpb27i
gJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFsdWUgdG8gcG9zaXRpb27igJlzIHkgZGljdGlv
bmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gcG9zaXRpb27igJlzIHogZGljdGlvbmFyeSBtZW1iZXIg
YW5kIHcgdG8gMS4wLgorICAgIGlmIChwb3NpdGlvbi53ICE9IDEuMCkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIERPTVBvaW50SW5pdCBwb3NpdGlvbkluaXQg
eyBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBwb3NpdGlvbi56LCAxIH07CisKKyAgICAvLyAgIDUu
IElmIG9yaWVudGF0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9y
beKAmXMgb3JpZW50YXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4K
KyAgICAvLyAgIDYuIEVsc2UgaW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9u4oCZ
cyB4IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB4IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVl
IHRvIG9yaWVudGF0aW9u4oCZcyB5IGRpY3Rpb25hcnkgbWVtYmVyLCB6IHZhbHVlIHRvIG9yaWVu
dGF0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVyIGFuZCB3IHZhbHVlIHRvIG9yaWVudGF0aW9u
4oCZcyB3IGRpY3Rpb25hcnkgbWVtYmVyLgorICAgIC8vICAgNy4gTm9ybWFsaXplIHgsIHksIHos
IGFuZCB3IGNvbXBvbmVudHMgb2YgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbi4KKyAgICBET01Q
b2ludEluaXQgb3JpZW50YXRpb25Jbml0IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwg
b3JpZW50YXRpb24ueiwgb3JpZW50YXRpb24udyB9OworICAgIHsKKyAgICAgICAgZG91YmxlIGxl
bmd0aCA9IHN0ZDo6c3FydChvcmllbnRhdGlvbkluaXQueCAqIG9yaWVudGF0aW9uSW5pdC54ICsg
b3JpZW50YXRpb25Jbml0LnkgKiBvcmllbnRhdGlvbkluaXQueQorICAgICAgICAgICAgKyBvcmll
bnRhdGlvbkluaXQueiAqIG9yaWVudGF0aW9uSW5pdC56ICsgb3JpZW50YXRpb25Jbml0LncgKiBv
cmllbnRhdGlvbkluaXQudyk7CisgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWw8
ZG91YmxlPihsZW5ndGgsIDApKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAgb3JpZW50YXRpb25Jbml0PSB7CisgICAgICAgICAg
ICBvcmllbnRhdGlvbkluaXQueCAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LnkgLyBsZW5ndGgs
CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQueiAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0
LncgLyBsZW5ndGgsCisgICAgICAgIH07CisgICAgfQorCisgICAgLy8gICA4LiBSZXR1cm4gdHJh
bnNmb3JtLgorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRp
b25Jbml0LCBvcmllbnRhdGlvbkluaXQpKTsKK30KKworWFJSaWdpZFRyYW5zZm9ybTo6WFJSaWdp
ZFRyYW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBET01Qb2ludElu
aXQmIG9yaWVudGF0aW9uKQorICAgIDogbV9wb3NpdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVh
dGUocG9zaXRpb24pKQorICAgICwgbV9vcmllbnRhdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVh
dGUob3JpZW50YXRpb24pKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJvcGVybHksIHBl
ciBzcGVjLgorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdHJpeDsKKyAgICBhdXRvIG1hdHJp
eERhdGEgPSBtYXRyaXgudG9Db2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKKyAgICBtX21hdHJpeCA9
IEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1hdHJpeERhdGEuZGF0YSgpLCBtYXRyaXhEYXRhLnNpemUo
KSk7Cit9CisKK1hSUmlnaWRUcmFuc2Zvcm06On5YUlJpZ2lkVHJhbnNmb3JtKCkgPSBkZWZhdWx0
OworCitjb25zdCBET01Qb2ludFJlYWRPbmx5JiBYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9zaXRpb247Cit9CisKK2NvbnN0IERPTVBvaW50UmVh
ZE9ubHkmIFhSUmlnaWRUcmFuc2Zvcm06Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9vcmllbnRhdGlvbjsKK30KKworUmVmPEZsb2F0MzJBcnJheT4gIFhSUmlnaWRUcmFuc2Zv
cm06Om1hdHJpeCgpIGNvbnN0Cit7CisgICAgYXV0byBtYXRyaXggPSBGbG9hdDMyQXJyYXk6OmNy
ZWF0ZSgxNik7CisgICAgbWF0cml4LT56ZXJvRmlsbCgpOworICAgIHJldHVybiBtYXRyaXg7Cit9
CisKK1JlZjxYUlJpZ2lkVHJhbnNmb3JtPiBYUlJpZ2lkVHJhbnNmb3JtOjppbnZlcnNlKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3Blcmx5LgorICAgIHJldHVybiBYUlJp
Z2lkVHJhbnNmb3JtOjpjcmVhdGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yOWQwNDNlODEyMzBmNTRlYjEzYzk3OGU5ODM3NzBhMTRhMTU4MDU3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmgK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IERPTVBvaW50SW5pdDsKK2NsYXNzIERP
TVBvaW50UmVhZE9ubHk7CisKK2NsYXNzIFhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291
bnRlZDxYUlJpZ2lkVHJhbnNmb3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlJp
Z2lkVHJhbnNmb3JtKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSUmlnaWRUcmFuc2Zvcm0+
IGNyZWF0ZSgpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8WFJSaWdpZFRyYW5zZm9ybT4+
IGNyZWF0ZShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+
WFJSaWdpZFRyYW5zZm9ybSgpOworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRp
b24oKSBjb25zdDsKKyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNv
bnN0OworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxYUlJp
Z2lkVHJhbnNmb3JtPiBpbnZlcnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJSaWdpZFRy
YW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAg
IFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBtX29yaWVudGF0aW9uOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlJpZ2lkVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RmNWM4OTI3YTI0OWEw
MDU2MTdjY2NhOTc3MWJkZTA0M2ZlODNlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSaWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAg
IENvbnN0cnVjdG9yKG9wdGlvbmFsIERPTVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9uYWwgRE9N
UG9pbnRJbml0IG9yaWVudGF0aW9uKSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9u
LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIFhSUmlnaWRUcmFu
c2Zvcm0geworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFk
T25seSBwb3NpdGlvbjsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVBv
aW50UmVhZE9ubHkgb3JpZW50YXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJB
cnJheSBtYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlJpZ2lk
VHJhbnNmb3JtIGludmVyc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNl
c3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzYyNTMyZjcxNzBiMjVlY2Q2MDZlZWJkZWMxMmE1OTM1
NzQ1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChYUlNlc3Npb24pOworCitYUlNlc3Npb246On5YUlNlc3Npb24oKSA9IGRlZmF1bHQ7
CisKK1hSRW52aXJvbm1lbnRCbGVuZE1vZGUgWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9k
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7Cit9CisKK1hS
VmlzaWJpbGl0eVN0YXRlIFhSU2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisKK2NvbnN0IFhSUmVuZGVyU3RhdGUmIFhS
U2Vzc2lvbjo6cmVuZGVyU3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZW5kZXJTdGF0
ZTsKK30KKworY29uc3QgWFJJbnB1dFNvdXJjZUFycmF5JiBYUlNlc3Npb246OmlucHV0U291cmNl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2lucHV0U291cmNlczsKK30KKwordm9pZCBYUlNl
c3Npb246OnVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0JikKK3sKK30K
Kwordm9pZCBYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5j
ZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21pc2UmJikKK3sKK30KKworaW50
IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxYUkZyYW1lUmVxdWVzdENhbGxi
YWNrPiYmKQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFhSU2Vzc2lvbjo6Y2FuY2VsQW5p
bWF0aW9uRnJhbWUoaW50KQoreworfQorCit2b2lkIFhSU2Vzc2lvbjo6ZW5kKEVuZFByb21pc2Um
JikKK3sKK30KKworY29uc3QgY2hhciogWFJTZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gIlhSU2Vzc2lvbiI7Cit9CisKK3ZvaWQgWFJTZXNzaW9uOjpz
dG9wKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRmYzhkNDIyNTUwNGVjNTI0ZTNmOGJk
MDBlOWJlMzc1N2ZlNzM0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uLmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJY
UkVudmlyb25tZW50QmxlbmRNb2RlLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUFycmF5Lmgi
CisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0
YXRlLmgiCisjaW5jbHVkZSAiWFJTcGFjZS5oIgorI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRl
LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrOworY2xhc3MgWFJS
ZWZlcmVuY2VTcGFjZTsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKKworY2xhc3MgWFJTZXNz
aW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8WFJTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFy
Z2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoWFJTZXNzaW9uKTsKK3B1YmxpYzoKKyAgICB1c2luZyBSZXF1ZXN0UmVm
ZXJlbmNlU3BhY2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxYUlJl
ZmVyZW5jZVNwYWNlPj47CisgICAgdXNpbmcgRW5kUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPjsKKworICAgIHZpcnR1YWwgflhSU2Vzc2lvbigpOworCisgICAgdXNpbmcgUmVmQ291
bnRlZDxYUlNlc3Npb24+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNlc3Npb24+Ojpk
ZXJlZjsKKworICAgIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGUo
KSBjb25zdDsKKyAgICBYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsK
KyAgICBjb25zdCBYUlJlbmRlclN0YXRlJiByZW5kZXJTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0
IFhSSW5wdXRTb3VyY2VBcnJheSYgaW5wdXRTb3VyY2VzKCkgY29uc3Q7CisKKyAgICB2b2lkIHVw
ZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0Jik7CisgICAgdm9pZCByZXF1
ZXN0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVm
ZXJlbmNlU3BhY2VQcm9taXNlJiYpOworCisgICAgaW50IHJlcXVlc3RBbmltYXRpb25GcmFtZShS
ZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJik7CisgICAgdm9pZCBjYW5jZWxBbmltYXRpb25G
cmFtZShpbnQgaGFuZGxlKTsKKworICAgIHZvaWQgZW5kKEVuZFByb21pc2UmJik7CisKKyAgICBi
b29sIGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmRlZDsgfQorCitwcm90ZWN0ZWQ6CisgICAg
Ly8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhSU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7
IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigp
OyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisK
KyAgICBYUkVudmlyb25tZW50QmxlbmRNb2RlIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAg
WFJWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7CisgICAgUmVmUHRyPFhSUmVuZGVy
U3RhdGU+IG1fcmVuZGVyU3RhdGU7CisgICAgUmVmUHRyPFhSSW5wdXRTb3VyY2VBcnJheT4gbV9p
bnB1dFNvdXJjZXM7CisgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MjNhNTJmNTkyM2E0ZmI4YjEzNWM1OThjMDczYzYzMDkxNTljZTk3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb24u
aWRsCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgQWN0aXZlRE9NT2JqZWN0LAor
ICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFhSU2Vz
c2lvbiA6IEV2ZW50VGFyZ2V0IHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFhSVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZTsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmVuZGVyU3RhdGUgcmVuZGVyU3Rh
dGU7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUklucHV0U291cmNlQXJy
YXkgaW5wdXRTb3VyY2VzOworCisgICAgLy8gTWV0aG9kcworICAgIHZvaWQgdXBkYXRlUmVuZGVy
U3RhdGUob3B0aW9uYWwgWFJSZW5kZXJTdGF0ZUluaXQgc3RhdGVJbml0KTsKKyAgICBbTmV3T2Jq
ZWN0XSBQcm9taXNlPFhSUmVmZXJlbmNlU3BhY2U+IHJlcXVlc3RSZWZlcmVuY2VTcGFjZShYUlJl
ZmVyZW5jZVNwYWNlVHlwZSB0eXBlKTsKKworICAgIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgY2FuY2VsQW5pbWF0
aW9uRnJhbWUobG9uZyBoYW5kbGUpOworCisgICAgUHJvbWlzZTx2b2lkPiBlbmQoKTsKKworICAg
IC8vIEV2ZW50cworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNlbGVjdDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
aW5wdXRzb3VyY2VzY2hhbmdlOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3Rz
dGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0ZW5kOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb252aXNpYmlsaXR5Y2hhbmdlOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE1OWRh
YmI2ZjNjZTY1M2ZhMzkyY2Q3NjE3MGNkYjdlYTU0MTE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEs
NTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU2Vz
c2lvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJYUlNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZWY8WFJTZXNzaW9uRXZlbnQ+IFhSU2Vzc2lvbkV2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1Ry
dXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJTZXNzaW9uRXZlbnQodHlwZSwg
aW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQorCitYUlNlc3Npb25FdmVudDo6WFJTZXNzaW9u
RXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElz
VHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKQorICAgICwgbV9zZXNzaW9uKGluaXRpYWxpemVyLnNlc3Npb24pCit7CisgICAgQVNTRVJU
KG1fc2Vzc2lvbik7Cit9CisKK1hSU2Vzc2lvbkV2ZW50Ojp+WFJTZXNzaW9uRXZlbnQoKSA9IGRl
ZmF1bHQ7CisKK2NvbnN0IFhSU2Vzc2lvbiYgWFJTZXNzaW9uRXZlbnQ6OnNlc3Npb24oKSBjb25z
dAoreworICAgIHJldHVybiAqbV9zZXNzaW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDdlMWY5ZTZhMThlMzkwNjM3ZjRiNzA2MmE2N2ViNzFiYzBlMjVkYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaApA
QCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
RXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUlNlc3Npb247CisKK2Ns
YXNzIFhSU2Vzc2lvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBz
dHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxYUlNlc3Npb24+IHNlc3Np
b247CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJTZXNzaW9uRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOwor
ICAgIHZpcnR1YWwgflhSU2Vzc2lvbkV2ZW50KCk7CisKKyAgICBjb25zdCBYUlNlc3Npb24mIHNl
c3Npb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlNlc3Npb25FdmVudChjb25zdCBBdG9t
U3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8WFJTZXNzaW9u
PiBtX3Nlc3Npb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NDQz
NjZkZjYxM2VmOTEwYzgyNTBmMWI0YTMzOTMyODZmODdhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQkdMLAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkV2ZW50SW5pdCA6IEV2
ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgWFJTZXNzaW9uIHNlc3Npb247Cit9OworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1
cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLCBYUlNlc3Npb25FdmVudEluaXQgZXZlbnRJbml0RGljdCkKK10gaW50ZXJmYWNlIFhS
U2Vzc2lvbkV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgWFJTZXNzaW9uIHNlc3Npb247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbkluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmI0N2NjMjZhNDE4Mjc5YzVmOWNmZTJmYjFl
NjFhMTU5MGVjMmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlNlc3Npb25Jbml0LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgSlNWYWx1ZTsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJTZXNzaW9uSW5pdCB7CisgICAgVmVjdG9y
PEpTQzo6SlNWYWx1ZT4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVl
PiBvcHRpb25hbEZlYXR1cmVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTU4NjBhOGJhNDc3OWQ0ZDRiZGIwY2VlZmIwZmU0NjIzYzFiNWVmOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKQEAgLTAs
MCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJHTAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkluaXQgeworICAg
IHNlcXVlbmNlPGFueT4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICBzZXF1ZW5jZTxhbnk+IG9wdGlv
bmFsRmVhdHVyZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlNlc3Npb25Nb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lv
bk1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MjFlYzY1OGZmYmJiZDc0OTk5YjRiOTdlYjg3YTc5Yjk5ZWNi
YjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNl
c3Npb25Nb2RlLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2lu
ZyBYUlNlc3Npb25Nb2RlID0gUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU7CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uTW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1v
ZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUxOWQ5YjQ1ZTkxMzM3YTI5ODE2ZWQ3OTQ4YzU2NTE4NGMyNWI5
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbk1vZGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10gZW51bSBYUlNlc3Np
b25Nb2RlIHsKKyAgICAiaW5saW5lIiwKKyAgICAiaW1tZXJzaXZlLXZyIiwKKyAgICAiaW1tZXJz
aXZlLWFyIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJT
cGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc0YTcwMDg5YTUzODJiMjJlZDhmZjUzNTJjNTQxZDhkY2I2Y2E3Y2QKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwCkBAIC0w
LDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlhSU3BhY2UuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSU3BhY2UpOwor
CitYUlNwYWNlOjpYUlNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAg
OiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKK3sKK30KKworWFJTcGFjZTo6
flhSU3BhY2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE1OTEzOTI5NjYzNzc4YjBi
N2E0NGZjZWUwZDQyMWYxZmM0NzI0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTcGFjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgor
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitj
bGFzcyBYUlNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8WFJTcGFjZT4sIHB1YmxpYyBFdmVudFRh
cmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJTcGFjZSk7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+WFJTcGFjZSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxYUlNwYWNlPjo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ8WFJTcGFjZT46OmRlcmVmOworCitwcm90ZWN0ZWQ6CisgICAgWFJT
cGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVu
dFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFhSU3BhY2VFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNwYWNlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ5MDA0
YTk4YmQ4MzRhMzMwNTk1YWVjY2E0NTk0NWZjMTA3YzJkMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTcGFjZS5pZGwKQEAgLTAsMCArMSwzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93CitdIGlu
dGVyZmFjZSBYUlNwYWNlIDogRXZlbnRUYXJnZXQgeworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlN5c3RlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk3NDUzZTM2NDgwZWU0ZDRjZTJiMzdh
Y2IxZjk5MDEyOTc3NWMxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTeXN0ZW0uY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU3lzdGVtLmgiCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVhSLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWFJTeXN0ZW0pOworCitS
ZWY8WFJTeXN0ZW0+IFhSU3lzdGVtOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlN5c3Rl
bShzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7Cit9CisKK1hSU3lzdGVtOjpYUlN5c3RlbShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQoreworfQorCitYUlN5c3RlbTo6flhS
U3lzdGVtKCkgPSBkZWZhdWx0OworCit2b2lkIFhSU3lzdGVtOjppc1Nlc3Npb25TdXBwb3J0ZWQo
WFJTZXNzaW9uTW9kZSwgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSYmKQoreworICAgIC8vIFdo
ZW4gdGhlIHN1cHBvcnRzU2Vzc2lvbihtb2RlKSBtZXRob2QgaXMgaW52b2tlZCwgaXQgTVVTVCBy
ZXR1cm4gYSBuZXcgUHJvbWlzZSBwcm9taXNlIGFuZCBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBp
biBwYXJhbGxlbDoKKyAgICAvLyAgIDEuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQu
CisgICAgLy8gICAyLiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9taXNlIHdp
dGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCisgICAgLy8gICAzLiBJZiB0aGUgWFIgZGV2aWNlJ3MgbGlzdCBvZiBzdXBwb3J0ZWQgbW9k
ZXMgZG9lcyBub3QgY29udGFpbiBtb2RlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1cHBv
cnRlZEVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAg
NC4gRWxzZSByZXNvbHZlIHByb21pc2UuCit9CisKK3ZvaWQgWFJTeXN0ZW06OnJlcXVlc3RTZXNz
aW9uKFhSU2Vzc2lvbk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblBy
b21pc2UmJikKK3sKKyAgICBQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6c2luZ2xldG9uKCk7CisKKyAg
ICAvLyBXaGVuIHRoZSByZXF1ZXN0U2Vzc2lvbihtb2RlKSBtZXRob2QgaXMgaW52b2tlZCwgdGhl
IHVzZXIgYWdlbnQgTVVTVCByZXR1cm4gYSBuZXcgUHJvbWlzZSBwcm9taXNlIGFuZCBydW4gdGhl
IGZvbGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKKyAgICAvLyAgIDEuIExldCBpbW1lcnNpdmUg
YmUgdHJ1ZSBpZiBtb2RlIGlzICJpbW1lcnNpdmUtdnIiIG9yICJpbW1lcnNpdmUtYXIiLCBhbmQg
ZmFsc2Ugb3RoZXJ3aXNlLgorICAgIC8vICAgMi4gSWYgaW1tZXJzaXZlIGlzIHRydWU6CisgICAg
Ly8gICAgIDEuIElmIHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gaXMgdHJ1ZSBvciBhY3RpdmUg
aW1tZXJzaXZlIHNlc3Npb24gaXMgbm90IG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggYW4gIklu
dmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IC8vICAgICAyLiBFbHNlIHNldCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRvIGJlIHRydWUu
CisgICAgLy8gICAzLiBFbnN1cmUgYW4gWFIgZGV2aWNlIGlzIHNlbGVjdGVkLgorICAgIC8vICAg
NC4gSWYgdGhlIFhSIGRldmljZSBpcyBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIG51bGwuCisg
ICAgLy8gICA1LiBFbHNlIGlmIHRoZSBYUiBkZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRlZCBtb2Rl
cyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9y
dGVkRXJyb3IiIERPTUV4Y2VwdGlvbi4KKyAgICAvLyAgIDYuIEVsc2UgSWYgaW1tZXJzaXZlIGlz
IHRydWUgYW5kIHRoZSBhbGdvcml0aG0gaXMgbm90IHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRp
b24sIHJlamVjdCBwcm9taXNlIHdpdGggYSAiU2VjdXJpdHlFcnJvciIgRE9NRXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDcuIElmIHByb21pc2Ugd2FzIHJlamVjdGVk
IGFuZCBpbW1lcnNpdmUgaXMgdHJ1ZSwgc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8g
ZmFsc2UuCisgICAgLy8gICA4LiBJZiBwcm9taXNlIHdhcyByZWplY3RlZCwgYWJvcnQgdGhlc2Ug
c3RlcHMuCisgICAgLy8gICA5LiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBYUlNlc3Npb24gb2JqZWN0
LgorICAgIC8vICAgMTAuIEluaXRpYWxpemUgdGhlIHNlc3Npb24gd2l0aCBzZXNzaW9uIGFuZCBt
b2RlLgorICAgIC8vICAgMTEuIElmIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgdGhlIGFjdGl2ZSBp
bW1lcnNpdmUgc2Vzc2lvbiB0byBzZXNzaW9uLCBhbmQgc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNl
c3Npb24gdG8gZmFsc2UuCisgICAgLy8gICAxMi4gRWxzZSBhcHBlbmQgc2Vzc2lvbiB0byB0aGUg
bGlzdCBvZiBpbmxpbmUgc2Vzc2lvbnMuCisgICAgLy8gICAxMy4gUmVzb2x2ZSBwcm9taXNlIHdp
dGggc2Vzc2lvbi4KK30KKworY29uc3QgY2hhciogWFJTeXN0ZW06OmFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdAoreworICAgIHJldHVybiAiWFJTeXN0ZW0iOworfQorCit2b2lkIFhSU3lzdGVt
OjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjYzk0NGNhNDA3OTliMTcwZmU5Mjcy
ZWIyMzNiMWM5ZDEyNjY3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU3lzdGVtLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJY
UlNlc3Npb25Nb2RlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKK2NsYXNzIFhSU2Vzc2lvbjsKK3N0cnVjdCBYUlNlc3Npb25Jbml0Owor
CitjbGFzcyBYUlN5c3RlbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFhSU3lzdGVtPiwgcHVi
bGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoWFJTeXN0ZW0pOworcHVibGljOgorICAgIHVzaW5n
IElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVh
bj47CisgICAgdXNpbmcgUmVxdWVzdFNlc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxYUlNlc3Npb24+PjsKKworICAgIHN0YXRpYyBSZWY8WFJTeXN0ZW0+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgdmlydHVhbCB+WFJTeXN0ZW0oKTsK
KworICAgIHVzaW5nIFJlZkNvdW50ZWQ8WFJTeXN0ZW0+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291
bnRlZDxYUlN5c3RlbT46OmRlcmVmOworCisgICAgdm9pZCBpc1Nlc3Npb25TdXBwb3J0ZWQoWFJT
ZXNzaW9uTW9kZSwgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSYmKTsKKyAgICB2b2lkIHJlcXVl
c3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vz
c2lvblByb21pc2UmJik7CisKK3Byb3RlY3RlZDoKKyAgICBYUlN5c3RlbShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWFJTeXN0
ZW1FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZl
RE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50
VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
c3RvcCgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzViNmRhNWE2MjBh
ODg1MTdlOWRkYTBmMDdlYzdiZmNhZmQxOTU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlN5c3RlbS5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1X
RUJHTCwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBv
c2VkPVdpbmRvdworXSBpbnRlcmZhY2UgWFJTeXN0ZW0gOiBFdmVudFRhcmdldCB7CisgICAgLy8g
TWV0aG9kcworICAgIFByb21pc2U8dm9pZD4gaXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1v
ZGUgbW9kZSk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZTxYUlNlc3Npb24+IHJlcXVlc3RTZXNz
aW9uKFhSU2Vzc2lvbk1vZGUgbW9kZSwgb3B0aW9uYWwgWFJTZXNzaW9uSW5pdCBvcHRpb25zKTsK
KworICAgIC8vIEV2ZW50cworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kZXZpY2VjaGFu
Z2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdl
dFJheU1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2Rl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmY1NWYxNTIwMWNhOTE2ODRkYzZiMTA1NjAwYmJlMjA2ZTlmNjFkNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRS
YXlNb2RlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVGFyZ2V0UmF5TW9kZSB7CisgICAg
R2F6ZSwKKyAgICBUcmFja2VkUG9pbnRlciwKKyAgICBTY3JlZW4sCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
VGFyZ2V0UmF5TW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0
UmF5TW9kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MjE4YTA4YzZmYTE1OTY1YjJiZjQwNTAwZmRmZTY3
NGJhNDBkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJUYXJnZXRSYXlNb2RlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMCitdIGVudW0g
WFJUYXJnZXRSYXlNb2RlIHsKKyAgICAiZ2F6ZSIsCisgICAgInRyYWNrZWQtcG9pbnRlciIsCisg
ICAgInNjcmVlbiIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWYyMjg3NmNhZTI2OWI2Y2VkYzVjNDM3ZGM1YTgzNzYzNDZiZTY1MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3LmNwcApAQCAt
MCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJYUlZpZXcuaCIKKworI2luY2x1ZGUgIlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFhSVmlldyk7CisKK1JlZjxYUlZpZXc+IFhSVmlldzo6Y3JlYXRlKCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUlZpZXcpOworfQorCitYUlZpZXc6OlhSVmlldygpCisg
ICAgOiBtX2V5ZShYUkV5ZTo6TGVmdCkKKyAgICAsIG1fcHJvamVjdGlvbk1hdHJpeChGbG9hdDMy
QXJyYXk6OmNyZWF0ZSgwKSkKKyAgICAsIG1fdHJhbnNmb3JtKFhSUmlnaWRUcmFuc2Zvcm06OmNy
ZWF0ZSgpKQoreworfQorCitYUlZpZXc6On5YUlZpZXcoKSA9IGRlZmF1bHQ7CisKK1hSRXllIFhS
Vmlldzo6ZXllKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9leWU7Cit9CisKK2NvbnN0IEZsb2F0
MzJBcnJheSYgWFJWaWV3Ojpwcm9qZWN0aW9uTWF0cml4KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcm9qZWN0aW9uTWF0cml4OworfQorCitjb25zdCBYUlJpZ2lkVHJhbnNmb3JtJiBYUlZpZXc6
OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlldy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MGJmMzU5M2UxZjllNTkwMmVjZWVhMzgyYWQwOGQxZTQ2MDEwYzAwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFJFeWUu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJSaWdpZFRyYW5zZm9y
bTsKKworY2xhc3MgWFJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8WFJWaWV3PiB7CisgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChYUlZpZXcpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJW
aWV3PiBjcmVhdGUoKTsKKyAgICB+WFJWaWV3KCk7CisKKyAgICBYUkV5ZSBleWUoKSBjb25zdDsK
KyAgICBjb25zdCBGbG9hdDMyQXJyYXkmIHByb2plY3Rpb25NYXRyaXgoKSBjb25zdDsKKyAgICBj
b25zdCBYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBYUlZpZXcoKTsKKworICAgIFhSRXllIG1fZXllOworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1f
cHJvamVjdGlvbk1hdHJpeDsKKyAgICBSZWY8WFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlldy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM1OTk1NWMyZjIwYjAyNmUwN2ZkMWU4MmUwMWNhMzI2
ZTQzYTNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJWaWV3LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIFNlY3VyZUNvbnRl
eHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQor
XSBpbnRlcmZhY2UgWFJWaWV3IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJFeWUgZXllOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgcHJvamVjdGlvbk1hdHJpeDsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNm
b3JtOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3
ZXJQb3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zN2ZiZjJhNzYwMGJmYzcwYWI2MmM1NDFmNmIzMDhhMjcxZDEyMzEyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBv
c2UuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlhSVmlld2VyUG9zZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Jl
ZjxYUlZpZXdlclBvc2U+IFhSVmlld2VyUG9zZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBYUlZpZXdlclBvc2UpOworfQorCitYUlZpZXdlclBvc2U6OlhSVmlld2VyUG9z
ZSgpID0gZGVmYXVsdDsKK1hSVmlld2VyUG9zZTo6flhSVmlld2VyUG9zZSgpID0gZGVmYXVsdDsK
KworY29uc3QgVmVjdG9yPFJlZjxYUlZpZXc+PiYgWFJWaWV3ZXJQb3NlOjp2aWV3cygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdmlld3M7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZm
OTQwYzJmMTUyM2ZkZDE1MTdhYTU5N2Y0ZDlkNjRlODY5Zjg1NTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5oCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJYUlBvc2UuaCIK
KyNpbmNsdWRlICJYUlZpZXcuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSVmlld2VyUG9zZSA6
IHB1YmxpYyBYUlBvc2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8WFJWaWV3ZXJQb3NlPiBj
cmVhdGUoKTsKKyAgICB+WFJWaWV3ZXJQb3NlKCk7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPFhS
Vmlldz4+JiB2aWV3cygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFhSVmlld2VyUG9zZSgpOwor
CisgICAgVmVjdG9yPFJlZjxYUlZpZXc+PiBtX3ZpZXdzOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdl
clBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUwNGJjNmQwMTIyN2ViMjc3ZTcyOTczOTVlN2UwZTNiMGVjYWJlMmUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9z
ZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50
ZXJmYWNlIFhSVmlld2VyUG9zZSA6IFhSUG9zZSB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxYUlZpZXc+IHZpZXdzOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZjBkODllNzM3NDY1
ZmI1MDk2ZDczODUxN2M3OTI0YmQzY2RhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSVmlld3BvcnQuaCIKKwor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFhSVmlld3BvcnQpOworCitSZWY8WFJWaWV3
cG9ydD4gWFJWaWV3cG9ydDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBY
UlZpZXdwb3J0KTsKK30KKworWFJWaWV3cG9ydDo6WFJWaWV3cG9ydCgpID0gZGVmYXVsdDsKKwor
aW50IFhSVmlld3BvcnQ6OngoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitpbnQgWFJW
aWV3cG9ydDo6eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBYUlZpZXdwb3J0
Ojp3aWR0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBYUlZpZXdwb3J0Ojpo
ZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA2MTdiZGExMjgyYzhiZGRkYTQyOGQzNDIyODZmODUwMDdlOWMzZWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhSVmlld3BvcnQgOiBwdWJsaWMgUmVm
Q291bnRlZDxYUlZpZXdwb3J0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChYUlZpZXdw
b3J0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFhSVmlld3BvcnQ+IGNyZWF0ZSgpOworCisg
ICAgaW50IHgoKSBjb25zdDsKKyAgICBpbnQgeSgpIGNvbnN0OworICAgIGludCB3aWR0aCgpIGNv
bnN0OworICAgIGludCBoZWlnaHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlZpZXdwb3J0
KCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlld3BvcnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlZpZXdwb3J0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDNjMjZlZTVmZGYxMjg5OTE0NmVi
NjE2MTk5ZTI3MDUxN2Q5N2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlZpZXdwb3J0LmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAor
ICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgWFJWaWV3cG9ydCB7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgeDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB5OworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIHdpZHRoOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGhl
aWdodDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlz
aWJpbGl0eVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0
eVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjYwZWRiYzkyMDEzYzM3Nzk5MWNhNDY0Mzg3YWJjYTcw
YmJhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJW
aXNpYmlsaXR5U3RhdGUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJWaXNpYmlsaXR5U3Rh
dGUgeworICAgIFZpc2libGUsCisgICAgVmlzaWJsZUJsdXJyZWQsCisgICAgSGlkZGVuCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTc3YTA4ZGUyNDZiODc1
YzgzMjI2ZDNlZjliMjgzN2M1OGE5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlv
bmFsPVdFQkdMCitdIGVudW0gWFJWaXNpYmlsaXR5U3RhdGUgeworICAgICJ2aXNpYmxlIiwKKyAg
ICAidmlzaWJsZS1ibHVycmVkIiwKKyAgICAiaGlkZGVuIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODIwYjZkNGZkMGVi
M2FhZjRhY2VkNjZkYjQ2ZmZkMzIxYjFkZTQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXIu
aCIKKworI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRl
cmluZ0NvbnRleHQuaCIKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldlYkdMMlJlbmRl
cmluZ0NvbnRleHQuaCIKKyNlbmRpZgorI2luY2x1ZGUgIlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUg
IlhSVmlld3BvcnQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXJJbml0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworRXhjZXB0aW9uT3I8UmVmPFhSV2ViR0xMYXllcj4+IFhSV2ViR0xMYXll
cjo6Y3JlYXRlKGNvbnN0IFhSU2Vzc2lvbiYgc2Vzc2lvbiwgWFJSZW5kZXJpbmdDb250ZXh0JiYg
Y29udGV4dCwgY29uc3QgWFJXZWJHTExheWVySW5pdCYgaW5pdCkKK3sKKyAgICAvLyBUaGUgWFJX
ZWJHTExheWVyKHNlc3Npb24sIGNvbnRleHQsIGxheWVySW5pdCkgY29uc3RydWN0b3IgTVVTVCBw
ZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMgd2hlbiBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0
IGxheWVyIGJlIGEgbmV3IFhSV2ViR0xMYXllcgorCisgICAgLy8gICAyLiBJZiBzZXNzaW9u4oCZ
cyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKHNlc3Npb24uZW5kZWQoKSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICAvLyAgIDMuIElmIGNvbnRl
eHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0
ZXBzLgorICAgIC8vICAgNC4gSWYgY29udGV4dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlz
IGZhbHNlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8vICAgNS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMg
Y29udGV4dCB0byBjb250ZXh0LgorICAgIC8vICAgNi4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50
aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFsaWFzIHZhbHVlLgorICAgIC8vICAgNy4gSWYg
bGF5ZXJJbml04oCZcyBpZ25vcmVEZXB0aFZhbHVlcyB2YWx1ZSBpcyBmYWxzZSBhbmQgdGhlIFhS
IENvbXBvc2l0b3Igd2lsbCBtYWtlIHVzZSBvZiBkZXB0aCB2YWx1ZXMsIEluaXRpYWxpemUgbGF5
ZXLigJlzIGlnbm9yZURlcHRoVmFsdWVzIHRvIGZhbHNlLgorICAgIC8vICAgOC4gRWxzZSBJbml0
aWFsaXplIGxheWVy4oCZcyBpZ25vcmVEZXB0aFZhbHVlcyB0byB0cnVlCisgICAgLy8gICA5LiBJ
bml0aWFsaXplIGxheWVy4oCZcyBmcmFtZWJ1ZmZlciB0byBhIG5ldyBvcGFxdWUgZnJhbWVidWZm
ZXIgY3JlYXRlZCB3aXRoIGNvbnRleHQuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgbGF5
ZXLigJlzIHN3YXAgY2hhaW4uCisgICAgLy8gICAxMS4gSWYgbGF5ZXLigJlzIHN3YXAgY2hhaW4g
d2FzIHVuYWJsZSB0byBiZSBjcmVhdGVkIGZvciBhbnkgcmVhc29uLCB0aHJvdyBhbiBPcGVyYXRp
b25FcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAg
IC8vICAgMTIuIFJldHVybiBsYXllci4KKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUldlYkdM
TGF5ZXIoc2Vzc2lvbiwgV1RGTW92ZShjb250ZXh0KSwgaW5pdCkpOworfQorCitYUldlYkdMTGF5
ZXI6OlhSV2ViR0xMYXllcihjb25zdCBYUlNlc3Npb24mLCBYUlJlbmRlcmluZ0NvbnRleHQmJiBj
b250ZXh0LCBjb25zdCBYUldlYkdMTGF5ZXJJbml0JiBpbml0KQorICAgIDogbV9jb250ZXh0KFdU
Rk1vdmUoY29udGV4dCkpCisgICAgLCBtX2FudGlhbGlhcyhpbml0LmFudGlhbGlhcykKKyAgICAs
IG1faWdub3JlRGVwdGhWYWx1ZXMoaW5pdC5pZ25vcmVEZXB0aFZhbHVlcykKK3sKKyAgICBtX2Zy
YW1lYnVmZmVyLm9iamVjdCA9IFdURjo6c3dpdGNoT24obV9jb250ZXh0LAorICAgICAgICBbXShj
b25zdCBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiYgY29udGV4dCkKKyAgICAgICAgewor
ICAgICAgICAgICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IGZyYW1lQnVmZmVyID0gV2ViR0xG
cmFtZWJ1ZmZlcjo6Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBmcmFtZUJ1
ZmZlcjsKKyAgICAgICAgfSwKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBbXShjb25zdCBS
ZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVi
dWZmZXI6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7
CisgICAgICAgIH0sCisjZW5kaWYKKyAgICAgICAgW10oV1RGOjpNb25vc3RhdGUpIHsKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIH0KKyAgICApOworfQorCitYUldlYkdMTGF5ZXI6On5YUldlYkdMTGF5ZXIoKSA9
IGRlZmF1bHQ7CisKK2Jvb2wgWFJXZWJHTExheWVyOjphbnRpYWxpYXMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2FudGlhbGlhczsKK30KKworYm9vbCBYUldlYkdMTGF5ZXI6Omlnbm9yZURlcHRo
VmFsdWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZ25vcmVEZXB0aFZhbHVlczsKK30KKwor
Y29uc3QgV2ViR0xGcmFtZWJ1ZmZlciYgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcigpIGNvbnN0
Cit7CisgICAgcmV0dXJuICptX2ZyYW1lYnVmZmVyLm9iamVjdDsKK30KKwordW5zaWduZWQgWFJX
ZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFt
ZWJ1ZmZlci53aWR0aDsKK30KKwordW5zaWduZWQgWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlckhl
aWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIuaGVpZ2h0OworfQorCitS
ZWZQdHI8WFJWaWV3cG9ydD4gWFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydChjb25zdCBYUlZpZXcm
KQoreworICAgIHJldHVybiB7IH07Cit9CisKK2RvdWJsZSBYUldlYkdMTGF5ZXI6OmdldE5hdGl2
ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgWFJTZXNzaW9uJikKK3sKKyAgICByZXR1cm4g
MS4wOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUldlYkdMTGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGYzY2E4OTU0MDA4NWFiNzc0N2Ew
NzQ5NzU4ZjMxNzk2OWEzNDc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKK2NsYXNz
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKKyNpZiBFTkFCTEUoV0VCR0wyKQorY2xhc3MgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDsKKyNlbmRpZgorY2xhc3MgWFJTZXNzaW9uOworY2xhc3MgWFJWaWV3
OworY2xhc3MgWFJWaWV3cG9ydDsKK3N0cnVjdCBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBY
UldlYkdMTGF5ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoK
KyAgICAKKyAgICB1c2luZyBYUlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAg
ICAgIFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+LCAKKyNpZiBFTkFCTEUoV0VCR0wyKQor
ICAgICAgICBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4sCisjZW5kaWYKKyAgICAgICAg
V1RGOjpNb25vc3RhdGUKKyAgICA+OworCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxYUldl
YkdMTGF5ZXI+PiBjcmVhdGUoY29uc3QgWFJTZXNzaW9uJiwgWFJSZW5kZXJpbmdDb250ZXh0JiYs
IGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsKKyAgICB+WFJXZWJHTExheWVyKCk7CisKKyAgICBi
b29sIGFudGlhbGlhcygpIGNvbnN0OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMoKSBjb25z
dDsKKworICAgIGNvbnN0IFdlYkdMRnJhbWVidWZmZXImIGZyYW1lYnVmZmVyKCkgY29uc3Q7Cisg
ICAgdW5zaWduZWQgZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGZyYW1l
YnVmZmVySGVpZ2h0KCkgY29uc3Q7CisKKyAgICBSZWZQdHI8WFJWaWV3cG9ydD4gZ2V0Vmlld3Bv
cnQoY29uc3QgWFJWaWV3Jik7CisKKyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVm
ZmVyU2NhbGVGYWN0b3IoY29uc3QgWFJTZXNzaW9uJik7CisKK3ByaXZhdGU6CisgICAgWFJXZWJH
TExheWVyKGNvbnN0IFhSU2Vzc2lvbiYsIFhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldl
YkdMTGF5ZXJJbml0Jik7CisKKyAgICBYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAg
IGJvb2wgbV9hbnRpYWxpYXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVl
cyB7IGZhbHNlIH07CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4gb2JqZWN0OworICAgICAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5z
aWduZWQgaGVpZ2h0IHsgMCB9OworICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExh
eWVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YjY0NzU4YmVlNjExMzI2ZDllN2MwNzdhM2MxOTdlMTYxNWQw
M2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldl
YkdMTGF5ZXIuaWRsCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiAoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFhSV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJHTCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIC8vQ29uc3RydWN0b3IoWFJTZXNzaW9uIHNlc3Npb24sIFhSV2ViR0xSZW5kZXJpbmdDb250
ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFhSV2ViR0xMYXllckluaXQgbGF5ZXJJbml0KSwKKyAgICAv
L0NvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZU
YWJsZQorXSBpbnRlcmZhY2UgWFJXZWJHTExheWVyIHsKKyAgICAvLyBBdHRyaWJ1dGVzCisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYW50aWFsaWFzOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlnbm9yZURlcHRoVmFsdWVzOworCisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBXZWJHTEZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZyYW1lYnVmZmVyV2lkdGg7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJhbWVidWZmZXJIZWlnaHQ7CisKKyAgICAvLyBNZXRo
b2RzCisgICAgWFJWaWV3cG9ydD8gZ2V0Vmlld3BvcnQoWFJWaWV3IHZpZXcpOworCisgICAgLy8g
U3RhdGljIE1ldGhvZHMKKyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2Nh
bGVGYWN0b3IoWFJTZXNzaW9uIHNlc3Npb24pOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM3MThmZGUyNDVmNjEy
Mzc3MzNmZjc5OTU2MGFjNDk4MzVjOTBmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFhSV2ViR0xMYXllckluaXQgeworICAgIGJvb2wgYW50aWFsaWFzIHsgdHJ1ZSB9OworICAgIGJv
b2wgZGVwdGggeyB0cnVlIH07CisgICAgYm9vbCBzdGVuY2lsIHsgZmFsc2UgfTsKKyAgICBib29s
IGFscGhhIHsgdHJ1ZSB9OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMgeyB0cnVlIH07Cisg
ICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IgeyAxLjAgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVySW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2Vi
R0xMYXllckluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNDViMWU2MTE5ZDc3NzNjZmJkMGYwZTQ1N2Iy
ZjRlOTZjMTI1NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSV2ViR0xMYXllckluaXQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCR0wKK10g
ZGljdGlvbmFyeSBYUldlYkdMTGF5ZXJJbml0IHsKKyAgICBib29sZWFuIGFudGlhbGlhcyA9IHRy
dWU7CisgICAgYm9vbGVhbiBkZXB0aCA9IHRydWU7CisgICAgYm9vbGVhbiBzdGVuY2lsID0gZmFs
c2U7CisgICAgYm9vbGVhbiBhbHBoYSA9IHRydWU7CisgICAgYm9vbGVhbiBpZ25vcmVEZXB0aFZh
bHVlcyA9IGZhbHNlOworICAgIGRvdWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yID0gMS4wOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggMGQ1OTgyZTFkYzY5ZWI2ODBmMDhkZWJk
OGU2ZjI2YTcyNDdkOWRhNS4uZTc1ZWNlZjE0MGFiNWNlZWYxZDBkNmRiYzA2NmUzNWM5MmQzZjU5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTcwLDMgKzcwLDggQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7VVBPV0VSR0xJQl9J
TkNMVURFX0RJUlN9CiAgICAgJHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9CiApCisKK2lm
IChVU0VfT1BFTlhSKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTlhS
X0xJQlJBUklFU30pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJF
Q1RPUklFUyAke09QRU5YUl9JTkNMVURFX0RJUlN9KQorZW5kaWYgKCkKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDU1M2Y5NjQ2Y2I4OTIxYTk1N2RhODc3ZWRi
NjcwZGY3ZTVmZjk1OGQuLmM4MDlhODgzY2E4N2Y2MmZlMWIwMTlkNzMyZDY4ZThmMDQ1YmRiYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC00MTEsNiArNDExLDMxIEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVRleHR1cmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5jcHAKIE1vZHVs
ZXMvd2ViZ3B1L1dvcmtlck5hdmlnYXRvckdQVS5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitN
b2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIv
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUkZy
YW1lLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VBcnJheS5jcHAgQG5vLXVuaWZ5CitNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9Y
UlBvc2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlLmNwcCBA
bm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5p
ZnkKK01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dl
YnhyL1hSUmlnaWRUcmFuc2Zvcm0uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b24uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1hSU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9Y
UlN5c3RlbS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSVmlldy5jcHAgQG5vLXVuaWZ5
CitNb2R1bGVzL3dlYnhyL1hSVmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSVmlld3BvcnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuY3Bw
IEBuby11bmlmeQorCisjZW5kaWYKKwogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkBAIC0yMDc2LDYgKzIxMDEsOSBAQCBwbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZy5jcHAKIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0
b3JJQ1UuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAogCitwbGF0
Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKK3BsYXRmb3JtL3hyL29wZW54ci9QbGF0
Zm9ybVhSLmNwcCBAbm8tdW5pZnkKKwogcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKIHBsdWdpbnMv
RE9NTWltZVR5cGVBcnJheS5jcHAKIHBsdWdpbnMvRE9NUGx1Z2luLmNwcApAQCAtMzUyMyw2ICsz
NTUxLDQxIEBAIEpTWFBhdGhOU1Jlc29sdmVyLmNwcAogSlNYUGF0aFJlc3VsdC5jcHAKIEpTWFNM
VFByb2Nlc3Nvci5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitKU1hSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlLmNwcAorSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNwcAorSlNYUkV5ZS5jcHAKK0pT
WFJGcmFtZS5jcHAKK0pTWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKK0pTWFJIYW5kZWRuZXNz
LmNwcAorSlNYUklucHV0U291cmNlLmNwcAorSlNYUklucHV0U291cmNlQXJyYXkuY3BwCitKU1hS
SW5wdXRTb3VyY2VFdmVudC5jcHAKK0pTWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKK0pT
WFJQb3NlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZl
bnQuY3BwCitKU1hSUmVmZXJlbmNlU3BhY2VUeXBlLmNwcAorSlNYUlJlbmRlclN0YXRlLmNwcAor
SlNYUlJlbmRlclN0YXRlSW5pdC5jcHAKK0pTWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTWFJTZXNz
aW9uLmNwcAorSlNYUlNlc3Npb25FdmVudC5jcHAKK0pTWFJTZXNzaW9uSW5pdC5jcHAKK0pTWFJT
ZXNzaW9uTW9kZS5jcHAKK0pTWFJTcGFjZS5jcHAKK0pTWFJTeXN0ZW0uY3BwCitKU1hSVGFyZ2V0
UmF5TW9kZS5jcHAKK0pTWFJWaWV3LmNwcAorSlNYUlZpZXdlclBvc2UuY3BwCitKU1hSVmlld3Bv
cnQuY3BwCitKU1hSVmlzaWJpbGl0eVN0YXRlLmNwcAorSlNYUldlYkdMTGF5ZXIuY3BwCitKU1hS
V2ViR0xMYXllckluaXQuY3BwCisKKyNlbmRpZgorCiAjaWYgRU5BQkxFX0dBTUVQQUQKIAogSlNH
YW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDZkNjI1ZWUwNDUzOTYzNWE5N2ZlMGQ5YjIxYTZiMmQ5NzBlZjJkZGYu
LjViYWM1NTEzZTM5MzBlY2VmYjM4YTEwYWViMjFmZDZmMWNlZWMwMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MTQsNiAr
NDgxNCw2MCBAQAogCQlFMUU2RUVBODBCNjI4REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
NkVFQTcwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuaCAqLzsgfTsKIAkJ
RTFFQzI5QTAwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFQzI5OUUwQkIwNEM2QjAwRUExODdC
IC8qIFhQYXRoTm9kZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUxRUQ4QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUxRUU4
QjcwMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjZDMjQxMkIyQTcwMEU3OTRENiAvKiBQ
bGF0Zm9ybVhSLmNwcCAqLzsgfTsKKwkJRTFFRThCNzEyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRm
b3JtWFIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovOyB9OworCQlFMUVF
OEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCNkYyNDEyQjJBNzAwRTc5NEQ2IC8qIFBs
YXRmb3JtWFIuaCAqLzsgfTsKKwkJRTFFRThCNzYyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlld2Vy
UG9zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oICovOyB9OworCQlFMUVFOEI3
NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUM5MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oICovOyB9OworCQlFMUVFOEI3ODI0MTMxOTFGMDBF
Nzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJY
Ui5oICovOyB9OworCQlFMUVFOEI3OTI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUlu
aXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4
QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oICovOyB9OworCQlFMUVF
OEI3QTI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNDMjQxMkIxNzAwMEU3
OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEI3QjI0MTMxOTFG
MDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSaWdp
ZFRyYW5zZm9ybS5jcHAgKi87IH07CisJCUUxRUU4QjdDMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJl
bmRlclN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmNwcCAqLzsgfTsK
KwkJRTFFRThCN0QyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSU3BhY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNGMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlNwYWNlLmggKi87IH07CisJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRThBRDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlLmggKi87IH07CisJCUUxRUU4QjdGMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLzsgfTsKKwkJ
RTFFRThCODAyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQzMjQx
MkIxNzAwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi87IH07CisJCUUx
RUU4QjgxMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJSZW5kZXJTdGF0ZS5oICovOyB9OworCQlFMUVFOEI4MjI0MTMxOTFGMDBFNzk0RDYgLyog
WFJWaXNpYmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QUQ2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5o
ICovOyB9OworCQlFMUVFOEI4MzI0MTMxOTFGMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ4MjQx
MkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuY3BwICovOyB9OworCQlFMUVFOEI4NDI0MTMx
OTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEQjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggKi87IH07CisJCUUxRUU4Qjg1MjQxMzE5MUYwMEU3OTRE
NiAvKiBYUlNlc3Npb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQu
Y3BwICovOyB9OworCQlFMUVFOEI4NjI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFy
cmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEFERDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmggKi87IH07CisJCUUx
RUU4Qjg3MjQxMzE5MUYwMEU3OTRENiAvKiBYUlZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
ZXcuaCAqLzsgfTsKKwkJRTFFRThCODgyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUG9zZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTEyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUG9zZS5oICovOyB9OworCQlFMUVFOEI4OTI0MTMxOTFGMDBFNzk0RDYg
LyogWFJTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlN5c3RlbS5oICovOyB9OworCQlFMUVF
OEI4QTI0MTMxOTFGMDBFNzk0RDYgLyogWFJGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJh
bWUuaCAqLzsgfTsKKwkJRTFFRThCOEIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUG9zZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJQb3NlLmNwcCAqLzsgfTsKKwkJRTFFRThCOEMyNDEzMTkxRjAwRTc5
NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZUFycmF5LmNwcCAqLzsgfTsKKwkJRTFFRThCOEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vz
c2lvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEFFNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAqLzsgfTsKKwkJ
RTFFRThCOEUyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU4MjQxMkIxNzAwMEU3OTRENiAv
KiBYUlN5c3RlbS5jcHAgKi87IH07CisJCUUxRUU4QjhGMjQxMzE5NTAwMEU3OTRENiAvKiBYUkZy
YW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxs
YmFjay5oICovOyB9OworCQlFMUVFOEI5MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEFFQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi87IH07CisJCUUxRUU4
QjkxMjQxMzE5NTAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlZpZXdwb3J0LmNwcCAqLzsgfTsKKwkJRTFFRThCOTIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSGFu
ZGVkbmVzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThBRUUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovOyB9OworCQlFMUVF
OEI5MzI0MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJG
cmFtZS5jcHAgKi87IH07CisJCUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRENiAvKiBOYXZpZ2F0b3JX
ZWJYUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovOyB9OworCQlF
MUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUYzMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEI5
NjI0MTMxOTUwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmll
d3BvcnQuaCAqLzsgfTsKKwkJRTFFRThCOTcyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGNTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJFeWUuaCAqLzsgfTsKKwkJRTFFRThCOTgyNDEzMTk1MDAwRTc5NEQ2
IC8qIFhSU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBRjgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2UuY3BwICovOyB9OworCQlF
MUVFOEI5OTI0MTMxOTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjkyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLzsgfTsKKwkJRTFF
RThCOUEyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUZFMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlNlc3Npb25Nb2RlLmggKi87IH07CisJCUUxRUU4QjlCMjQxMzE5NTAwMEU3OTRENiAvKiBY
UldlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCAqLzsgfTsKKwkJ
RTFFRThCOUMyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA1MjQxMkIx
NzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi87IH07CisJCUUxRUU4QjlE
MjQxMzE5NTAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSaWdpZFRyYW5zZm9ybS5oICovOyB9OworCQlFMUVFOEI5RTI0MTMxOTUwMDBFNzk0RDYgLyog
WFJXZWJHTExheWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRThCMDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCAq
LzsgfTsKKwkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDky
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oICovOyB9OworCQlFMUVFOEJB
MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlZpZXdlclBvc2UuY3BwICovOyB9OworCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAgKi87IH07
CisJCUUxRUU4QkEyMjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Npb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMEYyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgKi87IH07CisJCUUxRUU4QkEzMjQxMzE5NjMwMEU3OTRENiAv
KiBYUlNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaCAqLzsgfTsKKwkJRTFF
RThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJW
aWV3LmNwcCAqLzsgfTsKKwkJRTFFRThCQTUyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbklu
aXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4
QjEzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggKi87IH07CisJCUUxRUU4QkE2
MjQxMzE5NjMwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZS5oICovOyB9OworCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRENiAv
KiBYUklucHV0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5oICovOyB9
OwogCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjFFODJFMEMzQzJCQjkw
MDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovOyB9OwogCQlFMUY4MEI4ODE4MzE3MjUyMDA3
ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGODBCODYxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0b0tleVBhaXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUY4
MEI4RTE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4QzE4MzE3MkI1MDA3ODg1QzMg
LyogSlNDcnlwdG9LZXlQYWlyLmggKi87IH07CkBAIC0xNTE0OCw2ICsxNTIwMiw5MSBAQAogCQlF
MUVDMjk5RDBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoTm9kZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhOb2RlU2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYUlZpZXdlclBvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBQzgyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbk1vZGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0EyNDEyQjE3
MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5hdmlnYXRvcldlYlhSLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYUlJlbmRlclN0YXRlSW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFDQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJj
ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSSW5wdXRT
b3VyY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNEMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhSUmlnaWRUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlJlbmRlclN0YXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJTcGFjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
UmVmZXJlbmNlU3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
WFJSZWZlcmVuY2VTcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUQzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ0MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNwYWNlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
UmVuZGVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZW5kZXJT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFENjI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWFJWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFhSU2Vzc2lvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSV2ViR0xMYXllci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2li
aWxpdHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaXNpYmlsaXR5U3RhdGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEQTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
WFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlNlc3Npb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBY
UlNlc3Npb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURE
MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWFJJbnB1dFNvdXJjZUFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QURFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QURGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXcuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFhSVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFJWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUUxMjQxMkIxNzAwMEU3OTRENiAvKiBYUlBvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJQb3NlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYUlN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFFMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYUkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUU0MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9z
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUlBvc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhSSW5wdXRTb3VyY2VBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkZy
YW1lUmVxdWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWFJUYXJnZXRSYXlNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSVmlld3BvcnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5k
ZXJTdGF0ZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3RhdGVJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUQyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSVmlld2VyUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3ZXJQ
b3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYUkhhbmRlZG5lc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUYy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBYUkZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThBRjEyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRvcldlYlhSLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVu
ZGVyU3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3RhdGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGMzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSVmlld3BvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBRjUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRXllLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSRXllLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUY2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY4MjQxMkIx
NzAwMEU3OTRENiAvKiBYUlNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFhSU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFG
OTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZBMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGQjI0
MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUZDMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSV2ViR0xMYXllci5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUZEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTZXNzaW9uRXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNz
aW9uTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25Nb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZGMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlRhcmdldFJheU1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVGFyZ2V0
UmF5TW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAwMjQxMkIx
NzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QjAxMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBYUlJpZ2lkVHJhbnNmb3JtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThCMDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBYUlN5c3RlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjAzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWFJFeWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEIwNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhSV2ViR0xMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEIwNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkVudmlyb25tZW50QmxlbmRNb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA2MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlJpZ2lkVHJhbnNmb3JtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhSUmlnaWRUcmFuc2Zvcm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThC
MDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gWFJIYW5kZWRuZXNzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThCMDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFJXZWJHTExheWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEIwOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwQTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJWaWV3cG9ydC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3cG9ydC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlZpZXdlclBvc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gWFJWaWV3ZXJQb3NlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThC
MEMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFhSRnJhbWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwRDI0MTJC
MTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYUklucHV0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThCMEUyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JXZWJYUi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QjBGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJTZXNzaW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2Vi
R0xMYXllckluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSV2ViR0xMYXllckluaXQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSU2Vz
c2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMjI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhSVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEzMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhSU2Vzc2lvbkluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThCMTQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gWFJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTcy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJJbnB1dFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEIxODI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlQXJyYXkuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEI2QzI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVhSLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8q
IFBsYXRmb3JtWFIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxh
dGZvcm1YUi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjZGMjQxMkIy
QTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtWFIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4MkQw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRjgwQjg0MTgzMTcyNDcwMDc4ODVDMyAvKiBDcnlw
dG9LZXlQYWlyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDcnlwdG9LZXlQYWlyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIyMzgzLDYgKzIyNTIyLDcgQEAKIAkJCQk5OTZFNTlEQTFERjAwRDQ1MDA2
NjEyQjkgLyogd2ViZHJpdmVyICovLAogCQkJCUQwMEY1OTNFMjE2RUNDNDMwMDBENzFEQiAvKiB3
ZWJncHUgKi8sCiAJCQkJOTdBQUJDRjcxNEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNvY2tldHMgKi8s
CisJCQkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovLAogCQkJKTsKIAkJCXBh
dGggPSBNb2R1bGVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI1OTMzLDYgKzI2
MDczLDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0d29yayAqLywKIAkJ
CQkxQTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICovLAogCQkJCUIyQzNEOUVDMEQwMDZD
MUQwMEVGNkYyNiAvKiB0ZXh0ICovLAorCQkJCUUxRUU4QjZCMjQxMkIyQTcwMEU3OTRENiAvKiB4
ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYgLyogQWJvcnRhYmxlVGFza1F1ZXVl
LmggKi8sCiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUu
Y3BwICovLAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVl
LmggKi8sCkBAIC0yNjM3MCw2ICsyNjUxMSw4IEBACiAJCQkJQ0Q5RDM3NUEyMTUxNjNFNDAwNDk2
NTdCIC8qIENETUluc3RhbmNlU2Vzc2lvbi5oICovLAogCQkJCUNEOTRBNUQ0MUY3MUNCNkMwMEY1
MjVDNSAvKiBDRE1LZXlTdGF0dXMuaCAqLywKIAkJCQlDRDk0QTVDRDFGNzFDQjY5MDBGNTI1QzUg
LyogQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oICovLAorCQkJCUNEOEQzMDZFMjNBRDRGQTgw
MDZDMzk3NSAvKiBDRE1Mb2dnaW5nLmNwcCAqLywKKwkJCQlDRDhEMzA2RDIzQUQ0RkE4MDA2QzM5
NzUgLyogQ0RNTG9nZ2luZy5oICovLAogCQkJCUNEOTRBNUQzMUY3MUNCNkMwMEY1MjVDNSAvKiBD
RE1NZWRpYUNhcGFiaWxpdHkuaCAqLywKIAkJCQlDRDk0QTVENjFGNzFDQjZEMDBGNTI1QzUgLyog
Q0RNTWVzc2FnZVR5cGUuaCAqLywKIAkJCQlDRDNDRTExQzI0MDQ1MUFGMDA0QkEwMUQgLyogQ0RN
UHJpdmF0ZS5jcHAgKi8sCkBAIC0yNjM3OSw4ICsyNjUyMiw2IEBACiAJCQkJQ0Q5NEE1Q0MxRjcx
Q0I2OTAwRjUyNUM1IC8qIENETVJlcXVpcmVtZW50LmggKi8sCiAJCQkJQ0Q5NEE1RDAxRjcxQ0I2
QjAwRjUyNUM1IC8qIENETVJlc3RyaWN0aW9ucy5oICovLAogCQkJCUNEOTRBNUQ1MUY3MUNCNkQw
MEY1MjVDNSAvKiBDRE1TZXNzaW9uVHlwZS5oICovLAotCQkJCUNEOEQzMDZEMjNBRDRGQTgwMDZD
Mzk3NSAvKiBDRE1Mb2dnaW5nLmggKi8sCi0JCQkJQ0Q4RDMwNkUyM0FENEZBODAwNkMzOTc1IC8q
IENETUxvZ2dpbmcuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBlbmNyeXB0ZWRtZWRpYTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzAyNSw2ICsyNzE2NiwxMTMgQEAKIAkJCW5h
bWUgPSBUaHJlYWRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFFRThB
QzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9y
V2ViWFIuY3BwICovLAorCQkJCUUxRUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JX
ZWJYUi5oICovLAorCQkJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJY
Ui5pZGwgKi8sCisJCQkJRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVy
ZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuaCAqLywKKwkJCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovLAorCQkJCUUxRUU4QjA1MjQxMkIxNzAwMEU3
OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi8sCisJCQkJRTFFRThBREEyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsICovLAorCQkJCUUxRUU4QUY1
MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5oICovLAorCQkJCUUxRUU4QjAzMjQxMkIxNzAwMEU3
OTRENiAvKiBYUkV5ZS5pZGwgKi8sCisJCQkJRTFFRThBRjAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
RnJhbWUuY3BwICovLAorCQkJCUUxRUU4QUUzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lLmgg
Ki8sCisJCQkJRTFFRThCMEMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuaWRsICovLAorCQkJ
CUUxRUU4QUU5MjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi8s
CisJCQkJRTFFRThBRkIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aWRsICovLAorCQkJCUUxRUU4QUVFMjQxMkIxNzAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCAq
LywKKwkJCQlFMUVFOEIwNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmlkbCAqLywK
KwkJCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5jcHAgKi8sCisJ
CQkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaCAqLywKKwkJCQlF
MUVFOEFFRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5pZGwgKi8sCisJCQkJRTFF
RThBRTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5jcHAgKi8sCisJCQkJ
RTFFRThBREQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5oICovLAorCQkJ
CUUxRUU4QjE4MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlQXJyYXkuaWRsICovLAor
CQkJCUUxRUU4QUNDMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICov
LAorCQkJCUUxRUU4QjA5MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAq
LywKKwkJCQlFMUVFOEIwMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50Lmlk
bCAqLywKKwkJCQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5jcHAgKi8sCisJCQkJRTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEFFNDI0MTJCMTcwMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgKi8sCisJCQkJRTFFRThBRTUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUG9zZS5jcHAgKi8sCisJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUG9zZS5oICovLAorCQkJCUUxRUU4QjE2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlBvc2UuaWRs
ICovLAorCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNw
cCAqLywKKwkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5o
ICovLAorCQkJCUUxRUU4QUY2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmlk
bCAqLywKKwkJCQlFMUVFOEFGMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmNwcCAqLywKKwkJCQlFMUVFOEFEQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZUV2ZW50LmggKi8sCisJCQkJRTFFRThBRDAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJl
bmNlU3BhY2VFdmVudC5pZGwgKi8sCisJCQkJRTFFRThBQzkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
UmVmZXJlbmNlU3BhY2VUeXBlLmggKi8sCisJCQkJRTFFRThBRkEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCAqLywKKwkJCQlFMUVFOEFDRTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJSZW5kZXJTdGF0ZS5jcHAgKi8sCisJCQkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSUmVuZGVyU3RhdGUuaCAqLywKKwkJCQlFMUVFOEFGMjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZW5kZXJTdGF0ZS5pZGwgKi8sCisJCQkJRTFFRThBQ0IyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
UmVuZGVyU3RhdGVJbml0LmggKi8sCisJCQkJRTFFRThBRUMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
UmVuZGVyU3RhdGVJbml0LmlkbCAqLywKKwkJCQlFMUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8sCisJCQkJRTFFRThCMDYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUmlnaWRUcmFuc2Zvcm0uaCAqLywKKwkJCQlFMUVFOEIwMTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8sCisJCQkJRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSU2Vzc2lvbi5jcHAgKi8sCisJCQkJRTFFRThCMTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vz
c2lvbi5oICovLAorCQkJCUUxRUU4QURFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaWRs
ICovLAorCQkJCUUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAg
Ki8sCisJCQkJRTFFRThBRTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggKi8s
CisJCQkJRTFFRThBRkQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmlkbCAqLywK
KwkJCQlFMUVFOEIxMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5oICovLAorCQkJ
CUUxRUU4QUQ3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAqLywKKwkJCQlF
MUVFOEFGRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovLAorCQkJCUUxRUU4
QUM4MjQxMkIxNkYwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmlkbCAqLywKKwkJCQlFMUVFOEFG
ODI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5jcHAgKi8sCisJCQkJRTFFRThBQ0YyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU3BhY2UuaCAqLywKKwkJCQlFMUVFOEFENDI0MTJCMTcwMDBFNzk0RDYg
LyogWFJTcGFjZS5pZGwgKi8sCisJCQkJRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3lz
dGVtLmNwcCAqLywKKwkJCQlFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaCAq
LywKKwkJCQlFMUVFOEIwMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaWRsICovLAorCQkJ
CUUxRUU4QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLywKKwkJCQlF
MUVFOEFGRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmlkbCAqLywKKwkJCQlF
MUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmNwcCAqLywKKwkJCQlFMUVFOEFFMDI0
MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmggKi8sCisJCQkJRTFFRThBREYyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSVmlldy5pZGwgKi8sCisJCQkJRTFFRThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
Vmlld2VyUG9zZS5jcHAgKi8sCisJCQkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSVmll
d2VyUG9zZS5oICovLAorCQkJCUUxRUU4QUVEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdlclBv
c2UuaWRsICovLAorCQkJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmNw
cCAqLywKKwkJCQlFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5oICovLAor
CQkJCUUxRUU4QjBBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmlkbCAqLywKKwkJCQlF
MUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLywKKwkJCQlF
MUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaWRsICovLAorCQkJ
CUUxRUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuY3BwICovLAorCQkJCUUx
RUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCAqLywKKwkJCQlFMUVFOEFG
QzI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmlkbCAqLywKKwkJCQlFMUVFOEIwODI0
MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oICovLAorCQkJCUUxRUU4QjEwMjQx
MkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmlkbCAqLywKKwkJCSk7CisJCQlwYXRo
ID0gd2VieHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlFMUVFOEI2QjI0
MTJCMkE3MDBFNzk0RDYgLyogeHIgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUUxRUU4QjZEMjQxMkIyQTcwMEU3OTRENiAvKiBvcGVueHIgKi8sCisJCQkJ
RTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJCUUxRUU4
QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IHhyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJRTFFRThCNkQyNDEyQjJB
NzAwRTc5NEQ2IC8qIG9wZW54ciAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICov
LAorCQkJKTsKKwkJCXBhdGggPSBvcGVueHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQlFMUYwNDI0MzA5ODM5Mzg5MDA2Njk0RUEgLyogeG1sICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI5MzYyLDYgKzI5NjEwLDcgQEAKIAkJCQlD
RDNDRTBGQjI0MDFBQUQ5MDA0QkEwMUQgLyogQ0RNSW5zdGFuY2VTZXNzaW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDNDRTBGQzI0MDFBQUQ5MDA0QkEwMUQgLyogQ0RNS2V5U3RhdHVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDNDRTBGRDI0MDFBQUQ5MDA0QkEwMUQgLyogQ0RNS2V5U3lzdGVt
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q4RDMwNkYyM0FENEZBODAwNkMz
OTc1IC8qIENETUxvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0NFMEZFMjQwMUFBRDkw
MDRCQTAxRCAvKiBDRE1NZWRpYUNhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0NF
MEZGMjQwMUFBREEwMDRCQTAxRCAvKiBDRE1NZXNzYWdlVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0QzQ0UxMDAyNDAxQUFEQTAwNEJBMDFEIC8qIENETVByaXZhdGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMzA0MzEsNyArMzA2ODAsNiBAQAogCQkJCTA3RTlFMTJFMThGNUUyNzYwMDExQTNBNCAv
KiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OTQxNzkyMTY2RTg1NUYwMDk0MTZDMiAvKiBJbmJhbmRUZXh0VHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3OTQxNzk0MTY2RUEwNEUwMDk0MTZDMiAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlDRDhEMzA2RjIzQUQ0RkE4MDA2QzM5NzUgLyogQ0RN
TG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCNDQyRDcxNjZDNzBCMDAwNTU2Q0FEIC8q
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QUE2QjZD
MTY2RDJDMTMwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDdDRTc3RDUxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE2OTksNiArMzE5NDcsNyBAQAog
CQkJCTZCNTA3QTI0MjM0QkYzNDEwMEJFN0M2MiAvKiBOYXZpZ2F0b3JJc0xvZ2dlZEluLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1RUE3MjVENjFBQ0FCRDU3MDBFQUQxN0IgLyogTmF2aWdhdG9yTWVk
aWFEZXZpY2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkg
LyogTmF2aWdhdG9yV2ViRHJpdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3ODI0MTMx
OTFGMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5
QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzE5
MTMsNiArMzIxNjIsNyBAQAogCQkJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9y
bVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1
MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzZCMDlBQzRENEYw
MEE2QUFCNCAvKiBQbGF0Zm9ybVdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4
QjcyMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
MTJCRTQ4MDFGRTg2NEE3MDAyMDMxQ0MgLyogUGxheWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQTI5QTA5MUNCRDk5RjQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQTI5QTMyMUNDMDFBOTUwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzI1Miw2
ICszMzUwMiwzNiBAQAogCQkJCTFBQjdGQzg0MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFV0aWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjdGQzg2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3RkM4ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCN0UyNDEzMTkx
RjAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTcyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEI4QTI0MTMxOTFGMDBFNzk0RDYgLyogWFJGcmFtZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOEYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjkyMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUkhhbmRlZG5lc3MuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE4MjQxMzE5NjMw
MEU3OTRENiAvKiBYUklucHV0U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NjI0
MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI5RjI0MTMxOTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUVFOEI5OTI0MTMxOTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODgyNDEzMTkxRjAwRTc5NEQ2
IC8qIFhSUG9zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCQTYyNDEzMTk2MzAwRTc5NEQ2
IC8qIFhSUmVmZXJlbmNlU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg0MjQxMzE5
MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUxRUU4Qjc3MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTFFRThCODEyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc5MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRl
clN0YXRlSW5pdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUQyNDEzMTk1MDAwRTc5NEQ2
IC8qIFhSUmlnaWRUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkEzMjQxMzE5
NjMwMEU3OTRENiAvKiBYUlNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjhEMjQx
MzE5NTAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCQTUyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUxRUU4QjlBMjQxMzE5NTAwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI3RDI0MTMxOTFGMDBFNzk0RDYgLyogWFJTcGFjZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTFFRThCODkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSU3lzdGVtLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUVFOEI5MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJWaWV3
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3NjI0MTMxOTFGMDBFNzk0RDYgLyogWFJWaWV3
ZXJQb3NlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5NjI0MTMxOTUwMDBFNzk0RDYgLyog
WFJWaWV3cG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODIyNDEzMTkxRjAwRTc5NEQ2
IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QjI0MTMx
OTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5
RTI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODUyMTdFMDMwQTVFQ0Q0NzAwREI4RDAwIC8qIFhTTEltcG9ydFJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjE5OUVDMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xTdHlsZVNoZWV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lv
bnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzM3ODUsNiArMzQwNjUsNyBAQAogCQkJCUNERjJCMDE2
MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDlCRjc0MjFEQkZEQzI3MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxQTRCQjEwMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JH
YW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRENiAv
KiBOYXZpZ2F0b3JXZWJYUi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxMzBEN0UyQjgy
MDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDE2MEQ3
RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1
NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfcnVudGltZS5tbSBpbiBTb3VyY2VzICovLApA
QCAtMzM3OTIsNiArMzQwNzMsOCBAQAogCQkJCUUxNjk4MjYwMTEzNDYzNkEwMDg5NDExNSAvKiBP
YmpDUnVudGltZU9iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFQTI4NDY2MjE0MUU4NDkw
MEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9T
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCNzEyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRm
b3JtWFIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCNzAyNDEyQjJBODAwRTc5NEQ2IC8q
IFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMzAxQ0JGNzRENDAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RBMjlBMTYxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLApAQCAtMzQ0NTYs
NiArMzQ3MzksMjUgQEAKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtOYW1l
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNGMjU2MDBENTc2NjQgLyogWE1M
TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1QTM2RDkxMTA0NTcyNzAwQjdCNjM5IC8q
IFhNTE5TTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCODAyNDEzMTkxRjAwRTc5
NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUx
RUU4QjkzMjQxMzE5NTAwMEU3OTRENiAvKiBYUkZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUUxRUU4QkExMjQxMzE5NjMwMEU3OTRENiAvKiBYUklucHV0U291cmNlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUxRUU4QjhDMjQxMzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlQXJyYXku
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBNzI0MTMxOTYzMDBF
Nzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMUVFOEI4QjI0MTMxOTFGMDBFNzk0RDYgLyogWFJQb3NlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUUxRUU4QjdGMjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUxRUU4Qjk1MjQxMzE5NTAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0MyNDEzMTkxRjAwRTc5NEQ2
IC8qIFhSUmVuZGVyU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0IyNDEzMTkx
RjAwRTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCQTIyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMUVFOEI4NTI0MTMxOTFGMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTFFRThCOTgyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU3BhY2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRTFFRThCOEUyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUxRUU4QkE0MjQxMzE5NjMwMEU3OTRENiAvKiBYUlZpZXcuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCQTAyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVmlld2Vy
UG9zZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5MTI0MTMxOTUwMDBFNzk0RDYgLyog
WFJWaWV3cG9ydC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4MzI0MTMxOTFGMDBFNzk0
RDYgLyogWFJXZWJHTExheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lE
TFR5cGVzLmgKaW5kZXggMzA1YmNmNTE0NGUwMmUzNjFlNWQzMmYwNDc1NDE1ZTU4Yjg2NWZmMy4u
OTRmMzE2NWUxZjI3YmEwMmNhOWQ2YjMyMjQyY2QzMTM0ZWIxMzJiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9JRExUeXBlcy5oCkBAIC02Miw2ICs2Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBz
dHJ1Y3QgSURMVHlwZSB7CiAgICAgdXNpbmcgSW1wbGVtZW50YXRpb25UeXBlID0gVDsKICAgICB1
c2luZyBTdG9yYWdlVHlwZSA9IFQ7CisgICAgdXNpbmcgU2VxdWVuY2VTdG9yYWdlVHlwZSA9IFQ7
CiAKICAgICB1c2luZyBQYXJhbWV0ZXJUeXBlID0gVDsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFt
ZXRlclR5cGUgPSBPcHRpb25hbDxJbXBsZW1lbnRhdGlvblR5cGU+OwpAQCAtODIsNiArODMsNyBA
QCBzdHJ1Y3QgSURMVW5zdXBwb3J0ZWRUeXBlIDogSURMVHlwZTx2b2lkPiB7IH07CiBzdHJ1Y3Qg
SURMTnVsbCA6IElETFR5cGU8c3RkOjpudWxscHRyX3Q+IHsgfTsKIAogc3RydWN0IElETEFueSA6
IElETFR5cGU8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4geworICAgIHVzaW5nIFNlcXVlbmNl
U3RvcmFnZVR5cGUgPSBKU0M6OkpTVmFsdWU7CiAgICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IEpT
Qzo6SlNWYWx1ZTsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBKU0M6OkpTVmFs
dWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFNlcXVlbmNlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2Vx
dWVuY2VzLmgKaW5kZXggYzQ5ZGQ5MzhmY2UyNzE2NWY3NDdlNThmZTA4YTU1M2RiYmZkZjVjMi4u
ODZmN2YyNzZmYzA4YWUwN2MwMTAwMDIyMmQzNTlmMGVmZWI1YWViZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgKQEAgLTQwLDcg
KzQwLDcgQEAgbmFtZXNwYWNlIERldGFpbCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+
CiBzdHJ1Y3QgR2VuZXJpY1NlcXVlbmNlQ29udmVydGVyIHsKLSAgICB1c2luZyBSZXR1cm5UeXBl
ID0gVmVjdG9yPHR5cGVuYW1lIElETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT47CisgICAgdXNp
bmcgUmV0dXJuVHlwZSA9IFZlY3Rvcjx0eXBlbmFtZSBJRExUeXBlOjpTZXF1ZW5jZVN0b3JhZ2VU
eXBlPjsKIAogICAgIHN0YXRpYyBSZXR1cm5UeXBlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU09iamVjdCogb2JqZWN0KQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRl
eCA0NGQ1MGIyMDdjNTM4YTE5NzkyYjRmMzIyNmFmZTY1Mjg3Nzg3MjA5Li4xODgyYTllZmZlMjQw
YzQ1OWJkNWQzNDI2MTdhMGNkOTMzYzJkODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMzUsNiArMjM1LDI1IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhXb3JrbGV0R2xvYmFsU2NvcGUpIFwKICAgICBtYWNy
byhXcml0YWJsZVN0cmVhbSkgXAogICAgIG1hY3JvKFhNTEh0dHBSZXF1ZXN0KSBcCisgICAgbWFj
cm8oWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UpIFwKKyAgICBtYWNybyhYUkZyYW1lKSBcCisgICAg
bWFjcm8oWFJJbnB1dFNvdXJjZSkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2VBcnJheSkgXAor
ICAgIG1hY3JvKFhSSW5wdXRTb3VyY2VFdmVudCkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQpIFwKKyAgICBtYWNybyhYUlBvc2UpIFwKKyAgICBtYWNybyhYUlJlZmVyZW5j
ZVNwYWNlKSBcCisgICAgbWFjcm8oWFJSZWZlcmVuY2VTcGFjZUV2ZW50KSBcCisgICAgbWFjcm8o
WFJSZW5kZXJTdGF0ZSkgXAorICAgIG1hY3JvKFhSUmlnaWRUcmFuc2Zvcm0pIFwKKyAgICBtYWNy
byhYUlNlc3Npb24pIFwKKyAgICBtYWNybyhYUlNlc3Npb25FdmVudCkgXAorICAgIG1hY3JvKFhS
U3BhY2UpIFwKKyAgICBtYWNybyhYUlN5c3RlbSkgXAorICAgIG1hY3JvKFhSVmlldykgXAorICAg
IG1hY3JvKFhSVmlld2VyUG9zZSkgXAorICAgIG1hY3JvKFhSVmlld3BvcnQpIFwKKyAgICBtYWNy
byhYUldlYkdMTGF5ZXIpIFwKICAgICBtYWNybyhhcHBlbmRGcm9tSlMpIFwKICAgICBtYWNybyhh
c3NvY2lhdGVkUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlcikgXAogICAgIG1hY3JvKGF1dG9B
bGxvY2F0ZUNodW5rU2l6ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZDQ5NjBiOWNm
NzUxZjQxMTQyMmI2NzA4NDFhMDViOGJkMmM3MWMyOC4uZjhjMWQzNWFmY2RhMzlkMzRhNmVlYTcz
NTdjYzhjMzQ4YmNhZGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xNDgsNiArMTQ4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGljZWdhdGhlcmluZ3N0YXRlY2hh
bmdlKSBcCiAgICAgbWFjcm8oaW5hY3RpdmUpIFwKICAgICBtYWNybyhpbnB1dCkgXAorICAgIG1h
Y3JvKGlucHV0c291cmNlc2NoYW5nZSkgXAogICAgIG1hY3JvKGluc3RhbGwpIFwKICAgICBtYWNy
byhpbnZhbGlkKSBcCiAgICAgbWFjcm8oa2V5ZG93bikgXApAQCAtMjMxLDYgKzIzMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhzZWVrZWQpIFwKICAgICBtYWNybyhzZWVraW5n
KSBcCiAgICAgbWFjcm8oc2VsZWN0KSBcCisgICAgbWFjcm8oc2VsZWN0ZW5kKSBcCiAgICAgbWFj
cm8oc2VsZWN0aW9uY2hhbmdlKSBcCiAgICAgbWFjcm8oc2VsZWN0c3RhcnQpIFwKICAgICBtYWNy
byhzaGlwcGluZ2FkZHJlc3NjaGFuZ2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXgg
YTU5MDg2MTA2OGY1ZTM3NjY3MTMyZmQxYWE0MmU2NzkxODE3ZDhhMC4uYjg3ZWYwNmI5ODMwZDVk
Yjg2YTM4MzE0NzNmNmEwMTc2OWYxZjIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAg
LTg1LDMgKzg1LDcgQEAgTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVE
X01FRElBCiBQb2ludGVyRXZlbnQKIEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50IGNvbmRpdGlvbmFs
PVdFQkdQVQogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQgY29uZGl0aW9uYWw9UElDVFVSRV9J
Tl9QSUNUVVJFX0FQSQorWFJJbnB1dFNvdXJjZUV2ZW50IGNvbmRpdGlvbmFsPVdFQkdMCitYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQkdMCitYUlJlZmVyZW5jZVNwYWNl
RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKK1hSU2Vzc2lvbkV2ZW50IGNvbmRpdGlvbmFsPVdFQkdM
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA4MWU3Y2M5ZjBi
NzY1MDU2MmFhYmZlZmUwNWE1YTNhZDFiYmJiOGZmLi5lYjBhZTAwNjY4M2E4N2RiN2YzYjg0YzU1
ZDE0MGE0Nzk3YjgzYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rvcnku
aW4KQEAgLTU4LDQgKzU4LDcgQEAgV29ya2VyCiBXb3JrbGV0R2xvYmFsU2NvcGUgY29uZGl0aW9u
YWw9Q1NTX1BBSU5USU5HX0FQSQogWE1MSHR0cFJlcXVlc3QKIFhNTEh0dHBSZXF1ZXN0VXBsb2Fk
CitYUlNlc3Npb24gY29uZGl0aW9uYWw9V0VCR0wKK1hSU3BhY2UgY29uZGl0aW9uYWw9V0VCR0wK
K1hSU3lzdGVtIGNvbmRpdGlvbmFsPVdFQkdMCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggNWQxYWZkYmVkNTVlMzZmZWIxMGY0ZTM1MDM3MTAy
NjlmMzdlZTlhZS4uMWM4YzFiZDM0ZTdiNDc0NTU3MjNkYWI1MDE5YWE3YjE5NmE0NzM1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEzOCw2
ICsxMzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVk
KGJvb2wgaXNFbmFibGVkKSB7IG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCA9IGlzRW5hYmxl
ZDsgfQogICAgIGJvb2wgaW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZDsgfQogCisgICAgdm9pZCBzZXRXZWJYUkVuYWJs
ZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV93ZWJYUkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBi
b29sIHdlYlhSRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViWFJFbmFibGVkOyB9CisKICAg
ICB2b2lkIHNldEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQp
IHsgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAg
Ym9vbCBhY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOyB9CiAKQEAgLTQ0Niw2ICs0NDksNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc1dlYlNvY2tldEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9v
bCBtX2ZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luc3Bl
Y3RvckFkZGl0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV93ZWJYUkVuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fYXJpYVJlZmxlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94
ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzI2OGVlNjc3YTM3OWE2YmY1NTE3MGI5OTA0
ZjMzYmJlNzcxYWY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
eHIvUGxhdGZvcm1YUi5jcHAKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Y
Ui5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1
MDI5MzAyYjYwOTA5MmU4ZDdkNjMyOTNlMjBiYzExYjMyN2JjNTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFBs
YXRmb3JtWFIgeworCitlbnVtIGNsYXNzIFNlc3Npb25Nb2RlIHsKKyAgICBJbmxpbmUsCisgICAg
SW1tZXJzaXZlVnIsCisgICAgSW1tZXJzaXZlQXIsCit9OworCitjbGFzcyBEZXZpY2UgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8RGV2aWNlPiB7CitwdWJsaWM6Cit9OworCitjbGFzcyBJbnN0YW5j
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIEluc3RhbmNlJiBzaW5nbGV0b24oKTsKKworcHJpdmF0
ZToKKyAgICBJbnN0YW5jZSgpOworICAgIH5JbnN0YW5jZSgpOworCisgICAgc3RydWN0IEltcGw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEltcGw+IG1faW1wbDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54
ci9QbGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0
Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZThjMjJiNjlmYmZhMDZkOTUyZjY5MzUxYTIxZDU5MmEx
ZDgzNGZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3Bl
bnhyL1BsYXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEsMTYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVhSLmgiCisKKyNpZiBVU0VfT1BFTlhSCisjaW5jbHVkZSA8b3BlbnhyL29wZW54ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorI2VuZGlmIC8vIFVTRV9PUEVOWFIKKyNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCisjaWYgVVNFX09Q
RU5YUgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBYclN0cnVjdHVyZVR5cGUgU3RydWN0dXJlVHlw
ZT4KK1QgY3JlYXRlU3RydWN0dXJlKCkKK3sKKyAgICBUIG9iamVjdDsKKyAgICBzdGQ6Om1lbXNl
dCgmb2JqZWN0LCAwLCBzaXplb2YoVCkpOworICAgIG9iamVjdC50eXBlID0gU3RydWN0dXJlVHlw
ZTsKKyAgICBvYmplY3QubmV4dCA9IG51bGxwdHI7CisgICAgcmV0dXJuIG9iamVjdDsKK30KKwor
U3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGluc3RhbmNl
KQoreworICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOworICAgIFhy
UmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZmZXIp
OworICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIFN0cmluZyhi
dWZmZXIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAi
PiIpOworfQorCisjZGVmaW5lIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCBjYWxsLCBpbnN0YW5j
ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBpZiAoWFJfRkFJTEVEKHJlc3VsdCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBX
VEZMb2dBbHdheXMoIiVzICVzOiAlc1xuIiwgX19mdW5jX18sIGNhbGwsIHJlc3VsdFRvU3RyaW5n
KHJlc3VsdCwgaW5zdGFuY2UpLnV0ZjgoKS5kYXRhKCkpOyBcCisgICAgICAgIHJldHVybjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorCisjZW5kaWYgLy8gVVNFX09QRU5YUgorCitzdHJ1Y3QgSW5zdGFu
Y2U6OkltcGwgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIElt
cGwoKTsKKyAgICB+SW1wbCgpOworCisjaWYgVVNFX09QRU5YUgorICAgIFhySW5zdGFuY2UgbV9p
bnN0YW5jZSB7IFhSX05VTExfSEFORExFIH07CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfTsKKwor
SW5zdGFuY2U6OkltcGw6OkltcGwoKQoreworI2lmIFVTRV9PUEVOWFIKKyAgICBXVEZMb2dBbHdh
eXMoIk9wZW5YUjogaW5pdGlhbGl6aW5nXG4iKTsKKworICAgIFsmXSB7CisgICAgICAgIHVpbnQz
Ml90IHByb3BlcnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAgICAgIFhyUmVzdWx0IHJlc3VsdCA9
IHhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKDAsICZwcm9wZXJ0eUNvdW50T3V0cHV0LCBu
dWxscHRyKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUFw
aUxheWVyUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgaWYgKCFwcm9wZXJ0
eUNvdW50T3V0cHV0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlQXBp
TGF5ZXJQcm9wZXJ0aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFhyQXBpTGF5ZXJQcm9wZXJ0aWVzPiBwcm9w
ZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRwdXQpOworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0
ZUFwaUxheWVyUHJvcGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyLCBwcm9wZXJ0
aWVzLmRhdGEoKSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJh
dGVBcGlMYXllclByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIFdURkxvZ0Fs
d2F5cygieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTogJXp1IHByb3BlcnRpZXNcbiIs
IHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICB9KCk7CisKKyAgICBbJl0geworICAgICAgICB1aW50
MzJfdCBwcm9wZXJ0eUNvdW50T3V0cHV0IHsgMCB9OworICAgICAgICBYclJlc3VsdCByZXN1bHQg
PSB4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCAwLCAmcHJv
cGVydHlDb3VudE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVz
dWx0LCAieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5zdGFu
Y2UpOworCisgICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1dCkgeworICAgICAgICAgICAg
V1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpOiBu
byBwcm9wZXJ0aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIFZlY3RvcjxYckV4dGVuc2lvblByb3BlcnRpZXM+IHByb3BlcnRpZXMocHJvcGVydHlDb3Vu
dE91dHB1dCwKKyAgICAgICAgICAgIFtdIHsKKyAgICAgICAgICAgICAgICBYckV4dGVuc2lvblBy
b3BlcnRpZXMgb2JqZWN0OworICAgICAgICAgICAgICAgIHN0ZDo6bWVtc2V0KCZvYmplY3QsIDAs
IHNpemVvZihYckV4dGVuc2lvblByb3BlcnRpZXMpKTsKKyAgICAgICAgICAgICAgICBvYmplY3Qu
dHlwZSA9IFhSX1RZUEVfRVhURU5TSU9OX1BST1BFUlRJRVM7CisgICAgICAgICAgICAgICAgcmV0
dXJuIG9iamVjdDsKKyAgICAgICAgICAgIH0oKSk7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5
Q291bnRXcml0dGVuIHsgMCB9OworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNl
RXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCBwcm9wZXJ0eUNvdW50T3V0cHV0LCAmcHJvcGVy
dHlDb3VudFdyaXR0ZW4sIHByb3BlcnRpZXMuZGF0YSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZB
SUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpIiwg
bV9pbnN0YW5jZSk7CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNl
RXh0ZW5zaW9uUHJvcGVydGllcygpOiAlenUgZXh0ZW5zaW9uIHByb3BlcnRpZXNcbiIsIHByb3Bl
cnRpZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IHByb3BlcnRpZXMp
IHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiICBleHRlbnNpb24gJyVzJywgdmVyc2lvbiAl
dVxuIiwKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eS5leHRlbnNpb25OYW1lLCBwcm9wZXJ0eS5l
eHRlbnNpb25WZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0oKTsKKworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBzX2FwcGxpY2F0aW9uTmFtZSA9ICJXZWJYUiAoV2ViS2l0KSI7CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHNfYXBwbGljYXRpb25WZXJzaW9uID0gMTsKKworICAgIHsKKyAgICAg
ICAgYXV0byBjcmVhdGVJbmZvID0gY3JlYXRlU3RydWN0dXJlPFhySW5zdGFuY2VDcmVhdGVJbmZv
LCBYUl9UWVBFX0lOU1RBTkNFX0NSRUFURV9JTkZPPigpOworICAgICAgICBjcmVhdGVJbmZvLmNy
ZWF0ZUZsYWdzID0gMDsKKyAgICAgICAgc3RkOjptZW1jcHkoY3JlYXRlSW5mby5hcHBsaWNhdGlv
bkluZm8uYXBwbGljYXRpb25OYW1lLCBzX2FwcGxpY2F0aW9uTmFtZSwgWFJfTUFYX0FQUExJQ0FU
SU9OX05BTUVfU0laRSk7CisgICAgICAgIGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwaVZl
cnNpb24gPSBYUl9DVVJSRU5UX0FQSV9WRVJTSU9OOworICAgICAgICBjcmVhdGVJbmZvLmFwcGxp
Y2F0aW9uSW5mby5hcHBsaWNhdGlvblZlcnNpb24gPSBzX2FwcGxpY2F0aW9uVmVyc2lvbjsKKyAg
ICAgICAgY3JlYXRlSW5mby5lbmFibGVkQXBpTGF5ZXJDb3VudCA9IDA7CisgICAgICAgIGNyZWF0
ZUluZm8uZW5hYmxlZEV4dGVuc2lvbkNvdW50ID0gMDsKKworICAgICAgICBYckluc3RhbmNlIGlu
c3RhbmNlOworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckNyZWF0ZUluc3RhbmNlKCZjcmVh
dGVJbmZvLCAmaW5zdGFuY2UpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhy
Q3JlYXRlSW5zdGFuY2UoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIG1faW5zdGFuY2UgPSBp
bnN0YW5jZTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckNyZWF0ZUluc3RhbmNlKCk6IHVzaW5n
IGluc3RhbmNlICVwXG4iLCBtX2luc3RhbmNlKTsKKyAgICB9CisjZW5kaWYgLy8gVVNFX09QRU5Y
UgorfQorCitJbnN0YW5jZTo6SW1wbDo6fkltcGwoKQoreworfQorCitJbnN0YW5jZSYgSW5zdGFu
Y2U6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxJbnN0YW5j
ZT4gc19pbnN0YW5jZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAg
ICBzdGQ6OmNhbGxfb25jZShzX29uY2VGbGFnLAorICAgICAgICBbJl0geworICAgICAgICAgICAg
c19pbnN0YW5jZS0+bV9pbXBsID0gbWFrZVVuaXF1ZTxJbXBsPigpOworICAgICAgICB9KTsKKyAg
ICByZXR1cm4gc19pbnN0YW5jZS5nZXQoKTsKK30KKworSW5zdGFuY2U6Okluc3RhbmNlKCkgPSBk
ZWZhdWx0OworSW5zdGFuY2U6On5JbnN0YW5jZSgpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3Bh
Y2UgUGxhdGZvcm1YUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5k
ZXggMDAwNWQ1ZDE2N2RiZTVlOWFmZjZhZmYwYmVjMWJhYzFiNTA5MzE4Zi4uZjU0NTI3YzE5YjZk
OWZjODNmYjcwZDY3NmI0MzQ1MmRmOWI4ZTY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCkBAIC0xOTc5LDYgKzE5NzksMTUgQEAgSW5jcmVtZW50YWxQREZMb2Fk
aW5nRW5hYmxlZDoKICAgY29uZGl0aW9uOiBIQVZFKElOQ1JFTUVOVEFMX1BERl9BUElTKQogICB3
ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogCitXZWJYUkVuYWJsZWQ6Cisg
IHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTog
IldlYlhSIERldmljZSBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFkZHMgc3Vw
cG9ydCBmb3IgYWNjZXNzaW5nIHZpcnR1YWwgcmVhbGl0eSAoVlIpIGFuZCBhdWdtZW50ZWQgcmVh
bGl0eSAoQVIpIGRldmljZXMsIGluY2x1ZGluZyBzZW5zb3JzIGFuZCBoZWFkLW1vdW50ZWQgZGlz
cGxheXMsIG9uIHRoZSBXZWIiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKyAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKKyAgY29uZGl0aW9uOiBFTkFCTEUoV0VCR0wp
ICYmIFBMQVRGT1JNKFdQRSkKKwogIyBEZXByZWNhdGVkCiAKIElDRUNhbmRpZGF0ZUZpbHRlcmlu
Z0VuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZSBiL1Nv
dXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZmRmMDRjMTFlZGQwMzkw
MGZjNGMxNDJjZTc2YTY2MTQ4MzBmNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2Uv
RmluZE9wZW5YUi5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZpbmQgT3BlblhS
LgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIE9QRU5YUl9GT1VORCAtIHN5
c3RlbSBoYXMgV1BFLgorIyAgT1BFTlhSX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUgaW5jbHVkZSBk
aXJlY3RvcmllcworIyAgT1BFTlhSX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRS4K
KyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgor
IyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNr
YWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX09QRU5YUiBRVUlFVCBvcGVueHIp
CisKK2ZpbmRfcGF0aChPUEVOWFJfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgb3BlbnhyL29wZW54
ci5oCisgICAgSElOVFMgJHtQQ19PUEVOWFJfSU5DTFVERURJUn0gJHtQQ19PUEVOWFJfSU5DTFVE
RV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoT1BFTlhSX0xJQlJBUklFUworICAgIE5BTUVTIG9w
ZW54cl9sb2FkZXIKKyAgICBISU5UUyAke1BDX09QRU5YUl9MSUJESVJ9ICR7UENfT1BFTlhSX0xJ
QlJBUllfRElSU30KKykKKworbWFya19hc19hZHZhbmNlZChPUEVOWFJfSU5DTFVERV9ESVJTIE9Q
RU5YUl9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3Mp
CitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoT3BlblhSIFJFUVVJUkVEX1ZBUlMg
T1BFTlhSX0lOQ0xVREVfRElSUyBPUEVOWFJfTElCUkFSSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpp
bmRleCBkM2UwOGM4N2Y0NThhMDc5ZTUwNjEwNjk0ODQ4OTkxNjlmMTc3NGZkLi5lNjEyZjRiZTRj
YTI4ZGE4ODM2NWU2NjFmZjEzNjU0YmViZTc0MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAt
MTcxLDYgKzE3MSw5IEBAIGlmIChFTkFCTEVfV1BFX1FUX0FQSSBPUiBVU0VfV1BFX1ZJREVPX1BM
QU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIGZpbmRfcGFja2FnZShXUEVCYWNrZW5kLWZkbyAxLjUu
MCBSRVFVSVJFRCkKIGVuZGlmICgpCiAKK2ZpbmRfcGFja2FnZShPcGVuWFIpCitTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChVU0VfT1BFTlhSICR7T1BFTlhSX0ZPVU5EfSkKKwogYWRkX2RlZmluaXRp
b25zKC1EQlVJTERJTkdfV1BFX189MSkKIGFkZF9kZWZpbml0aW9ucygtREdFVFRFWFRfUEFDS0FH
RT0iV1BFIikKIGFkZF9kZWZpbml0aW9ucygtREpTQ19HTElCX0FQSV9FTkFCTEVEKQpkaWZmIC0t
Z2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGU4ODI5NjAxNzgxOGZmNDhjZjhhNWQw
YjhkOTMzYTE2NDYxMmNhZTYuLjgwMDE3OTAzOWYyYzdiMGZjNzA5ZjQ4MDQ5M2VkZDBmNjIxMTAy
MjcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAyMC0wMy0wNiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
KworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZv
ciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIE9wZW5YUiBkZXRlY3Rpb24gYW5kIFVTRV9PUEVOWFIgZGVmaW5lIHRvIGJlIHVzZWQgaW4g
dGhlIHNvdXJjZXMuCisgICAgICAgIEl0IGFsc28gYWRkcyBhIGRlcGVuZGVuY3kgYmV0d2VlbiBV
U0VfT1BFTlhSIGFuZCBFTkFCTEVfV0VCR0wuCisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBw
cmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogU291cmNlL2NtYWtl
L0ZpbmRPcGVuWFIuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlOgorCiAyMDIwLTAzLTA5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29u
eS5jb20+CiAKICAgICAgICAgQWRkIHNjcmlwdCB0byBzZWFyY2ggZm9yIGZlYXR1cmUgZGVmaW5l
cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393527</attachid>
            <date>2020-03-13 13:59:23 -0700</date>
            <delta_ts>2020-03-13 14:59:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208702-20200313215919.patch</filename>
            <type>text/plain</type>
            <size>328914</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi45YWY2YjVmNjNjMGM3NzYz
MjNhNDI2MmEyYTA1MDU3ZDJiYTgxMGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1
cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFC
TEVfV0VCWFIuCisKIDIwMjAtMDMtMTEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVzdDI2Mi1ydW5uZXIgc2hvdWxkIGFsd2F5cyBjb25zaWRlciBj
cmFzaGVzIGFzIG5ldyBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBjOTFiZjJjNTEzNWQ5MDA3YWU0
NDk4ZjIwZjU1ODcyYTVkMDY4NzEuLjBiMTJkMDViNjcyNGVjYjBlNjRkMDM4MDBlMzk3NWYwYzVh
YTNlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTYgQEAKKzIwMjAtMDMtMTMgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExz
LCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkZWQgdGhlIElETHMgZGVmaW5lZCBieSB0
aGUgc3BlYyB3aXRoIHZlcnkgYmFzaWMgZW1wdHkgaW1wbGVtZW50YXRpb25zIHRvIGdldCB0aGVt
CisgICAgICAgIGJ1aWx0LiBBcGFydCBmcm9tIHRoYXQgYSB2ZXJ5IGJhc2ljIGltcGxlbWVudGF0
aW9uIG9mIHRoZSByZXF1aXJlZCBwbGF0Zm9ybSBjb2RlIHVzaW5nCisgICAgICAgIE9wZW5YUiBB
UEkgd2FzIGFsc28gYWRkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5ldyBmdW5j
dGlvbmFsaXR5IHdhcyByZWFsbHkgYWRkZWQgKGVtcHR5IGltcGxlbWVudGF0aW9ucykuIEhvd2V2
ZXIKKyAgICAgICAgZm9sbG93IHVwIHBhdGNoZXMgd2lsbCBpbXBvcnQgdGhlIGFscmVhZHkgYXZh
aWxhYmxlIFdQVCB0ZXN0cyBmb3IgV2ViWFIuCisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBw
cmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05h
dmlnYXRvcldlYlhSLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJY
Ujo6eHIpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yV2ViWFI6OmZyb20pOgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJGcmFtZTo6V2ViWFJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZy
YW1lOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSRnJhbWU6OmdldFZp
ZXdlclBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJGcmFtZTo6Z2V0UG9zZSk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJGcmFtZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
V2ViWFJJbnB1dFNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1
dFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6Oldl
YlhSSW5wdXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJjZTo6aGFu
ZGVkbmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjp0YXJn
ZXRSYXlNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OnRh
cmdldFJheVNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6
OmdyaXBTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjpw
cm9maWxlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNl
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6Omxlbmd0
aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6Oml0ZW0g
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSUG9zZTo6V2ViWFJQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6ZW11bGF0ZWRQb3Np
dGlvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OldlYlhSUmVmZXJlbmNlU3BhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3Bh
Y2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlJlbmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlJlbmRlclN0YXRlOjpkZXB0aEZhciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmJhc2VMYXllciBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSUmlnaWRUcmFuc2Zvcm06OldlYlhSUmlnaWRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6bWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSUmlnaWRUcmFuc2Zvcm06OmludmVyc2UgY29uc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
ZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUlNlc3Npb246OnJlbmRlclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhS
U2Vzc2lvbjo6aW5wdXRTb3VyY2VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vz
c2lvbjo6dXBkYXRlUmVuZGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246
OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmFjdGl2ZURPTU9iamVjdE5h
bWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpzdG9wKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViWFJTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTcGFjZTo6
V2ViWFJTcGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06
OldlYlhSU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjppc1Nlc3Npb25T
dXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViWFJTeXN0ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpXZWJYUlZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJWaWV3OjpleWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3Ojpw
cm9qZWN0aW9uTWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmlldzo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlZpZXdlclBvc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UlZpZXdlclBvc2U6OnZpZXdzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld2VyUG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld2Vy
UG9zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3cG9ydDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSVmlld3BvcnQ6OnggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJWaWV3cG9ydDo6eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdw
b3J0Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdwb3J0OjpoZWln
aHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJXZWJHTExheWVyOjpXZWJYUldlYkdMTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJXZWJHTExheWVyOjphbnRpYWxpYXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJX
ZWJHTExheWVyOjppZ25vcmVEZXB0aFZhbHVlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVySGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSV2ViR0xMYXllcjo6Z2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSRXllLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJF
eWUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENh
bGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3Mu
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXggY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50
OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQ6OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZl
cmVuY2VTcGFjZUV2ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpYUlNlc3Npb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lv
bkV2ZW50OjpYUlNlc3Npb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb25FdmVu
dDo6c2Vzc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSVGFyZ2V0UmF5TW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
VGFyZ2V0UmF5TW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaXNp
YmlsaXR5U3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxp
dHlTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVy
SW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQgT3BlblhSIGxp
YnJhcmllcyBhbmQgaW5jbHVkZSBwYXRocy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkZWQg
bmV3IGNwcCBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBlcy5oOiBBZGRl
ZCBTZXF1ZW5jZVN0b3JhZ2VUeXBlLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFNlcXVlbmNlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVz
LmluOiBBZGRlZCBXZWJYUiBldmVudHMuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbjogQWRkZWQgV2ViWFIgZXZlbnQgdGFyZ2V0cy4KKyAgICAgICAgKiBwYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaDogQWRkZWQgbmV3IHJ1bnRpbWUgZmVhdHVyZSBmb3IgV2ViWFIuCisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRXZWJYUkVuYWJsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViWFJFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUi5jcHA6IEFkZGVkLgorICAgICAgICAoUGxhdGZvcm1Y
Ujo6Y3JlYXRlU3RydWN0dXJlKTogVXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgT3BlblhSIHN0
cnVjdHMuCisgICAgICAgIChQbGF0Zm9ybVhSOjpyZXN1bHRUb1N0cmluZyk6IFRyYW5zbGF0ZXMg
T3BlblhSIGVycm9yIGNvZGVzIHRvIHN0cmluZ3MuCisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0
YW5jZTo6SW1wbDo6SW1wbCk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6SW1wbDo6
fkltcGwpOgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbik6CisKIDIw
MjAtMDMtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIG11c3QgYWNj
dW11bGF0ZSBmaWxsIGFuZCBzdHJva2UgZmllbGRzIGFzIHNpbmdsZSBwcm9wZXJ0aWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwppbmRleCAxYzZmMzk4ZjZjMzlhMjZkNDUwMjY2NjljNzJiNWQwMTQ4ZTQwYzM0
Li4wNGFmZTdhOWZlMDhlNzUzNzFiYzMzYjJlMmU1OTAxZTMyOTE4YTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBi
dWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFj
a3Nvbi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
OiBBZGRlZCBFTkFCTEVfV0VCWFIuCisKIDIwMjAtMDMtMTEgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgQVZTYW1wbGVCdWZmZXJWaWRlb091dHB1dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA2ZTQ2ZDIzMGQ5YTY2OTQwMDMwZGQ3ZTc4MTZkNGU5YWQ3Y2E4MzAyLi44ZWU1
NDUyMGRhMDA5NTJmMTQzZmIxOWMwNGQxYWJkYWNkNWVlMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM2IEBACisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRp
b24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAg
IEFkZGVkIFdlYlhSIHRvIHRoZSBsaXN0IG9mIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFC
TEVfV0VCWFIuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6IEFkZGVkIFdl
YlhSIGZlYXR1cmUuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJYUkVuYWJsZWQpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKToKKwor
MjAyMC0wMy0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBEcm9wIHVudXNlZCBFbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIC8gRGlz
YWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgSVBDIG1lc3NhZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg5NzMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU5NjgzOTQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBG
YWJsZXQuCisKKyAgICAgICAgUmVtb3ZlIHR3byB1bnVzZWQgSVBDIG1lc3NhZ2VzLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0lu
dGVyZmFjZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisK
IDIwMjAtMDMtMTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVIFByb2Nlc3NdIGVuY29kZU5hdGl2ZUltYWdlKCkgc2hvdWxkIHBhc3Mg
aW1hZ2VTaXplIHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCBmZmQ4ODg1ODFhYjI5NzRkNmZkZDM5NjA4MzAwZjM1YTUx
MzE2Y2QxLi41MTNlOGUzY2QxZTcwM2I3ZGI1N2Q4ODI2MzY5MDMyNDc2ZDdiOWZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJ
RExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLgorCiAyMDIwLTAzLTA4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFRleHRJdGVyYXRvcjo6
cmFuZ2UgcmV0dXJuIGEgU2ltcGxlUmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBl
NmEzMDAyOWEwMWRmMTgwMmViZjcyZjU4ZmE4NDExNTgxZTgwMWI0Li5mZDBjOTlhNGMyZDczNWZj
MTEwZTFiNWU3ZjQ3MmZkNWQxYjVhYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00
MTQsNCArNDE0LDYgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9X
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAK
LUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAk
KEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJM
RV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQo
RU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQp
ICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5B
QkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJM
RV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJM
RV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAk
KEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklN
RU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQ
QUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FM
VEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFC
TEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
Q1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEp
ICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJP
TFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0Up
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFC
TEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1M
KSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFM
T05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChF
TkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19T
Q1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lU
X1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9S
RVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxF
X1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5B
QkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxF
X1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9T
RVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVF
Q0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0la
SU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVO
QUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9W
SURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5B
QkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlC
T0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMp
ICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFC
TEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9B
VVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9XRUJYUiA9IEVO
QUJMRV9XRUJYUjsKKworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFD
SE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJU
SVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJ
TFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJ
RU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElO
R19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19M
RVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00p
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RB
UktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VM
RU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9D
RVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJM
RV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFf
U1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkg
JChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVW
QUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5B
QkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAk
KEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BV
QkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNU
T1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9R
VUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJD
RV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5T
SU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJP
TFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0Up
ICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFU
SU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01P
REUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVM
TFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVf
V0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNI
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVf
V0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRD
KSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpICQoRU5B
QkxFX1dFQlhSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGRlZGZhMTRkNWE1ZGRkYTg0ZTMzNWJmZDQ4NWU3
NTUwOTdmYWVjNTcuLjY4MDJjYzhjY2IxNWE4NGYxMWQwZDNmMDc3ZmNlOTI3YjY0NDA2OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaApAQCAtMTgwLDYgKzE4MCw3IEBACiAjaWYgKFVTRV9BTkdMRSAmJiAoVVNFX09Q
RU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wpKSkg
JiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxl
IHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAogI2VuZGlmCisKICNl
bmRpZgogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVY
VF9HTCkgJiYgIWRlZmluZWQoVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQpAQCAtMTkwLDMgKzE5MSw0
IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShBQ0NFU1NJQklMSVRZKQogI2RlZmlu
ZSBVU0VfQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTIDEKICNlbmRpZgorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDJlZmNlMGQzZDk0NTFjNTE0MGY3Y2ZiZTYyMjNlMmZmMzkyODdmNTMuLjEy
NzZmY2UxZDdhNGQyZjBlZGJiMjI2YWQxNzczYmI5ZjQ0MjJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC02NCw2ICs2NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdS9XSExTTCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUIgogICAgICIke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL3dlYnNvY2tldHMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2VieHIi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlIgogICAgICIke1dFQkNPUkVfRElSfS9hbmltYXRp
b24iCkBAIC0xNDEsNyArMTQyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVD
VE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL3NxbCIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4
dCIKLSAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdnIiCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3hyIgogICAgICIke1dFQkNPUkVfRElSfS9wbHVnaW5zIgogICAgICIke1dFQkNP
UkVfRElSfS9yZW5kZXJpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRlcmluZy9saW5lIgpA
QCAtMTE3OSw2ICsxMTgwLDQyIEBAIGlmIChFTkFCTEVfR0FNRVBBRCkKICAgICApCiBlbmRpZiAo
KQogCitpZiAoRU5BQkxFX1dFQkdMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKKyAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhS
SW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1dlYlhSUmVuZGVyU3RhdGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRy
YW5zZm9ybS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9X
ZWJYUlN5c3RlbS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbAorICAgICAgICBNb2R1bGVzL3dl
YnhyL1dlYlhSVmlld3BvcnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExh
eWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRs
CisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
WFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkhhbmRl
ZG5lc3MuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbAorICAgICAgICBNb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2
ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCisgICAgICAg
IE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9Y
UlRhcmdldFJheU1vZGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3Rh
dGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5pZGwKKyAgICAp
CitlbmRpZiAoKQorCiBzZXQoV2ViQ29yZV9JRExfRklMRVMKICAgICAke1dlYkNvcmVfTk9OX1NW
R19JRExfRklMRVN9CiAgICAgJHtXZWJDb3JlX1NWR19JRExfRklMRVN9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLmZkMGM5OWE0YzJkNzM1
ZmMxMTBlMWI1ZTdmNDcyZmQ1ZDFiNWFiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MTQsNCArNDE0LDYg
QEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBM
RV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJ
Q0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FW
Rl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xM
X1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJ
TkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRB
Q1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVS
QUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNU
SU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RP
Q09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAk
KEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01F
RElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NB
TVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJM
RV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09S
S19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9V
Q0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChF
TkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJW
RVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xP
QURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9C
QU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVD
T05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktF
UikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01F
U1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZF
Ul9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFD
VElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFC
TEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9XRUJYUiA9IEVOQUJMRV9XRUJYUjsK
KworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUp
ICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkg
JChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChF
TkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5B
QkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5B
QkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5B
QkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1Mp
ICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVS
SU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FN
RVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVU
SU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1Jf
QUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVO
QUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FD
WV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChF
TkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJD
RSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVO
QUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhU
TUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5E
QUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAk
KEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9X
X1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxF
X1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFC
TEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChF
TkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFC
TEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxF
X1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQo
RU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChF
TkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tF
WUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9O
UykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVO
QUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9X
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX1dFQlhSKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRkOWVkYWYxYTY2YjZkYWQ5NTcxNTBh
YmM2NDlkM2VlZDIxZjc2NDEuLjJlMmNhNDhmZTEwNjg1MTFlYTQ4MWMxZWUxZDllZjNkMDVjOGRk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNjQsNiArNjQsNyBAQCBWUEFU
SCA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViZ3B1IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cyBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxp
dHkgXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKICAgICAkKFdlYkNvcmUpL2JpbmRpbmdz
L2pzIFwKQEAgLTQ2MCw2ICs0NjEsMzcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJncHUvV29ya2VyTmF2aWdhdG9yR1BVLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4
ci9YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWUu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFj
ay5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlQXJyYXkuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJQb3NlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSUmVuZGVyU3RhdGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIv
WFJSZW5kZXJTdGF0ZUluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJS
aWdpZFRyYW5zZm9ybS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSU3BhY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VieHIvWFJTeXN0ZW0uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJUYXJn
ZXRSYXlNb2RlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlldy5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlZpZXdlclBvc2UuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJWaWV3cG9ydC5pZGwgXAorICAgICQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
eHIvWFJXZWJHTExheWVySW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Um9sZS5pZGwgXAogICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eS9Bcmlh
QXR0cmlidXRlcy5pZGwgXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0FuaW1hdGFibGUuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2Vi
WFIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDZhNGM1ZDc4Mzg5MDA0NWMxM2I3MTlkMzlmYjFkMmJmMjM4MTI1NwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2Vi
WFIuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk5hdmlnYXRvcldlYlhSLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dlYlhSU3lzdGVtJiBOYXZpZ2F0b3JXZWJYUjo6eHIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTmF2aWdhdG9yJiBuYXZpZ2F0
b3JPYmplY3QpCit7CisgICAgYXV0byYgbmF2aWdhdG9yID0gTmF2aWdhdG9yV2ViWFI6OmZyb20o
bmF2aWdhdG9yT2JqZWN0KTsKKyAgICBpZiAoIW5hdmlnYXRvci5tX3hyKQorICAgICAgICBuYXZp
Z2F0b3IubV94ciA9IFdlYlhSU3lzdGVtOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CisgICAgcmV0dXJuICpuYXZpZ2F0b3IubV94cjsKK30KKworTmF2aWdhdG9yV2ViWFImIE5hdmln
YXRvcldlYlhSOjpmcm9tKE5hdmlnYXRvciYgbmF2aWdhdG9yKQoreworICAgIGF1dG8qIHN1cHBs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JXZWJYUio+KFN1cHBsZW1lbnQ8TmF2aWdhdG9y
Pjo6ZnJvbSgmbmF2aWdhdG9yLCAiTmF2aWdhdG9yV2ViWFIiKSk7CisgICAgaWYgKCFzdXBwbGVt
ZW50KSB7CisgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IG1ha2VVbmlxdWU8TmF2aWdhdG9y
V2ViWFI+KCk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOworICAg
ICAgICBwcm92aWRlVG8oJm5hdmlnYXRvciwgIk5hdmlnYXRvcldlYlhSIiwgV1RGTW92ZShuZXdT
dXBwbGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiAqc3VwcGxlbWVudDsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMzRlNGU1
OWYzOWM4OWRiMmE5MmE0MTYwYjg4MDNlZTA3ZjQyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5hdmlnYXRvcjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitjbGFzcyBXZWJYUlN5c3RlbTsKKworY2xhc3MgTmF2aWdhdG9yV2ViWFIgZmlu
YWwgOiBwdWJsaWMgU3VwcGxlbWVudDxOYXZpZ2F0b3I+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViWFJTeXN0ZW0mIHhyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBOYXZpZ2F0b3ImKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgTmF2aWdh
dG9yV2ViWFImIGZyb20oTmF2aWdhdG9yJik7CisKKyAgICBSZWZQdHI8V2ViWFJTeXN0ZW0+IG1f
eHI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldl
YlhSLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ5YmJmNWRkMTM5OTQzNGEzYzYzNjZkNTBkZWYwNjc1MzZlOGQxM2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldl
YlhSLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIHBhcnRpYWwgaW50ZXJmYWNl
IE5hdmlnYXRvciB7CisgICAgW1NlY3VyZUNvbnRleHQsIFNhbWVPYmplY3QsIENhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlN5c3RlbSB4cjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiZGVkYTM1MjMwZWI3MzBkN2U1
NmJkZTViZDUyYWEyYjMyNjFmM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NvbnN0IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+JiBXZWJYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZTo6Ym91bmRzR2VvbWV0cnkoKSBjb25zdAoreworICAgIHJldHVy
biBtX2JvdW5kc0dlb21ldHJ5OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIzYjc0ZjNl
MmFkNDM3ODVjZWUwMzZkYjhlMzJhZTYyZDlkNDhkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2Vi
WFJSZWZlcmVuY2VTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRE9NUG9pbnRSZWFkT25seTsKKworY2xhc3MgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UgOiBwdWJsaWMgV2ViWFJSZWZlcmVuY2VTcGFjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8RE9N
UG9pbnRSZWFkT25seT4+JiBib3VuZHNHZW9tZXRyeSgpIGNvbnN0OworCitwcml2YXRlOgorICAg
IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+IG1fYm91bmRzR2VvbWV0cnk7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1Yjg4MzM3NDIzZDA2YWE5ZmE0ZDU1NDFiNmM1MTA0
ZjBlNDdlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdF
QlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW50ZXJm
YWNlTmFtZT1YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZQorXSBpbnRlcmZhY2UgV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UgOiBXZWJYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgRnJvemVuQXJyYXk8RE9NUG9pbnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTM1ZGMxMjdjOWQwN2E3YzhkMjM4NDE1NDU4N2Q1MTM1ODg3YWUxYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5jcHAKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
WFJGcmFtZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTZXNzaW9u
LmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3ZXJQb3NlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoV2ViWFJGcmFtZSk7CisKK1JlZjxXZWJYUkZyYW1lPiBXZWJYUkZyYW1lOjpjcmVh
dGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZXNzaW9uKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlhSRnJhbWUoV1RGTW92ZShzZXNzaW9uKSkpOworfQorCitXZWJYUkZyYW1lOjpXZWJY
UkZyYW1lKFJlZjxXZWJYUlNlc3Npb24+JiYgc2Vzc2lvbikKKyAgICA6IG1fc2Vzc2lvbihXVEZN
b3ZlKHNlc3Npb24pKQoreworfQorCitXZWJYUkZyYW1lOjp+V2ViWFJGcmFtZSgpID0gZGVmYXVs
dDsKKworY29uc3QgV2ViWFJTZXNzaW9uJiBXZWJYUkZyYW1lOjpzZXNzaW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zZXNzaW9uOworfQorCitSZWZQdHI8V2ViWFJWaWV3ZXJQb3NlPiBXZWJY
UkZyYW1lOjpnZXRWaWV3ZXJQb3NlKGNvbnN0IFdlYlhSUmVmZXJlbmNlU3BhY2UmKQoreworICAg
IHJldHVybiB7IH07Cit9CisKK1JlZlB0cjxXZWJYUlBvc2U+IFdlYlhSRnJhbWU6OmdldFBvc2Uo
Y29uc3QgV2ViWFJTcGFjZSYsIGNvbnN0IFdlYlhSU3BhY2UmKQoreworICAgIHJldHVybiB7IH07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA4
YTY3NjRmMGQyYzVhZTYxZTRkNjU4YzI4MjUwNTc5ZmU1YjYyNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oCkBAIC0wLDAgKzEsNjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSUG9zZTsKK2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2U7
CitjbGFzcyBXZWJYUlNlc3Npb247CitjbGFzcyBXZWJYUlNwYWNlOworY2xhc3MgV2ViWFJWaWV3
ZXJQb3NlOworCitjbGFzcyBXZWJYUkZyYW1lIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJGcmFt
ZT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJGcmFtZSk7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxXZWJYUkZyYW1lPiBjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJik7Cisg
ICAgfldlYlhSRnJhbWUoKTsKKworICAgIGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNv
bnN0OworCisgICAgUmVmUHRyPFdlYlhSVmlld2VyUG9zZT4gZ2V0Vmlld2VyUG9zZShjb25zdCBX
ZWJYUlJlZmVyZW5jZVNwYWNlJik7CisgICAgUmVmUHRyPFdlYlhSUG9zZT4gZ2V0UG9zZShjb25z
dCBXZWJYUlNwYWNlJiwgY29uc3QgV2ViWFJTcGFjZSYpOworCitwcml2YXRlOgorICAgIFdlYlhS
RnJhbWUoUmVmPFdlYlhSU2Vzc2lvbj4mJik7CisKKyAgICBSZWY8V2ViWFJTZXNzaW9uPiBtX3Nl
c3Npb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJh
bWUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMWZjZjNjZmU0ZDljNzVmZDdmNDY4ZTQ5N2RiOGU4MDA3YjhhZGYyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbApA
QCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhw
b3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZh
Y2VOYW1lPVhSRnJhbWUKK10gaW50ZXJmYWNlIFdlYlhSRnJhbWUgeworICAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTZXNzaW9uIHNlc3Npb247CisKKyAgICBXZWJYUlZp
ZXdlclBvc2U/IGdldFZpZXdlclBvc2UoV2ViWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFj
ZSk7CisgICAgV2ViWFJQb3NlPyBnZXRQb3NlKFdlYlhSU3BhY2Ugc3BhY2UsIFdlYlhSU3BhY2Ug
YmFzZVNwYWNlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSSW5wdXRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UklucHV0U291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzA3Njc1MTE5OGRiYmMzNzZjYjk3MTliOGE4
N2IxMmM2MjAxOGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUklucHV0U291cmNlLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlLmgiCisKKyNp
ZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoV2ViWFJJbnB1dFNvdXJjZSk7CisKK1JlZjxXZWJYUklucHV0U291
cmNlPiBXZWJYUklucHV0U291cmNlOjpjcmVhdGUoUmVmPFdlYlhSU3BhY2U+JiYgdGFyZ2V0UmF5
U3BhY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJJbnB1dFNvdXJjZShXVEZN
b3ZlKHRhcmdldFJheVNwYWNlKSkpOworfQorCitXZWJYUklucHV0U291cmNlOjpXZWJYUklucHV0
U291cmNlKFJlZjxXZWJYUlNwYWNlPiYmIHRhcmdldFJheVNwYWNlKQorICAgIDogbV9oYW5kZWRu
ZXNzKFhSSGFuZGVkbmVzczo6Tm9uZSkKKyAgICAsIG1fdGFyZ2V0UmF5TW9kZShYUlRhcmdldFJh
eU1vZGU6OkdhemUpCisgICAgLCBtX3RhcmdldFJheVNwYWNlKFdURk1vdmUodGFyZ2V0UmF5U3Bh
Y2UpKQoreworfQorCitXZWJYUklucHV0U291cmNlOjp+V2ViWFJJbnB1dFNvdXJjZSgpID0gZGVm
YXVsdDsKKworWFJIYW5kZWRuZXNzIFdlYlhSSW5wdXRTb3VyY2U6OmhhbmRlZG5lc3MoKSBjb25z
dAoreworICAgIHJldHVybiBtX2hhbmRlZG5lc3M7Cit9CisKK1hSVGFyZ2V0UmF5TW9kZSBXZWJY
UklucHV0U291cmNlOjp0YXJnZXRSYXlNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90YXJn
ZXRSYXlNb2RlOworfQorCitjb25zdCBXZWJYUlNwYWNlJiBXZWJYUklucHV0U291cmNlOjp0YXJn
ZXRSYXlTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5U3BhY2U7Cit9CisK
K1JlZlB0cjxXZWJYUlNwYWNlPiBXZWJYUklucHV0U291cmNlOjpncmlwU3BhY2UoKSBjb25zdAor
eworICAgIHJldHVybiB7IH07Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBXZWJYUklucHV0
U291cmNlOjpwcm9maWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvZmlsZXM7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjhjMjlhYjFjZGI5MDZkYmUxNGJiOTQ5MmFiMmZkODhiNDFkNDExMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5oCkBA
IC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNsdWRlICJYUlRhcmdldFJh
eU1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlNwYWNlOworCitjbGFzcyBXZWJY
UklucHV0U291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJJbnB1dFNvdXJjZT4geworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJJbnB1dFNvdXJjZSk7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxXZWJYUklucHV0U291cmNlPiBjcmVhdGUoUmVmPFdlYlhSU3BhY2U+JiYpOwor
ICAgIH5XZWJYUklucHV0U291cmNlKCk7CisKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzcygp
IGNvbnN0OworICAgIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKCkgY29uc3Q7CisgICAg
Y29uc3QgV2ViWFJTcGFjZSYgdGFyZ2V0UmF5U3BhY2UoKSBjb25zdDsKKyAgICBSZWZQdHI8V2Vi
WFJTcGFjZT4gZ3JpcFNwYWNlKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBy
b2ZpbGVzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJJbnB1dFNvdXJjZShSZWY8V2Vi
WFJTcGFjZT4mJik7CisKKyAgICBYUkhhbmRlZG5lc3MgbV9oYW5kZWRuZXNzOworICAgIFhSVGFy
Z2V0UmF5TW9kZSBtX3RhcmdldFJheU1vZGU7CisgICAgUmVmPFdlYlhSU3BhY2U+IG1fdGFyZ2V0
UmF5U3BhY2U7CisgICAgVmVjdG9yPFN0cmluZz4gbV9wcm9maWxlczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0
NTlmM2ZlNDcwNzUyMTEzN2JmNTNmMWEzNDRlZGRkOThlYmQzNjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2Vk
PVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5h
bWU9WFJJbnB1dFNvdXJjZQorXSBpbnRlcmZhY2UgV2ViWFJJbnB1dFNvdXJjZSB7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSA7CisgICAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNwYWNlIHRhcmdldFJheVNwYWNlOworICAgIFtTYW1l
T2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTcGFjZT8gZ3JpcFNwYWNlIDsKKyAgICBb
U2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gcHJv
ZmlsZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UklucHV0U291cmNlQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UklucHV0U291cmNlQXJyYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0YzA4NTUzMmJjZDlhYWMyNzM4MDkw
YmZhM2ZkZGZlYTQzMzU1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJj
ZUFycmF5LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChXZWJYUklucHV0U291cmNlQXJyYXkpOworCit1bnNpZ25lZCBXZWJYUklucHV0U291
cmNlQXJyYXk6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1dlYlhSSW5w
dXRTb3VyY2UqIFdlYlhSSW5wdXRTb3VyY2VBcnJheTo6aXRlbSh1bnNpZ25lZCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDIxZjAyOWU2NGNiMDhh
MmJiOWI2YTY1Njg1ZGEwZDU5ODdkMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaApAQCAtMCwwICsxLDQ2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJJbnB1dFNvdXJjZTsKKworY2xhc3MgV2Vi
WFJJbnB1dFNvdXJjZUFycmF5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJJbnB1dFNvdXJjZUFy
cmF5PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUklucHV0U291cmNlQXJyYXkp
OworcHVibGljOgorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAgIFdlYlhSSW5wdXRT
b3VyY2UqIGl0ZW0odW5zaWduZWQpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYWQ4
NGFjMDU1ZmU2MDUxMDE5YWU3Yzc3MmMwNDJjOWUwMmM3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9z
ZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNl
TmFtZT1YUklucHV0U291cmNlQXJyYXkKK10gaW50ZXJmYWNlIFdlYlhSSW5wdXRTb3VyY2VBcnJh
eSB7CisgICAgaXRlcmFibGU8V2ViWFJJbnB1dFNvdXJjZT47CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBXZWJYUklucHV0U291cmNlKHVu
c2lnbmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJQb3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJQb3NlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzVmODBhNTQ0NTVjYmU4ZmNiMDcyZDU0N2IzMTk2YTk4
ODc4NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlBvc2UuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlhSUG9zZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisj
aW5jbHVkZSAiV2ViWFJSaWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFdlYlhSUG9zZSk7CisKK1JlZjxXZWJYUlBvc2U+IFdlYlhSUG9zZTo6Y3JlYXRlKCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUlBvc2UpOworfQorCitXZWJYUlBvc2U6
OldlYlhSUG9zZSgpCisgICAgOiBtX3RyYW5zZm9ybShXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVh
dGUoKSkKK3sKK30KKworV2ViWFJQb3NlOjp+V2ViWFJQb3NlKCkgPSBkZWZhdWx0OworCitjb25z
dCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBXZWJYUlBvc2U6OnRyYW5zZm9ybSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIFdlYlhSUG9zZTo6ZW11bGF0ZWRQb3Np
dGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW11bGF0ZWRQb3NpdGlvbjsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5MTlkMjRjMzk1M2Fh
MzlhMmM0ODk0YmM3Y2NlNWMyOWMxN2U2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlJpZ2lkVHJhbnNmb3Jt
OworCitjbGFzcyBXZWJYUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlBvc2U+IHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSUG9zZSk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxXZWJYUlBvc2U+IGNyZWF0ZSgpOworICAgIH5XZWJYUlBvc2UoKTsKKworICAgIGNvbnN0
IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworICAgIGJvb2wgZW11bGF0
ZWRQb3NpdGlvbigpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgV2ViWFJQb3NlKCk7CisKKyAg
ICBSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07CisgICAgYm9vbCBtX2VtdWxh
dGVkUG9zaXRpb24geyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlBvc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGU5ZGFkYzhlYTBhZjMxNTE4Njk0MTkzYjkyNDk2NDQ3
ODgwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSUG9zZS5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgSW50ZXJmYWNlTmFtZT1YUlBvc2UKK10gaW50ZXJmYWNlIFdlYlhSUG9zZSB7CisgICAg
W1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHRyYW5z
Zm9ybTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVu
Y2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzM2JmNzA4Y2M0MjdjODE5MDZiMDNlNThlY2Q5MjhhMzBm
ZjBjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSUmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2UuaCIKKworI2lm
IEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJYUlJlZmVyZW5jZVNw
YWNlOjpXZWJYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
CisgICAgOiBXZWJYUlNwYWNlKGNvbnRleHQpCit7Cit9CisKK1dlYlhSUmVmZXJlbmNlU3BhY2U6
On5XZWJYUlJlZmVyZW5jZVNwYWNlKCkgPSBkZWZhdWx0OworCitSZWY8V2ViWFJSZWZlcmVuY2VT
cGFjZT4gV2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3Qg
V2ViWFJSaWdpZFRyYW5zZm9ybSYpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJS
ZWZlcmVuY2VTcGFjZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjZiYjQ4Y2JmNjkwMzhmZWEyYmQzMTQ4MjYzOTZiOTNkMjEzNTNjZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJSaWdpZFRyYW5zZm9ybTsKKwor
Y2xhc3MgV2ViWFJSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBXZWJYUlNwYWNlIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5XZWJYUlJlZmVyZW5jZVNwYWNlKCk7CisKKyAgICBSZWY8V2ViWFJSZWZl
cmVuY2VTcGFjZT4gZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2ViWFJSaWdpZFRyYW5z
Zm9ybSYpOworCitwcml2YXRlOgorICAgIFdlYlhSUmVmZXJlbmNlU3BhY2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlJlZmVyZW5jZVNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJSZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzNTA3ZjQ0NWE1MmZlMmUxNzE5NjZm
NTA3M2JjMTNiNDlmYzUzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1X
RUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEpTR2Vu
ZXJhdGVUb0pTT2JqZWN0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBJbnRl
cmZhY2VOYW1lPVhSUmVmZXJlbmNlU3BhY2UKK10gaW50ZXJmYWNlIFdlYlhSUmVmZXJlbmNlU3Bh
Y2UgOiBXZWJYUlNwYWNlIHsKKyAgICBbTmV3T2JqZWN0XSBXZWJYUlJlZmVyZW5jZVNwYWNlIGdl
dE9mZnNldFJlZmVyZW5jZVNwYWNlKFdlYlhSUmlnaWRUcmFuc2Zvcm0gb3JpZ2luT2Zmc2V0KTsK
KworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXNldDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
Njc4OWY4MTkyNzFlOTE1NjUyNjlkYTNmM2I5NjFkMzNkOTk3NmFlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcApAQCAt
MCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJYUlJlbmRlclN0YXRlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJX
ZWJYUldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlSW5pdC5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2Vi
WFJSZW5kZXJTdGF0ZSk7CisKK1JlZjxXZWJYUlJlbmRlclN0YXRlPiBXZWJYUlJlbmRlclN0YXRl
OjpjcmVhdGUoY29uc3QgV2ViWFJTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIC8vIFdoZW4gYW4g
WFJSZW5kZXJTdGF0ZSBvYmplY3QgaXMgY3JlYXRlZCBmb3IgYW4gWFJTZXNzaW9uIHNlc3Npb24s
IHRoZSB1c2VyIGFnZW50IE1VU1QgaW5pdGlhbGl6ZSB0aGUgcmVuZGVyIHN0YXRlIGJ5IHJ1bm5p
bmcgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyAgIDEuIExldCBzdGF0ZSBiZSB0aGUgbmV3
bHkgY3JlYXRlZCBYUlJlbmRlclN0YXRlIG9iamVjdC4KKworICAgIC8vICAgMi4gSW5pdGlhbGl6
ZSBzdGF0ZeKAmXMgZGVwdGhOZWFyIHRvIDAuMS4KKyAgICAvLyAgIDMuIEluaXRpYWxpemUgc3Rh
dGXigJlzIGRlcHRoRmFyIHRvIDEwMDAuMC4KKyAgICAvLyAoRGVmYXVsdC1pbml0aWFsaXplZCBp
biB0aGUgWFJSZW5kZXJTdGF0ZSBjbGFzcyBkZWZpbml0aW9uLikKKworICAgIC8vICAgNC4gSWYg
c2Vzc2lvbiBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5s
aW5lVmVydGljYWxGaWVsZE9mVmlldyB0byBudWxsLgorICAgIC8vICAgNS4gRWxzZSBpbml0aWFs
aXplIHN0YXRl4oCZcyBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHRvIFBJICogMC41LgorICAg
IC8vIEZJWE1FOiAiaW1tZXJzaXZlIHNlc3Npb24iIHN1cHBvcnQKKyAgICBVTlVTRURfUEFSQU0o
c2Vzc2lvbik7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3
IHsgcGlPdmVyVHdvRG91YmxlIH07CisKKyAgICAvLyAgIDYuIEluaXRpYWxpemUgc3RhdGXigJlz
IGJhc2VMYXllciB0byBudWxsLgorICAgIC8vICAgNy4gSW5pdGlhbGl6ZSBzdGF0ZeKAmXMgb3V0
cHV0Q29udGV4dCB0byBudWxsLgorICAgIC8vIChJbml0aWFsaXplZCB0byBudWxsIGJ5IGRlZmF1
bHQuKQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJSZW5kZXJTdGF0ZShXVEZNb3Zl
KGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcpKSk7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6Oldl
YlhSUmVuZGVyU3RhdGUoT3B0aW9uYWw8ZG91YmxlPiYmIGlubGluZVZlcnRpY2FsRmllbGRPZlZp
ZXcpCisgICAgOiBtX2lubGluZVZlcnRpY2FsRmllbGRPZlZpZXcoV1RGTW92ZShpbmxpbmVWZXJ0
aWNhbEZpZWxkT2ZWaWV3KSkKK3sKK30KKworV2ViWFJSZW5kZXJTdGF0ZTo6V2ViWFJSZW5kZXJT
dGF0ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpCit7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6
On5XZWJYUlJlbmRlclN0YXRlKCkgPSBkZWZhdWx0OworCitkb3VibGUgV2ViWFJSZW5kZXJTdGF0
ZTo6ZGVwdGhOZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXB0aC5uZWFyOworfQorCitk
b3VibGUgV2ViWFJSZW5kZXJTdGF0ZTo6ZGVwdGhGYXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X2RlcHRoLmZhcjsKK30KKworT3B0aW9uYWw8ZG91YmxlPiBXZWJYUlJlbmRlclN0YXRlOjppbmxp
bmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmxpbmVWZXJ0
aWNhbEZpZWxkT2ZWaWV3OworfQorCitSZWZQdHI8V2ViWFJXZWJHTExheWVyPiBXZWJYUlJlbmRl
clN0YXRlOjpiYXNlTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2Jhc2VMYXllcjsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZjI5MmFjMWQ2ODFhNDY5ODc2MDE4MTg5YTg3YTk2ZjFlZGJhYzdkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmgK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViWFJXZWJHTExheWVyOworc3RydWN0IFhSUmVuZGVyU3RhdGVJbml0OworY2xhc3MgV2Vi
WFJTZXNzaW9uOworCitjbGFzcyBXZWJYUlJlbmRlclN0YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViWFJSZW5kZXJTdGF0ZT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJSZW5k
ZXJTdGF0ZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlJlbmRlclN0YXRlPiBjcmVh
dGUoY29uc3QgV2ViWFJTZXNzaW9uJik7CisgICAgfldlYlhSUmVuZGVyU3RhdGUoKTsKKworICAg
IGRvdWJsZSBkZXB0aE5lYXIoKSBjb25zdDsKKyAgICBkb3VibGUgZGVwdGhGYXIoKSBjb25zdDsK
KyAgICBPcHRpb25hbDxkb3VibGU+IGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcoKSBjb25zdDsK
KyAgICBSZWZQdHI8V2ViWFJXZWJHTExheWVyPiBiYXNlTGF5ZXIoKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBXZWJYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJik7CisgICAgV2ViWFJS
ZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpOworCisgICAgc3RydWN0IHsKKyAg
ICAgICAgZG91YmxlIG5lYXIgeyAwLjEgfTsKKyAgICAgICAgZG91YmxlIGZhciB7IDEwMDAgfTsK
KyAgICB9IG1fZGVwdGg7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBtX2lubGluZVZlcnRpY2FsRmll
bGRPZlZpZXc7CisgICAgUmVmUHRyPFdlYlhSV2ViR0xMYXllcj4gbV9iYXNlTGF5ZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZTFhY2U2NTUyYzM0OWU4NGEyMmEyNTZjZDYwZGMyY2MzY2EwMzM1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRl
LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisg
ICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJ
bnRlcmZhY2VOYW1lPVhSUmVuZGVyU3RhdGUKK10gaW50ZXJmYWNlIFdlYlhSUmVuZGVyU3RhdGUg
eworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhGYXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJs
ZT8gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgV2Vi
WFJXZWJHTExheWVyPyBiYXNlTGF5ZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNmZGNmYjkw
ZTcyNWIxNzk3ODAwNTRiYTZlN2JhNTQ2NGZmOTg5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKQEAgLTAsMCAr
MSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlhSUmlnaWRUcmFuc2Zvcm0uaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkRP
TVBvaW50UmVhZE9ubHkuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoV2ViWFJSaWdpZFRyYW5zZm9ybSk7CisKK1JlZjxXZWJYUlJpZ2lk
VHJhbnNmb3JtPiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlhSUmlnaWRUcmFuc2Zvcm0oeyB9LCB7IH0pKTsKK30KKworRXhjZXB0
aW9uT3I8UmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+PiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVh
dGUoY29uc3QgRE9NUG9pbnRJbml0JiBwb3NpdGlvbiwgY29uc3QgRE9NUG9pbnRJbml0JiBvcmll
bnRhdGlvbikKK3sKKyAgICAvLyBUaGUgWFJSaWdpZFRyYW5zZm9ybShwb3NpdGlvbiwgb3JpZW50
YXRpb24pIGNvbnN0cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzIHdoZW4g
aW52b2tlZDoKKyAgICAvLyAgIDEuIExldCB0cmFuc2Zvcm0gYmUgYSBuZXcgWFJSaWdpZFRyYW5z
Zm9ybS4KKworICAgIC8vICAgMi4gSWYgcG9zaXRpb24gaXMgbm90IGEgRE9NUG9pbnRJbml0IGlu
aXRpYWxpemUgdHJhbnNmb3Jt4oCZcyBwb3NpdGlvbiB0byB7IHg6IDAuMCwgeTogMC4wLCB6OiAw
LjAsIHc6IDEuMCB9LgorICAgIC8vICAgMy4gSWYgcG9zaXRpb27igJlzIHcgdmFsdWUgaXMgbm90
IDEuMCwgdGhyb3cgYSBUeXBlRXJyb3IuCisgICAgLy8gICA0LiBFbHNlIGluaXRpYWxpemUgdHJh
bnNmb3Jt4oCZcyBwb3NpdGlvbuKAmXMgeCB2YWx1ZSB0byBwb3NpdGlvbuKAmXMgeCBkaWN0aW9u
YXJ5IG1lbWJlciwgeSB2YWx1ZSB0byBwb3NpdGlvbuKAmXMgeSBkaWN0aW9uYXJ5IG1lbWJlciwg
eiB2YWx1ZSB0byBwb3NpdGlvbuKAmXMgeiBkaWN0aW9uYXJ5IG1lbWJlciBhbmQgdyB0byAxLjAu
CisgICAgaWYgKHBvc2l0aW9uLncgIT0gMS4wKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yIH07CisgICAgRE9NUG9pbnRJbml0IHBvc2l0aW9uSW5pdCB7IHBvc2l0aW9uLngs
IHBvc2l0aW9uLnksIHBvc2l0aW9uLnosIDEgfTsKKworICAgIC8vICAgNS4gSWYgb3JpZW50YXRp
b24gaXMgbm90IGEgRE9NUG9pbnRJbml0IGluaXRpYWxpemUgdHJhbnNmb3Jt4oCZcyBvcmllbnRh
dGlvbiB0byB7IHg6IDAuMCwgeTogMC4wLCB6OiAwLjAsIHc6IDEuMCB9LgorICAgIC8vICAgNi4g
RWxzZSBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb27igJlzIHggdmFsdWUgdG8g
b3JpZW50YXRpb27igJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFsdWUgdG8gb3JpZW50YXRp
b27igJlzIHkgZGljdGlvbmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gb3JpZW50YXRpb27igJlzIHog
ZGljdGlvbmFyeSBtZW1iZXIgYW5kIHcgdmFsdWUgdG8gb3JpZW50YXRpb27igJlzIHcgZGljdGlv
bmFyeSBtZW1iZXIuCisgICAgLy8gICA3LiBOb3JtYWxpemUgeCwgeSwgeiwgYW5kIHcgY29tcG9u
ZW50cyBvZiB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9uLgorICAgIERPTVBvaW50SW5pdCBvcmll
bnRhdGlvbkluaXQgeyBvcmllbnRhdGlvbi54LCBvcmllbnRhdGlvbi55LCBvcmllbnRhdGlvbi56
LCBvcmllbnRhdGlvbi53IH07CisgICAgeworICAgICAgICBkb3VibGUgbGVuZ3RoID0gc3RkOjpz
cXJ0KG9yaWVudGF0aW9uSW5pdC54ICogb3JpZW50YXRpb25Jbml0LnggKyBvcmllbnRhdGlvbklu
aXQueSAqIG9yaWVudGF0aW9uSW5pdC55CisgICAgICAgICAgICArIG9yaWVudGF0aW9uSW5pdC56
ICogb3JpZW50YXRpb25Jbml0LnogKyBvcmllbnRhdGlvbkluaXQudyAqIG9yaWVudGF0aW9uSW5p
dC53KTsKKyAgICAgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbDxkb3VibGU+KGxlbmd0
aCwgMCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fTsKKworICAgICAgICBvcmllbnRhdGlvbkluaXQ9IHsKKyAgICAgICAgICAgIG9yaWVudGF0aW9u
SW5pdC54IC8gbGVuZ3RoLCBvcmllbnRhdGlvbkluaXQueSAvIGxlbmd0aCwKKyAgICAgICAgICAg
IG9yaWVudGF0aW9uSW5pdC56IC8gbGVuZ3RoLCBvcmllbnRhdGlvbkluaXQudyAvIGxlbmd0aCwK
KyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvLyAgIDguIFJldHVybiB0cmFuc2Zvcm0uCisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJSaWdpZFRyYW5zZm9ybShwb3NpdGlvbkluaXQsIG9y
aWVudGF0aW9uSW5pdCkpOworfQorCitXZWJYUlJpZ2lkVHJhbnNmb3JtOjpXZWJYUlJpZ2lkVHJh
bnNmb3JtKGNvbnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBvaW50SW5pdCYg
b3JpZW50YXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKERPTVBvaW50UmVhZE9ubHk6OmNyZWF0ZShw
b3NpdGlvbikpCisgICAgLCBtX29yaWVudGF0aW9uKERPTVBvaW50UmVhZE9ubHk6OmNyZWF0ZShv
cmllbnRhdGlvbikpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCBwcm9wZXJseSwgcGVyIHNw
ZWMuCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4OworICAgIGF1dG8gbWF0cml4RGF0
YSA9IG1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheSgpOworICAgIG1fbWF0cml4ID0gRmxv
YXQzMkFycmF5OjpjcmVhdGUobWF0cml4RGF0YS5kYXRhKCksIG1hdHJpeERhdGEuc2l6ZSgpKTsK
K30KKworV2ViWFJSaWdpZFRyYW5zZm9ybTo6fldlYlhSUmlnaWRUcmFuc2Zvcm0oKSA9IGRlZmF1
bHQ7CisKK2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFdlYlhSUmlnaWRUcmFuc2Zvcm06OnBvc2l0
aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wb3NpdGlvbjsKK30KKworY29uc3QgRE9NUG9p
bnRSZWFkT25seSYgV2ViWFJSaWdpZFRyYW5zZm9ybTo6b3JpZW50YXRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX29yaWVudGF0aW9uOworfQorCitSZWY8RmxvYXQzMkFycmF5PiAgV2ViWFJS
aWdpZFRyYW5zZm9ybTo6bWF0cml4KCkgY29uc3QKK3sKKyAgICBhdXRvIG1hdHJpeCA9IEZsb2F0
MzJBcnJheTo6Y3JlYXRlKDE2KTsKKyAgICBtYXRyaXgtPnplcm9GaWxsKCk7CisgICAgcmV0dXJu
IG1hdHJpeDsKK30KKworUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IFdlYlhSUmlnaWRUcmFuc2Zv
cm06OmludmVyc2UoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJvcGVybHku
CisgICAgcmV0dXJuIFdlYlhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmN2NjMWU3YWI3MThkMDRmMTIwMTY4ODQzYmJiNDZmMWY4NDU0MTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRE9N
UG9pbnRJbml0OworY2xhc3MgRE9NUG9pbnRSZWFkT25seTsKKworY2xhc3MgV2ViWFJSaWdpZFRy
YW5zZm9ybSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSUmlnaWRUcmFuc2Zvcm0pOworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gY3JlYXRlKCk7CisgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPj4gY3JlYXRlKGNvbnN0IERPTVBvaW50
SW5pdCYsIGNvbnN0IERPTVBvaW50SW5pdCYpOworICAgIH5XZWJYUlJpZ2lkVHJhbnNmb3JtKCk7
CisKKyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBwb3NpdGlvbigpIGNvbnN0OworICAgIGNv
bnN0IERPTVBvaW50UmVhZE9ubHkmIG9yaWVudGF0aW9uKCkgY29uc3Q7CisgICAgUmVmPEZsb2F0
MzJBcnJheT4gbWF0cml4KCkgY29uc3Q7CisgICAgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IGlu
dmVyc2UoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJYUlJpZ2lkVHJhbnNmb3JtKGNvbnN0
IERPTVBvaW50SW5pdCYsIGNvbnN0IERPTVBvaW50SW5pdCYpOworCisgICAgUmVmPERPTVBvaW50
UmVhZE9ubHk+IG1fcG9zaXRpb247CisgICAgUmVmPERPTVBvaW50UmVhZE9ubHk+IG1fb3JpZW50
YXRpb247CisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gbV9tYXRyaXg7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMDBjYWQ3ZjJlMDczMzQxZWU1NjM1M2U3MTA5YmJlMmYxNjgwNTIzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3Jt
LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisg
ICAgRXhwb3NlZD1XaW5kb3csCisgICAgQ29uc3RydWN0b3Iob3B0aW9uYWwgRE9NUG9pbnRJbml0
IHBvc2l0aW9uLCBvcHRpb25hbCBET01Qb2ludEluaXQgb3JpZW50YXRpb24pLAorICAgIENvbnN0
cnVjdG9yTWF5VGhyb3dFeGNlcHRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwK
KyAgICBJbnRlcmZhY2VOYW1lPVhSUmlnaWRUcmFuc2Zvcm0KK10gaW50ZXJmYWNlIFdlYlhSUmln
aWRUcmFuc2Zvcm0geworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9p
bnRSZWFkT25seSBwb3NpdGlvbjsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVBvaW50UmVhZE9ubHkgb3JpZW50YXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZs
b2F0MzJBcnJheSBtYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBX
ZWJYUlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMzU2MmYyZTNmNmM4ZDg4OTQz
YjA5MTM4Zjc2Njg3MDIxNTdhMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgiCisKKyNp
ZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlNl
c3Npb24pOworCitXZWJYUlNlc3Npb246On5XZWJYUlNlc3Npb24oKSA9IGRlZmF1bHQ7CisKK1hS
RW52aXJvbm1lbnRCbGVuZE1vZGUgV2ViWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7Cit9CisKK1hSVmlz
aWJpbGl0eVN0YXRlIFdlYlhSU2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisKK2NvbnN0IFdlYlhSUmVuZGVyU3RhdGUm
IFdlYlhSU2Vzc2lvbjo6cmVuZGVyU3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZW5k
ZXJTdGF0ZTsKK30KKworY29uc3QgV2ViWFJJbnB1dFNvdXJjZUFycmF5JiBXZWJYUlNlc3Npb246
OmlucHV0U291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2lucHV0U291cmNlczsKK30K
Kwordm9pZCBXZWJYUlNlc3Npb246OnVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3Rh
dGVJbml0JikKK3sKK30KKwordm9pZCBXZWJYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VTcGFj
ZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21p
c2UmJikKK3sKK30KKworaW50IFdlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJl
ZjxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJldHVybiAwOworfQorCit2b2lk
IFdlYlhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQoreworfQorCit2b2lkIFdl
YlhSU2Vzc2lvbjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3QgY2hhciogV2ViWFJT
ZXNzaW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlhSU2Vz
c2lvbiI7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhjMjFjYTlhOTM3NGZl
OGRiMTU2NGZlMWE2ODU0MGE5ZTE0NjlmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlQXJyYXkuaCIK
KyNpbmNsdWRlICJXZWJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgor
I2luY2x1ZGUgIlhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCIKKyNpbmNsdWRlICJYUlJlZmVyZW5j
ZVNwYWNlVHlwZS5oIgorI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8
d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrOworY2xhc3MgV2ViWFJSZWZlcmVuY2VTcGFj
ZTsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKKworY2xhc3MgV2ViWFJTZXNzaW9uIGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoV2ViWFJTZXNzaW9uKTsKK3B1YmxpYzoKKyAgICB1c2luZyBSZXF1ZXN0UmVmZXJl
bmNlU3BhY2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJYUlJl
ZmVyZW5jZVNwYWNlPj47CisgICAgdXNpbmcgRW5kUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPjsKKworICAgIHZpcnR1YWwgfldlYlhSU2Vzc2lvbigpOworCisgICAgdXNpbmcgUmVm
Q291bnRlZDxXZWJYUlNlc3Npb24+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJYUlNl
c3Npb24+OjpkZXJlZjsKKworICAgIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1lbnRC
bGVuZE1vZGUoKSBjb25zdDsKKyAgICBYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUo
KSBjb25zdDsKKyAgICBjb25zdCBXZWJYUlJlbmRlclN0YXRlJiByZW5kZXJTdGF0ZSgpIGNvbnN0
OworICAgIGNvbnN0IFdlYlhSSW5wdXRTb3VyY2VBcnJheSYgaW5wdXRTb3VyY2VzKCkgY29uc3Q7
CisKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0Jik7
CisgICAgdm9pZCByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5
cGUmLCBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNlJiYpOworCisgICAgaW50IHJlcXVlc3RB
bmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJik7CisgICAgdm9pZCBj
YW5jZWxBbmltYXRpb25GcmFtZShpbnQgaGFuZGxlKTsKKworICAgIHZvaWQgZW5kKEVuZFByb21p
c2UmJik7CisKKyAgICBib29sIGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmRlZDsgfQorCitw
cm90ZWN0ZWQ6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU2Vzc2lv
bkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVE
T01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dG9wKCkgb3ZlcnJpZGU7CisKKyAgICBYUkVudmlyb25tZW50QmxlbmRNb2RlIG1fZW52aXJvbm1l
bnRCbGVuZE1vZGU7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7Cisg
ICAgUmVmUHRyPFdlYlhSUmVuZGVyU3RhdGU+IG1fcmVuZGVyU3RhdGU7CisgICAgUmVmUHRyPFdl
YlhSSW5wdXRTb3VyY2VBcnJheT4gbV9pbnB1dFNvdXJjZXM7CisgICAgYm9vbCBtX2VuZGVkIHsg
ZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
ZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mOWI0MzA3OWMwNjIwNWYxZWZlODJkNTA2YzQ4YzFlYTA3ZmVkY2ZkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Np
b24uaWRsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgQWN0aXZlRE9NT2JqZWN0
LAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW50ZXJmYWNl
TmFtZT1YUlNlc3Npb24KK10gaW50ZXJmYWNlIFdlYlhSU2Vzc2lvbiA6IEV2ZW50VGFyZ2V0IHsK
KyAgICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRW52aXJvbm1lbnRC
bGVuZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhS
VmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFdlYlhSUmVuZGVyU3RhdGUgcmVuZGVyU3RhdGU7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUklucHV0U291cmNlQXJyYXkgaW5wdXRTb3VyY2Vz
OworCisgICAgLy8gTWV0aG9kcworICAgIHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUob3B0aW9uYWwg
WFJSZW5kZXJTdGF0ZUluaXQgc3RhdGVJbml0KTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFdl
YlhSUmVmZXJlbmNlU3BhY2U+IHJlcXVlc3RSZWZlcmVuY2VTcGFjZShYUlJlZmVyZW5jZVNwYWNl
VHlwZSB0eXBlKTsKKworICAgIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9u
ZyBoYW5kbGUpOworCisgICAgUHJvbWlzZTx2b2lkPiBlbmQoKTsKKworICAgIC8vIEV2ZW50cwor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbnNlbGVjdDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uaW5wdXRzb3VyY2Vz
Y2hhbmdlOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3RzdGFydDsKKyAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb252aXNpYmlsaXR5Y2hhbmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NTVkZmViMDU1OTU3MGNjYzJjOWQ3NmY3
NjM0Yjk3Nzc0ODhkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSU3BhY2UuaCIKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSU3BhY2UpOworCitX
ZWJYUlNwYWNlOjpXZWJYUlNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisg
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKK3sKK30KKworV2ViWFJT
cGFjZTo6fldlYlhSU3BhY2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI0YThhNDBkM2QzNmYwYjhlN2Q2MDIxMDA4YzZmNTFh
ODhhYjEyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJTcGFjZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OworCitjbGFzcyBXZWJYUlNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT4s
IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJTcGFjZSk7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+V2ViWFJTcGFjZSgpOworCisgICAgdXNpbmcgUmVmQ291bnRl
ZDxXZWJYUlNwYWNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT46OmRl
cmVmOworCitwcm90ZWN0ZWQ6CisgICAgV2ViWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKK3ByaXZhdGU6
CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdl
dEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU3BhY2VFdmVudFRhcmdl
dEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBy
ZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmI3OTRmMThiMjMzMTcwNjc2ZDFkNTQ5OWI5YTE3MTE2YWVlN2NiMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKQEAgLTAs
MCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9
V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJTcGFjZQorXSBpbnRlcmZhY2UgV2ViWFJTcGFj
ZSA6IEV2ZW50VGFyZ2V0IHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhYzRkNTI4MDM0NGVhNDM2MTEzODRlMjYxYTVmZmRh
ZjJjMTMxMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSU3lzdGVtLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorCisjaWYgRU5BQkxFKFdFQlhS
KQorCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFdlYlhSU3lzdGVtKTsKKworUmVmPFdlYlhSU3lzdGVtPiBXZWJYUlN5c3RlbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJTeXN0ZW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkp
OworfQorCitXZWJYUlN5c3RlbTo6V2ViWFJTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkKK3sKK30KKworV2ViWFJTeXN0ZW06On5XZWJYUlN5c3RlbSgpID0gZGVm
YXVsdDsKKwordm9pZCBXZWJYUlN5c3RlbTo6aXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1v
ZGUsIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UmJikKK3sKKyAgICAvLyBXaGVuIHRoZSBzdXBw
b3J0c1Nlc3Npb24obW9kZSkgbWV0aG9kIGlzIGludm9rZWQsIGl0IE1VU1QgcmV0dXJuIGEgbmV3
IFByb21pc2UgcHJvbWlzZSBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6
CisgICAgLy8gICAxLiBFbnN1cmUgYW4gWFIgZGV2aWNlIGlzIHNlbGVjdGVkLgorICAgIC8vICAg
Mi4gSWYgdGhlIFhSIGRldmljZSBpcyBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1
cHBvcnRlZEVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8v
ICAgMy4gSWYgdGhlIFhSIGRldmljZSdzIGxpc3Qgb2Ygc3VwcG9ydGVkIG1vZGVzIGRvZXMgbm90
IGNvbnRhaW4gbW9kZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIg
RE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDQuIEVsc2UgcmVz
b2x2ZSBwcm9taXNlLgorfQorCit2b2lkIFdlYlhSU3lzdGVtOjpyZXF1ZXN0U2Vzc2lvbihYUlNl
c3Npb25Nb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYp
Cit7CisgICAgUGxhdGZvcm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbigpOworCisgICAgLy8gV2hl
biB0aGUgcmVxdWVzdFNlc3Npb24obW9kZSkgbWV0aG9kIGlzIGludm9rZWQsIHRoZSB1c2VyIGFn
ZW50IE1VU1QgcmV0dXJuIGEgbmV3IFByb21pc2UgcHJvbWlzZSBhbmQgcnVuIHRoZSBmb2xsb3dp
bmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgLy8gICAxLiBMZXQgaW1tZXJzaXZlIGJlIHRydWUg
aWYgbW9kZSBpcyAiaW1tZXJzaXZlLXZyIiBvciAiaW1tZXJzaXZlLWFyIiwgYW5kIGZhbHNlIG90
aGVyd2lzZS4KKyAgICAvLyAgIDIuIElmIGltbWVyc2l2ZSBpcyB0cnVlOgorICAgIC8vICAgICAx
LiBJZiBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIGlzIHRydWUgb3IgYWN0aXZlIGltbWVyc2l2
ZSBzZXNzaW9uIGlzIG5vdCBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIGFuICJJbnZhbGlkU3Rh
dGVFcnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgICAg
Mi4gRWxzZSBzZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiB0byBiZSB0cnVlLgorICAgIC8v
ICAgMy4gRW5zdXJlIGFuIFhSIGRldmljZSBpcyBzZWxlY3RlZC4KKyAgICAvLyAgIDQuIElmIHRo
ZSBYUiBkZXZpY2UgaXMgbnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBudWxsLgorICAgIC8vICAg
NS4gRWxzZSBpZiB0aGUgWFIgZGV2aWNlJ3MgbGlzdCBvZiBzdXBwb3J0ZWQgbW9kZXMgZG9lcyBu
b3QgY29udGFpbiBtb2RlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9y
IiBET01FeGNlcHRpb24uCisgICAgLy8gICA2LiBFbHNlIElmIGltbWVyc2l2ZSBpcyB0cnVlIGFu
ZCB0aGUgYWxnb3JpdGhtIGlzIG5vdCB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLCByZWpl
Y3QgcHJvbWlzZSB3aXRoIGEgIlNlY3VyaXR5RXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgLy8gICA3LiBJZiBwcm9taXNlIHdhcyByZWplY3RlZCBhbmQgaW1t
ZXJzaXZlIGlzIHRydWUsIHNldCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRvIGZhbHNlLgor
ICAgIC8vICAgOC4gSWYgcHJvbWlzZSB3YXMgcmVqZWN0ZWQsIGFib3J0IHRoZXNlIHN0ZXBzLgor
ICAgIC8vICAgOS4gTGV0IHNlc3Npb24gYmUgYSBuZXcgWFJTZXNzaW9uIG9iamVjdC4KKyAgICAv
LyAgIDEwLiBJbml0aWFsaXplIHRoZSBzZXNzaW9uIHdpdGggc2Vzc2lvbiBhbmQgbW9kZS4KKyAg
ICAvLyAgIDExLiBJZiBpbW1lcnNpdmUgaXMgdHJ1ZSwgc2V0IHRoZSBhY3RpdmUgaW1tZXJzaXZl
IHNlc3Npb24gdG8gc2Vzc2lvbiwgYW5kIHNldCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRv
IGZhbHNlLgorICAgIC8vICAgMTIuIEVsc2UgYXBwZW5kIHNlc3Npb24gdG8gdGhlIGxpc3Qgb2Yg
aW5saW5lIHNlc3Npb25zLgorICAgIC8vICAgMTMuIFJlc29sdmUgcHJvbWlzZSB3aXRoIHNlc3Np
b24uCit9CisKK2NvbnN0IGNoYXIqIFdlYlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gIlhSU3lzdGVtIjsKK30KKwordm9pZCBXZWJYUlN5c3RlbTo6
c3RvcCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
eXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lOWFiMTVkN2FlYTQ0NWQxMzMyZmMyMTJhNDU2ODQ1ZGNlZDljZWUxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCkBA
IC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRh
cmdldC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiWFJT
ZXNzaW9uTW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CitjbGFzcyBXZWJYUlNlc3Npb247CitzdHJ1Y3QgWFJTZXNzaW9uSW5pdDsK
KworY2xhc3MgV2ViWFJTeXN0ZW0gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlN5c3Rl
bT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2Jq
ZWN0IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU3lzdGVtKTsKK3B1YmxpYzoK
KyAgICB1c2luZyBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVk
PElETEJvb2xlYW4+OworICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViWFJTZXNzaW9uPj47CisKKyAgICBzdGF0aWMgUmVm
PFdlYlhSU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1
YWwgfldlYlhSU3lzdGVtKCk7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6
cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+OjpkZXJlZjsKKworICAgIHZv
aWQgaXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUsIElzU2Vzc2lvblN1cHBvcnRlZFBy
b21pc2UmJik7CisgICAgdm9pZCByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlLCBjb25zdCBY
UlNlc3Npb25Jbml0JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYpOworCitwcm90ZWN0ZWQ6Cisg
ICAgV2ViWFJTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZlbnRU
YXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU3lzdGVtRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7
IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKwor
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhNzYw
Y2NhOWQ2ZGYzMzgyNmZkM2UzZGFmODIzMjA1MWYzOTBhMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW50ZXJmYWNlTmFtZT1YUlN5c3RlbQorXSBpbnRl
cmZhY2UgV2ViWFJTeXN0ZW0gOiBFdmVudFRhcmdldCB7CisgICAgLy8gTWV0aG9kcworICAgIFBy
b21pc2U8dm9pZD4gaXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUgbW9kZSk7CisgICAg
W05ld09iamVjdF0gUHJvbWlzZTxXZWJYUlNlc3Npb24+IHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lv
bk1vZGUgbW9kZSwgb3B0aW9uYWwgWFJTZXNzaW9uSW5pdCBvcHRpb25zKTsKKworICAgIC8vIEV2
ZW50cworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kZXZpY2VjaGFuZ2U7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0NDAz
YjcwZGRjMWRjZjk5OGYzMTgzMDFjYTZkMDA1MjNkMGFjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5jcHAKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3
LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlJpZ2lkVHJhbnNmb3Jt
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlZpZXcpOworCitSZWY8V2ViWFJWaWV3PiBX
ZWJYUlZpZXc6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJWaWV3
KTsKK30KKworV2ViWFJWaWV3OjpXZWJYUlZpZXcoKQorICAgIDogbV9leWUoWFJFeWU6OkxlZnQp
CisgICAgLCBtX3Byb2plY3Rpb25NYXRyaXgoRmxvYXQzMkFycmF5OjpjcmVhdGUoMCkpCisgICAg
LCBtX3RyYW5zZm9ybShXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sKK30KKworV2Vi
WFJWaWV3Ojp+V2ViWFJWaWV3KCkgPSBkZWZhdWx0OworCitYUkV5ZSBXZWJYUlZpZXc6OmV5ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZXllOworfQorCitjb25zdCBGbG9hdDMyQXJyYXkmIFdl
YlhSVmlldzo6cHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvamVj
dGlvbk1hdHJpeDsKK30KKworY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgV2ViWFJWaWV3Ojp0
cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM1ODBjNmNmN2I1MjliN2Jl
ZThiOTk4OGJmZWU5NGViZThlMzgyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlhSRXllLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSUmlnaWRUcmFuc2Zv
cm07CisKK2NsYXNzIFdlYlhSVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSVmlldz4gewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJWaWV3KTsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFdlYlhSVmlldz4gY3JlYXRlKCk7CisgICAgfldlYlhSVmlldygpOworCisgICAgWFJF
eWUgZXllKCkgY29uc3Q7CisgICAgY29uc3QgRmxvYXQzMkFycmF5JiBwcm9qZWN0aW9uTWF0cml4
KCkgY29uc3Q7CisgICAgY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3JtKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJWaWV3KCk7CisKKyAgICBYUkV5ZSBtX2V5ZTsKKyAg
ICBSZWY8RmxvYXQzMkFycmF5PiBtX3Byb2plY3Rpb25NYXRyaXg7CisgICAgUmVmPFdlYlhSUmln
aWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlZpZXcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNWY0Mjk4MTQ2NjIxNzMyMTRjNDdkNmQ1YzE0MmUz
NThlMjE5MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSVmlldy5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVD
b250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUlZpZXcKK10gaW50ZXJmYWNlIFdlYlhSVmlldyB7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRXllIGV5ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RmxvYXQzMkFycmF5IHByb2plY3Rpb25NYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjA2M2M5NWYzNjQzYWRhYjBhMjgxZGE4OGIzY2JhZTY1YTc5N2IwOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcApAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJYUlZpZXdlclBvc2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZWY8V2ViWFJWaWV3ZXJQb3NlPiBXZWJYUlZpZXdlclBvc2U6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJWaWV3ZXJQb3NlKTsKK30KKworV2Vi
WFJWaWV3ZXJQb3NlOjpXZWJYUlZpZXdlclBvc2UoKSA9IGRlZmF1bHQ7CitXZWJYUlZpZXdlclBv
c2U6On5XZWJYUlZpZXdlclBvc2UoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFZlY3RvcjxSZWY8V2Vi
WFJWaWV3Pj4mIFdlYlhSVmlld2VyUG9zZTo6dmlld3MoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ZpZXdzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmll
d2VyUG9zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2Uu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNGVkMjViMTBjMjUzMTlhNmU5MjE4NTI4MDY0ZTUxYzhkNGQ4ZjIwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdl
clBvc2UuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJQb3NlLmgiCisjaW5jbHVkZSAiV2Vi
WFJWaWV3LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlZpZXdlclBvc2UgOiBwdWJsaWMg
V2ViWFJQb3NlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlhSVmlld2VyUG9zZT4gY3Jl
YXRlKCk7CisgICAgfldlYlhSVmlld2VyUG9zZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxX
ZWJYUlZpZXc+PiYgdmlld3MoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJYUlZpZXdlclBv
c2UoKTsKKworICAgIFZlY3RvcjxSZWY8V2ViWFJWaWV3Pj4gbV92aWV3czsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MWJlYjJjMDg2Zjg5YmZhZmRmNWUwYmYxZjk1YzBmNDhjNjA3NjEzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaWRsCkBAIC0w
LDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2Vk
PVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5h
bWU9WFJWaWV3ZXJQb3NlCitdIGludGVyZmFjZSBXZWJYUlZpZXdlclBvc2UgOiBXZWJYUlBvc2Ug
eworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8V2ViWFJW
aWV3PiB2aWV3czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSVmlld3BvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZp
ZXdwb3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmFhM2M4YTVhOTNlNmQxZTllNjkzYTE5ZDQxMGNmY2Q1
M2Y5ZGRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlZpZXdwb3J0LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlZpZXdwb3J0LmgiCisKKyNpZiBFTkFCTEUoV0VC
WFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlZpZXdwb3J0KTsKKwor
UmVmPFdlYlhSVmlld3BvcnQ+IFdlYlhSVmlld3BvcnQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViWFJWaWV3cG9ydCk7Cit9CisKK1dlYlhSVmlld3BvcnQ6OldlYlhS
Vmlld3BvcnQoKSA9IGRlZmF1bHQ7CisKK2ludCBXZWJYUlZpZXdwb3J0Ojp4KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gMDsKK30KKworaW50IFdlYlhSVmlld3BvcnQ6OnkoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCitpbnQgV2ViWFJWaWV3cG9ydDo6d2lkdGgoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCitpbnQgV2ViWFJWaWV3cG9ydDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlZpZXdwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZjgyNDZhOWIxZDRlYWEzYTA0MTExNjRiMTZiNWU0NjljMjAzMDE0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdw
b3J0LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBXZWJYUlZpZXdwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJWaWV3
cG9ydD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJWaWV3cG9ydCk7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZpZXdwb3J0PiBjcmVhdGUoKTsKKworICAgIGludCB4
KCkgY29uc3Q7CisgICAgaW50IHkoKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoKSBjb25zdDsKKyAg
ICBpbnQgaGVpZ2h0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJWaWV3cG9ydCgpOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTliNTFlY2YxNGMzNjNmMTgzNDU4MzM1Nzg5ZDdkMGNjZmYyYzk3MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5pZGwK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJm
YWNlTmFtZT1YUlZpZXdwb3J0CitdIGludGVyZmFjZSBXZWJYUlZpZXdwb3J0IHsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyB4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHk7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgd2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgaGVpZ2h0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJXZWJHTExheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTc4ZThiMGI2N2QwMzE4MTRhOWVlYWQ2ZDgy
MmM1NmE4N2YwNmE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUldlYkdMTGF5ZXIuaCIKKworI2lm
IEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRl
ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUg
IldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKKyNlbmRpZgorI2luY2x1ZGUgIldlYlhSU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIldlYlhSVmlld3BvcnQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXJJ
bml0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2Vi
R0xMYXllcj4+IFdlYlhSV2ViR0xMYXllcjo6Y3JlYXRlKGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vz
c2lvbiwgV2ViWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJXZWJHTExheWVy
SW5pdCYgaW5pdCkKK3sKKyAgICAvLyBUaGUgWFJXZWJHTExheWVyKHNlc3Npb24sIGNvbnRleHQs
IGxheWVySW5pdCkgY29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMg
d2hlbiBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0IGxheWVyIGJlIGEgbmV3IFhSV2ViR0xMYXll
cgorCisgICAgLy8gICAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJv
dyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKHNl
c3Npb24uZW5kZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH07CisKKyAgICAvLyAgIDMuIElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4gSWYgY29udGV4
dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAg
IC8vICAgNS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LgorICAgIC8v
ICAgNi4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50
aWFsaWFzIHZhbHVlLgorICAgIC8vICAgNy4gSWYgbGF5ZXJJbml04oCZcyBpZ25vcmVEZXB0aFZh
bHVlcyB2YWx1ZSBpcyBmYWxzZSBhbmQgdGhlIFhSIENvbXBvc2l0b3Igd2lsbCBtYWtlIHVzZSBv
ZiBkZXB0aCB2YWx1ZXMsIEluaXRpYWxpemUgbGF5ZXLigJlzIGlnbm9yZURlcHRoVmFsdWVzIHRv
IGZhbHNlLgorICAgIC8vICAgOC4gRWxzZSBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVEZXB0
aFZhbHVlcyB0byB0cnVlCisgICAgLy8gICA5LiBJbml0aWFsaXplIGxheWVy4oCZcyBmcmFtZWJ1
ZmZlciB0byBhIG5ldyBvcGFxdWUgZnJhbWVidWZmZXIgY3JlYXRlZCB3aXRoIGNvbnRleHQuCisg
ICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgbGF5ZXLigJlzIHN3YXAgY2hhaW4uCisgICAgLy8g
ICAxMS4gSWYgbGF5ZXLigJlzIHN3YXAgY2hhaW4gd2FzIHVuYWJsZSB0byBiZSBjcmVhdGVkIGZv
ciBhbnkgcmVhc29uLCB0aHJvdyBhbiBPcGVyYXRpb25FcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8vICAgMTIuIFJldHVybiBsYXllci4KKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUldlYkdMTGF5ZXIoc2Vzc2lvbiwgV1RGTW92ZShj
b250ZXh0KSwgaW5pdCkpOworfQorCitXZWJYUldlYkdMTGF5ZXI6OldlYlhSV2ViR0xMYXllcihj
b25zdCBXZWJYUlNlc3Npb24mLCBXZWJYUlJlbmRlcmluZ0NvbnRleHQmJiBjb250ZXh0LCBjb25z
dCBYUldlYkdMTGF5ZXJJbml0JiBpbml0KQorICAgIDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4
dCkpCisgICAgLCBtX2FudGlhbGlhcyhpbml0LmFudGlhbGlhcykKKyAgICAsIG1faWdub3JlRGVw
dGhWYWx1ZXMoaW5pdC5pZ25vcmVEZXB0aFZhbHVlcykKK3sKKyAgICBtX2ZyYW1lYnVmZmVyLm9i
amVjdCA9IFdURjo6c3dpdGNoT24obV9jb250ZXh0LAorICAgICAgICBbXShjb25zdCBSZWZQdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PiYgY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAg
UmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IGZyYW1lQnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6
Y3JlYXRlKCpjb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBmcmFtZUJ1ZmZlcjsKKyAgICAg
ICAgfSwKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0wy
UmVuZGVyaW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0
cjxXZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0
ZSgqY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0s
CisjZW5kaWYKKyAgICAgICAgW10oV1RGOjpNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0K
KyAgICApOworfQorCitXZWJYUldlYkdMTGF5ZXI6On5XZWJYUldlYkdMTGF5ZXIoKSA9IGRlZmF1
bHQ7CisKK2Jvb2wgV2ViWFJXZWJHTExheWVyOjphbnRpYWxpYXMoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2FudGlhbGlhczsKK30KKworYm9vbCBXZWJYUldlYkdMTGF5ZXI6Omlnbm9yZURlcHRo
VmFsdWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZ25vcmVEZXB0aFZhbHVlczsKK30KKwor
Y29uc3QgV2ViR0xGcmFtZWJ1ZmZlciYgV2ViWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuICptX2ZyYW1lYnVmZmVyLm9iamVjdDsKK30KKwordW5zaWduZWQg
V2ViWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9mcmFtZWJ1ZmZlci53aWR0aDsKK30KKwordW5zaWduZWQgV2ViWFJXZWJHTExheWVyOjpmcmFt
ZWJ1ZmZlckhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIuaGVpZ2h0
OworfQorCitSZWZQdHI8V2ViWFJWaWV3cG9ydD4gV2ViWFJXZWJHTExheWVyOjpnZXRWaWV3cG9y
dChjb25zdCBXZWJYUlZpZXcmKQoreworICAgIHJldHVybiB7IH07Cit9CisKK2RvdWJsZSBXZWJY
UldlYkdMTGF5ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgV2ViWFJT
ZXNzaW9uJikKK3sKKyAgICByZXR1cm4gMS4wOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmQwNDgzZWQ1ZmI2MWUyMDIzYjQz
OWVkMWZmMjYxMWJmMWJmYzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViR0xGcmFtZWJ1ZmZlcjsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKKyNpZiBFTkFC
TEUoV0VCR0wyKQorY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKKyNlbmRpZgorY2xhc3Mg
V2ViWFJTZXNzaW9uOworY2xhc3MgV2ViWFJWaWV3OworY2xhc3MgV2ViWFJWaWV3cG9ydDsKK3N0
cnVjdCBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBXZWJYUldlYkdMTGF5ZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2luZyBX
ZWJYUlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+LAorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgIFJlZlB0cjxX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0PgorI2Vsc2UKKyAgICAgICAgV1RGOjpNb25vc3RhdGUKKyNl
bmRpZgorICAgID47CisKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXll
cj4+IGNyZWF0ZShjb25zdCBXZWJYUlNlc3Npb24mLCBXZWJYUlJlbmRlcmluZ0NvbnRleHQmJiwg
Y29uc3QgWFJXZWJHTExheWVySW5pdCYpOworICAgIH5XZWJYUldlYkdMTGF5ZXIoKTsKKworICAg
IGJvb2wgYW50aWFsaWFzKCkgY29uc3Q7CisgICAgYm9vbCBpZ25vcmVEZXB0aFZhbHVlcygpIGNv
bnN0OworCisgICAgY29uc3QgV2ViR0xGcmFtZWJ1ZmZlciYgZnJhbWVidWZmZXIoKSBjb25zdDsK
KyAgICB1bnNpZ25lZCBmcmFtZWJ1ZmZlcldpZHRoKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJh
bWVidWZmZXJIZWlnaHQoKSBjb25zdDsKKworICAgIFJlZlB0cjxXZWJYUlZpZXdwb3J0PiBnZXRW
aWV3cG9ydChjb25zdCBXZWJYUlZpZXcmKTsKKworICAgIHN0YXRpYyBkb3VibGUgZ2V0TmF0aXZl
RnJhbWVidWZmZXJTY2FsZUZhY3Rvcihjb25zdCBXZWJYUlNlc3Npb24mKTsKKworcHJpdmF0ZToK
KyAgICBXZWJYUldlYkdMTGF5ZXIoY29uc3QgV2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJpbmdD
b250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsKKworICAgIFdlYlhSUmVuZGVyaW5n
Q29udGV4dCBtX2NvbnRleHQ7CisgICAgYm9vbCBtX2FudGlhbGlhcyB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lnbm9yZURlcHRoVmFsdWVzIHsgZmFsc2UgfTsKKworICAgIHN0cnVjdCB7CisgICAg
ICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBvYmplY3Q7CisgICAgICAgIHVuc2lnbmVkIHdp
ZHRoIHsgMCB9OworICAgICAgICB1bnNpZ25lZCBoZWlnaHQgeyAwIH07CisgICAgfSBtX2ZyYW1l
YnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldl
YkdMTGF5ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5
ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4YmFkMzdiZDdjMmEzOWNlMTY5YTA2NjQ0ZjhhNDk1OWNlYjk2
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
V2ViR0xMYXllci5pZGwKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgV2ViWFJXZWJH
TFJlbmRlcmluZ0NvbnRleHQ7CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5k
b3csCisgICAgQ29uc3RydWN0b3IoV2ViWFJTZXNzaW9uIHNlc3Npb24sIFdlYlhSV2ViR0xSZW5k
ZXJpbmdDb250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFhSV2ViR0xMYXllckluaXQgbGF5ZXJJbml0
KSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUldlYkdMTGF5ZXIKK10gaW50ZXJmYWNl
IFdlYlhSV2ViR0xMYXllciB7CisgICAgLy8gQXR0cmlidXRlcworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGFudGlhbGlhczsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBp
Z25vcmVEZXB0aFZhbHVlczsKKworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
V2ViR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBmcmFtZWJ1ZmZlcldpZHRoOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGZyYW1lYnVmZmVySGVpZ2h0OworCisgICAgLy8gTWV0aG9kcworICAgIFdlYlhS
Vmlld3BvcnQ/IGdldFZpZXdwb3J0KFdlYlhSVmlldyB2aWV3KTsKKworICAgIC8vIFN0YXRpYyBN
ZXRob2RzCisgICAgc3RhdGljIGRvdWJsZSBnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9y
KFdlYlhSU2Vzc2lvbiBzZXNzaW9uKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ZjQwNzJh
NzE1Y2RmNWNiNzEzM2IzMjlmOWNiOGVhNTc4NzYwZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApAQCAtMCww
ICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhS
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJFbnZpcm9ubWVudEJsZW5k
TW9kZSB7CisgICAgT3BhcXVlLAorICAgIEFkZGl0aXZlLAorICAgIEFscGhhQmxlbmQKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9k
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1v
ZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVlZmEwODhjZmNlZDYxMDllOWNjYjIxZGVmM2M0MTFlODhjYTM4
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52
aXJvbm1lbnRCbGVuZE1vZGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51
bSBYUkVudmlyb25tZW50QmxlbmRNb2RlIHsKKyAgICAib3BhcXVlIiwKKyAgICAiYWRkaXRpdmUi
LAorICAgICJhbHBoYS1ibGVuZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSRXllLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWExZWE3ZTFlN2Q4MjI2MzI1ZjYwYzgyNmZmZmJjMGI5YmE0ZDY2ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJFeWUgeworICAgIE5v
bmUsCisgICAgTGVmdCwKKyAgICBSaWdodCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJFeWUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWFkMWU0MzA0YTYyZWE2NTkzNzAzNTQ2NTk1NDQwMzk2MjAzODM5
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUu
aWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBYUkV5ZSB7CisgICAgIm5v
bmUiLAorICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ODUwNDk3Njg4NGVjMThlZWYzODFlZGFjYzJhNTM1NGYxY2YyODMyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiQ2Fs
bGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSRnJhbWU7CisKK2NsYXNzIFhSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiwgcHVibGlj
IEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFj
azo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+
IGhhbmRsZUV2ZW50KGRvdWJsZSBoaWdoUmVzVGltZU1zLCBXZWJYUkZyYW1lJikgPSAwOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxs
YmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZiMTUxYTMxYmFmOGU3Yjk4MGIxMmY1MjUwOTQ4NGZjNTk0
ODE3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJG
cmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0
eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9
V0VCWFIKK10gY2FsbGJhY2sgWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA9IHZvaWQgKERPTUhpZ2hS
ZXNUaW1lU3RhbXAgdGltZSwgV2ViWFJGcmFtZSBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzMzMDM0ZDBjZDQ5YWM4ZGVl
OTAyYTA4MTY0NDgwNDM3OGNiYzJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2VudW0gY2xhc3MgWFJIYW5kZWRuZXNzIHsKKyAgICBOb25lLAorICAgIExlZnQsCisg
ICAgUmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFu
ZGVkbmVzcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTNmNzA1YTYwMGJlZWJiMjFlODFkODEyZjJkN2QwYzcyYzUwNmYwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRu
ZXNzLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJIYW5kZWRuZXNz
IHsKKyAgICAibm9uZSIsCisgICAgImxlZnQiLAorICAgICJyaWdodCIKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjI2MzFhYjU1Mjk3MDU2Y2MwNjNkNzQ0Njg5ZDNlMDMzY2EwZmE1NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50
LmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJYUklucHV0U291cmNlRXZlbnQuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKwor
I2luY2x1ZGUgIldlYlhSRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gWFJJbnB1dFNv
dXJjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgWFJJbnB1dFNvdXJjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30K
KworWFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisg
ICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9mcmFtZShp
bml0aWFsaXplci5mcmFtZSkKKyAgICAsIG1faW5wdXRTb3VyY2UoaW5pdGlhbGl6ZXIuaW5wdXRT
b3VyY2UpCisgICAgLCBtX2J1dHRvbkluZGV4KGluaXRpYWxpemVyLmJ1dHRvbkluZGV4KQorewor
ICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICBBU1NFUlQobV9pbnB1dFNvdXJjZSk7Cit9CisKK1hS
SW5wdXRTb3VyY2VFdmVudDo6flhSSW5wdXRTb3VyY2VFdmVudCgpID0gZGVmYXVsdDsKKworY29u
c3QgV2ViWFJGcmFtZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICptX2ZyYW1lOworfQorCitjb25zdCBXZWJYUklucHV0U291cmNlJiBYUklucHV0U291
cmNlRXZlbnQ6OmlucHV0U291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1faW5wdXRTb3Vy
Y2U7Cit9CisKK09wdGlvbmFsPGludD4gWFJJbnB1dFNvdXJjZUV2ZW50OjpidXR0b25JbmRleCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnV0dG9uSW5kZXg7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjN2ZjMDQ3
NDdhMmJmMTFlYThiMmZiN2I1Y2E5ZjQ1NGFjMTUzMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUkZyYW1l
OworY2xhc3MgV2ViWFJJbnB1dFNvdXJjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZUV2ZW50IGZp
bmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5p
dCB7CisgICAgICAgIFJlZlB0cjxXZWJYUkZyYW1lPiBmcmFtZTsKKyAgICAgICAgUmVmUHRyPFdl
YlhSSW5wdXRTb3VyY2U+IGlucHV0U291cmNlOworICAgICAgICBPcHRpb25hbDxpbnQ+IGJ1dHRv
bkluZGV4OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVk
OjpObyk7CisgICAgdmlydHVhbCB+WFJJbnB1dFNvdXJjZUV2ZW50KCk7CisKKyAgICBjb25zdCBX
ZWJYUkZyYW1lJiBmcmFtZSgpIGNvbnN0OworICAgIGNvbnN0IFdlYlhSSW5wdXRTb3VyY2UmIGlu
cHV0U291cmNlKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8aW50PiBidXR0b25JbmRleCgpIGNvbnN0
OworCitwcml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwg
Y29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViWFJGcmFtZT4gbV9mcmFt
ZTsKKyAgICBSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4gbV9pbnB1dFNvdXJjZTsKKyAgICBPcHRp
b25hbDxpbnQ+IG1fYnV0dG9uSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI0OGE2MDJmOGIxMjU5
ZmQ4ODk5YWUxNjc1YWZhYjI0NDNiZjE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRp
dGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSSW5wdXRTb3VyY2VFdmVudEluaXQgOiBFdmVu
dEluaXQgeworICAgIHJlcXVpcmVkIFdlYlhSRnJhbWUgZnJhbWU7CisgICAgcmVxdWlyZWQgV2Vi
WFJJbnB1dFNvdXJjZSBpbnB1dFNvdXJjZTsKK307CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAg
RXhwb3NlZD1XaW5kb3csCisgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFhSSW5wdXRT
b3VyY2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVyZmFjZSBYUklucHV0U291cmNl
RXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJY
UkZyYW1lIGZyYW1lOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJJ
bnB1dFNvdXJjZSBpbnB1dFNvdXJjZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MDljMjJmZmU0NTkwNWEwNmZhMWM4OTAwNzg0MzBkNzAxNjgwYTBhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlLmgiCisjaW5jbHVkZSAiV2ViWFJT
ZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQ+IFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3Ry
aW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50KHR5
cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudDo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50
KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3Nlc3Npb24oKmluaXRpYWxp
emVyLnNlc3Npb24pCisgICAgLCBtX2FkZGVkKGluaXRpYWxpemVyLmFkZGVkKQorICAgICwgbV9y
ZW1vdmVkKGluaXRpYWxpemVyLnJlbW92ZWQpCit7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQ6On5YUklucHV0U291cmNlc0NoYW5nZUV2ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBX
ZWJYUlNlc3Npb24mIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OnNlc3Npb24oKSBjb25zdAor
eworICAgIHJldHVybiBtX3Nlc3Npb247Cit9CisKK2NvbnN0IFZlY3RvcjxSZWZQdHI8V2ViWFJJ
bnB1dFNvdXJjZT4+JiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjphZGRlZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fYWRkZWQ7Cit9CisKK2NvbnN0IFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1
dFNvdXJjZT4+JiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpyZW1vdmVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9yZW1vdmVkOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNGVjYzc3
NGY5OGRiMzBhMjIyODE4MGE4ZTZhYjYzOGEyYzQ4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSSW5w
dXRTb3VyY2U7CitjbGFzcyBXZWJYUlNlc3Npb247CisKK2NsYXNzIFhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0
IDogRXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFdlYlhSU2Vzc2lvbj4gc2Vzc2lvbjsKKyAg
ICAgICAgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0U291cmNlPj4gYWRkZWQ7CisgICAgICAgIFZl
Y3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4+IHJlbW92ZWQ7CisgICAgfTsKKworICAgIHN0
YXRpYyBSZWY8WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVh
bCB+WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpOworCisgICAgY29uc3QgV2ViWFJTZXNzaW9u
JiBzZXNzaW9uKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0U291
cmNlPj4mIGFkZGVkKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0
U291cmNlPj4mIHJlbW92ZWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsK
KworICAgIFJlZjxXZWJYUlNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBWZWN0b3I8UmVmUHRyPFdl
YlhSSW5wdXRTb3VyY2U+PiBtX2FkZGVkOworICAgIFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNv
dXJjZT4+IG1fcmVtb3ZlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YTQ2NTky
Yjk2Y2JkOWYxZmYxNjdiYjE5MTBhNmUxNDdkYWVjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFdlYlhSU2Vzc2lvbiBz
ZXNzaW9uOworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFdlYlhSSW5wdXRTb3VyY2U+IGFkZGVk
OworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFdlYlhSSW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9
OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJY
UiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVj
dG9yKERPTVN0cmluZyB0eXBlLCBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50SW5pdCBldmVudElu
aXREaWN0KSwKK10gaW50ZXJmYWNlIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgOiBFdmVudCB7
CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNlc3Npb24gc2Vzc2lv
bjsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFdlYlhS
SW5wdXRTb3VyY2U+IGFkZGVkOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUg
RnJvemVuQXJyYXk8V2ViWFJJbnB1dFNvdXJjZT4gcmVtb3ZlZDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjc4OTliMzQ4YjU1ZmQyNzk0Mzg3YjNmYzhmNGQyYzBkZjExM2NlOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCIKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2UuaCIKKyNpbmNsdWRlICJXZWJY
UlJpZ2lkVHJhbnNmb3JtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSUmVmZXJl
bmNlU3BhY2VFdmVudD4gWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KHR5cGUs
IGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpY
UlJlZmVyZW5jZVNwYWNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYg
aW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0
aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9yZWZlcmVuY2VTcGFjZShpbml0aWFsaXplci5y
ZWZlcmVuY2VTcGFjZSkKKyAgICAsIG1fdHJhbnNmb3JtKGluaXRpYWxpemVyLnRyYW5zZm9ybSkK
K3sKKyAgICBBU1NFUlQobV9yZWZlcmVuY2VTcGFjZSk7CisgICAgQVNTRVJUKG1fdHJhbnNmb3Jt
KTsKK30KKworWFJSZWZlcmVuY2VTcGFjZUV2ZW50Ojp+WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCkg
PSBkZWZhdWx0OworCitjb25zdCBXZWJYUlJlZmVyZW5jZVNwYWNlJiBYUlJlZmVyZW5jZVNwYWNl
RXZlbnQ6OnJlZmVyZW5jZVNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fcmVmZXJlbmNl
U3BhY2U7Cit9CisKK2NvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIFhSUmVmZXJlbmNlU3BhY2VF
dmVudDo6dHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fdHJhbnNmb3JtOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYzUyMGE3Y2RmMTkwMDk5MTQ0MzJkZmJhOWU3NThiODhmM2VkOGZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlRXZlbnQuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2U7CitjbGFzcyBXZWJYUlJpZ2lkVHJhbnNmb3Jt
OworCitjbGFzcyBYUlJlZmVyZW5jZVNwYWNlRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGlj
OgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFdlYlhSUmVm
ZXJlbmNlU3BhY2U+IHJlZmVyZW5jZVNwYWNlOworICAgICAgICBSZWZQdHI8V2ViWFJSaWdpZFRy
YW5zZm9ybT4gdHJhbnNmb3JtOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSUmVmZXJlbmNl
U3BhY2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+WFJSZWZlcmVuY2VTcGFjZUV2ZW50
KCk7CisKKyAgICBjb25zdCBXZWJYUlJlZmVyZW5jZVNwYWNlJiByZWZlcmVuY2VTcGFjZSgpIGNv
bnN0OworICAgIGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3BhY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwg
Y29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViWFJSZWZlcmVuY2VTcGFj
ZT4gbV9yZWZlcmVuY2VTcGFjZTsKKyAgICBSZWZQdHI8V2ViWFJSaWdpZFRyYW5zZm9ybT4gbV90
cmFuc2Zvcm07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVm
ZXJlbmNlU3BhY2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVm
ZXJlbmNlU3BhY2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY5YzE0YzM1ODNmMTNlZjhkN2NhYjRj
OGM5MzEzZDk3MTJjMmQ1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFs
PVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSUmVmZXJlbmNlU3BhY2VFdmVudEluaXQgOiBFdmVudElu
aXQgeworICAgIHJlcXVpcmVkIFdlYlhSUmVmZXJlbmNlU3BhY2UgcmVmZXJlbmNlU3BhY2U7Cisg
ICAgV2ViWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9OworCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0
LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBY
UlJlZmVyZW5jZVNwYWNlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorXSBpbnRlcmZhY2UgWFJS
ZWZlcmVuY2VTcGFjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgV2ViWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZTsKKyAgICBbU2FtZU9i
amVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VT
cGFjZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNDM1ODk2YWI5YzI0MDY1MDIyNTJiZDAyOTFjNTUwYjBkOTM1
OGQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
ZmVyZW5jZVNwYWNlVHlwZS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7CisgICAgVmlld2VyLAorICAgIExvY2FsLAor
ICAgIExvY2FsRmxvb3IsCisgICAgQm91bmRlZEZsb29yLAorICAgIFVuYm91bmRlZAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMjk5NmJiZTkwZWY0ZGMzZWVmZjljM2M1ZmJmNzlkYzkwY2U1NDUyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSUmVm
ZXJlbmNlU3BhY2VUeXBlIHsKKyAgICAidmlld2VyIiwKKyAgICAibG9jYWwiLAorICAgICJsb2Nh
bC1mbG9vciIsCisgICAgImJvdW5kZWQtZmxvb3IiLAorICAgICJ1bmJvdW5kZWQiCit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwNzE4MGIwZTBmNzgyYzIxNzY3OTkzN2IxNGM5ODdiM2I0ZjEyNTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSV2ViR0xMYXllci5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJSZW5kZXJTdGF0
ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFyOworICAg
IGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxXZWJYUldlYkdM
TGF5ZXI+IGJhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlJlbmRlclN0YXRlSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwZWFlNGIyYTlkNDFmOTRkYTdjYjI1
Y2IwOTliYTVlMmFlYzExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
WFIsCitdIGRpY3Rpb25hcnkgWFJSZW5kZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5l
YXI7CisgICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxk
T2ZWaWV3OworICAgIFdlYlhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4
NzQ4YzhhMDFhMjhkZWI2YjU0ODFmY2M1NGE3YzFkODdlNmRjZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhS
U2Vzc2lvbkV2ZW50LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlNl
c3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJTZXNzaW9uRXZlbnQ+IFhS
U2Vzc2lvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYg
aW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgWFJTZXNzaW9uRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQor
CitYUlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVu
dCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKGluaXRpYWxp
emVyLnNlc3Npb24pCit7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7Cit9CisKK1hSU2Vzc2lvbkV2
ZW50Ojp+WFJTZXNzaW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFdlYlhSU2Vzc2lvbiYg
WFJTZXNzaW9uRXZlbnQ6OnNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiAqbV9zZXNzaW9u
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWU4Y2ViNDA3MmQ1ZWNmNjlhZjBlZmJlNzBiM2Y5Zjg2NDRhZjk5YQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBXZWJYUlNlc3Npb247CisKK2NsYXNzIFhSU2Vzc2lvbkV2ZW50IGZpbmFsIDogcHVibGlj
IEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAg
IFJlZlB0cjxXZWJYUlNlc3Npb24+IHNlc3Npb247CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8
WFJTZXNzaW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElz
VHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSU2Vzc2lvbkV2ZW50KCk7
CisKKyAgICBjb25zdCBXZWJYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKworcHJpdmF0ZToK
KyAgICBYUlNlc3Npb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1
c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViWFJTZXNzaW9uPiBtX3Nlc3Npb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3
MTkzM2YyOTVlNTQ0MTBlZDYwZjYzOTBhZTVjMjg0ZjJiYzkyMjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApAQCAtMCww
ICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAor
ICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkV2ZW50SW5pdCA6
IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgV2ViWFJTZXNzaW9uIHNlc3Npb247Cit9OworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAg
ICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERP
TVN0cmluZyB0eXBlLCBYUlNlc3Npb25FdmVudEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVy
ZmFjZSBYUlNlc3Npb25FdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFdlYlhSU2Vzc2lvbiBzZXNzaW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYyYTI2ODIyOTZlMmVkNDkx
YTc3YjQyZDg3NDAwMGEyY2ViNjlmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3Bh
Y2UgSlNDIHsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Ry
dWN0IFhSU2Vzc2lvbkluaXQgeworICAgIFZlY3RvcjxKU0M6OkpTVmFsdWU+IHJlcXVpcmVkRmVh
dHVyZXM7CisgICAgVmVjdG9yPEpTQzo6SlNWYWx1ZT4gb3B0aW9uYWxGZWF0dXJlczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYwNWMwZDUwNzI0NWQ1YTgzNzljYzYyNTk1YWM1NTE5ZjlhMGRkYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCkBAIC0w
LDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgWFJTZXNzaW9uSW5pdCB7Cisg
ICAgc2VxdWVuY2U8YW55PiByZXF1aXJlZEZlYXR1cmVzOworICAgIHNlcXVlbmNlPGFueT4gb3B0
aW9uYWxGZWF0dXJlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSU2Vzc2lvbk1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNz
aW9uTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3MWE5ZGE1ODRiYzBhMmRmNGQ4MWRiMDk4NDEyZDFmMjk1
YjFmOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbk1vZGUuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFhSU2Vzc2lvbk1vZGUgPSBQbGF0Zm9ybVhSOjpTZXNz
aW9uTW9kZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25N
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTY1ZjYwNmI0Njk3OWExMmQ3YzE0YzM2YjMxNTc3MTI4ZDJiMWMxNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9k
ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSU2Vzc2lvbk1vZGUg
eworICAgICJpbmxpbmUiLAorICAgICJpbW1lcnNpdmUtdnIiLAorICAgICJpbW1lcnNpdmUtYXIi
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJh
eU1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWZjYTQ0ZTQ1MWI5N2M1NjAyNmUxNDViNTIyMzMxZjgxNjViYWU3ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlN
b2RlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVGFy
Z2V0UmF5TW9kZSB7CisgICAgR2F6ZSwKKyAgICBUcmFja2VkUG9pbnRlciwKKyAgICBTY3JlZW4s
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9k
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjRlNTQ2M2QzNGNmNjZlNjhjM2MyMWIzNDZiYmI5NzczYWJkOGFhYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlN
b2RlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJUYXJnZXRSYXlN
b2RlIHsKKyAgICAiZ2F6ZSIsCisgICAgInRyYWNrZWQtcG9pbnRlciIsCisgICAgInNjcmVlbiIK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0
eVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmZkZDg1OTc4ZDlkMDFmZjc5MzYyYzdjMGJiODU4ZDc3N2ZiMjkxYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmls
aXR5U3RhdGUuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
WFJWaXNpYmlsaXR5U3RhdGUgeworICAgIFZpc2libGUsCisgICAgVmlzaWJsZUJsdXJyZWQsCisg
ICAgSGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlz
aWJpbGl0eVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmls
aXR5U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZWYyNzU4MGZjMTk4ZjM2Nzk3MWMzODhjMGY5OGZm
YzlkNmZlOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVmlzaWJpbGl0eVN0YXRlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVu
dW0gWFJWaXNpYmlsaXR5U3RhdGUgeworICAgICJ2aXNpYmxlIiwKKyAgICAidmlzaWJsZS1ibHVy
cmVkIiwKKyAgICAiaGlkZGVuIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUldlYkdMTGF5ZXJJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE0NGQ1MTBhMGVmNGVjMWRjODk5MWY1
NGYyYjAwN2RkMDM4ZTdkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFhSV2ViR0xMYXllckluaXQgeworICAgIGJvb2wgYW50aWFsaWFzIHsgdHJ1
ZSB9OworICAgIGJvb2wgZGVwdGggeyB0cnVlIH07CisgICAgYm9vbCBzdGVuY2lsIHsgZmFsc2Ug
fTsKKyAgICBib29sIGFscGhhIHsgdHJ1ZSB9OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMg
eyB0cnVlIH07CisgICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IgeyAxLjAgfTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNhNDM2ZDJiNTQzMmNjZjk4NTJhY2FkZWI3MGQ0MzJlNWE1NTNiNTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllcklu
aXQuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgWFJXZWJH
TExheWVySW5pdCB7CisgICAgYm9vbGVhbiBhbnRpYWxpYXMgPSB0cnVlOworICAgIGJvb2xlYW4g
ZGVwdGggPSB0cnVlOworICAgIGJvb2xlYW4gc3RlbmNpbCA9IGZhbHNlOworICAgIGJvb2xlYW4g
YWxwaGEgPSB0cnVlOworICAgIGJvb2xlYW4gaWdub3JlRGVwdGhWYWx1ZXMgPSBmYWxzZTsKKyAg
ICBkb3VibGUgZnJhbWVidWZmZXJTY2FsZUZhY3RvciA9IDEuMDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uZmQwYzk5
YTRjMmQ3MzVmYzExMGUxYjVlN2Y0NzJmZDVkMWI1YWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtNDE0LDQgKzQxNCw2IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xU
OwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChF
TkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5
KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVN
RU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykg
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChF
TkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChF
TkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVf
Q1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NT
UykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChF
TkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQ
RVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9H
QU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RP
Ul9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQo
RU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19D
T05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVH
QUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQo
RU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9N
SFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RB
TkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04p
ICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZM
T1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BE
RktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJ
WF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFC
TEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVO
QUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAk
KEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVO
QUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFC
TEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVf
U1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVU
T1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkg
JChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAk
KEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJf
S0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJ
T05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQo
RU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9X
RUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxF
X1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfV0VCWFIg
PSBFTkFCTEVfV0VCWFI7CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElU
WV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19H
UkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJ
TlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVE
X09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJM
RV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxf
MikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVf
UFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9S
X1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1Nf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
RElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZF
X1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElE
QVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAk
KEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5T
UEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VY
VEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09V
UkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VT
RVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZB
UklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5U
X0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9U
T1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5B
QkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VC
X1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKSAk
KEVOQUJMRV9XRUJYUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IDBkNTk4MmUxZGM2
OWViNjgwZjA4ZGViZDhlNmYyNmE3MjQ3ZDlkYTUuLmU3NWVjZWYxNDBhYjVjZWVmMWQwZDZkYmMw
NjZlMzVjOTJkM2Y1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC03MCwzICs3MCw4
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAk
e1VQT1dFUkdMSUJfSU5DTFVERV9ESVJTfQogICAgICR7V1BFQkFDS0VORF9GRE9fSU5DTFVERV9E
SVJTfQogKQorCitpZiAoVVNFX09QRU5YUikKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJB
UklFUyAke09QRU5YUl9MSUJSQVJJRVN9KQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU1lTVEVN
X0lOQ0xVREVfRElSRUNUT1JJRVMgJHtPUEVOWFJfSU5DTFVERV9ESVJTfSkKK2VuZGlmICgpClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAwZDQ1MzJmMTYzZGNm
YWZjOGRmM2U3MzViNGVjN2MwMTI2YWZjNTlhLi5kYjlhZDE2NjYxMDNmYjBiY2ExNjNlNDgxZjU2
NGVmZjdkYWEzMGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDExLDYgKzQxMSwzMSBAQCBNb2R1bGVz
L3dlYmdwdS9XZWJHUFVUZXh0dXJlLmNwcAogTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZp
ZXcuY3BwCiBNb2R1bGVzL3dlYmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuY3BwCiAKKyNpZiBFTkFC
TEVfV0VCWFIKKworTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAgQG5vLXVuaWZ5CitN
b2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBAbm8tdW5pZnkKK01v
ZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhS
SW5wdXRTb3VyY2VBcnJheS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRT
b3VyY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCBAbm8tdW5pZnkKK01vZHVs
ZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dl
YlhSUmlnaWRUcmFuc2Zvcm0uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Np
b24uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcCBAbm8tdW5pZnkK
K01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9X
ZWJYUlZpZXcuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuY3Bw
IEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmNwcCBAbm8tdW5pZnkKK01v
ZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNw
cCBAbm8tdW5pZnkKKworI2VuZGlmCisKIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcAogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcApAQCAtMjA3Nyw2ICsyMTAyLDkgQEAgcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ0RldGVj
dG9ySUNVLmNwcAogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKIAorcGxh
dGZvcm0veHIvUGxhdGZvcm1YUi5jcHAgQG5vLXVuaWZ5CitwbGF0Zm9ybS94ci9vcGVueHIvUGxh
dGZvcm1YUi5jcHAgQG5vLXVuaWZ5CisKIHBsdWdpbnMvRE9NTWltZVR5cGUuY3BwCiBwbHVnaW5z
L0RPTU1pbWVUeXBlQXJyYXkuY3BwCiBwbHVnaW5zL0RPTVBsdWdpbi5jcHAKQEAgLTM1MjQsNiAr
MzU1Miw0MSBAQCBKU1hQYXRoTlNSZXNvbHZlci5jcHAKIEpTWFBhdGhSZXN1bHQuY3BwCiBKU1hT
TFRQcm9jZXNzb3IuY3BwCiAKKyNpZiBFTkFCTEVfV0VCR0wKKworSlNXZWJYUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZS5jcHAKK0pTWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5jcHAKK0pTWFJFeWUuY3Bw
CitKU1dlYlhSRnJhbWUuY3BwCitKU1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suY3BwCitKU1hSSGFu
ZGVkbmVzcy5jcHAKK0pTV2ViWFJJbnB1dFNvdXJjZS5jcHAKK0pTV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmNwcAorSlNYUklucHV0U291cmNlRXZlbnQuY3BwCitKU1hSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQuY3BwCitKU1dlYlhSUG9zZS5jcHAKK0pTV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAKK0pT
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlVHlwZS5jcHAKK0pT
V2ViWFJSZW5kZXJTdGF0ZS5jcHAKK0pTWFJSZW5kZXJTdGF0ZUluaXQuY3BwCitKU1dlYlhSUmln
aWRUcmFuc2Zvcm0uY3BwCitKU1dlYlhSU2Vzc2lvbi5jcHAKK0pTWFJTZXNzaW9uRXZlbnQuY3Bw
CitKU1hSU2Vzc2lvbkluaXQuY3BwCitKU1hSU2Vzc2lvbk1vZGUuY3BwCitKU1dlYlhSU3BhY2Uu
Y3BwCitKU1dlYlhSU3lzdGVtLmNwcAorSlNYUlRhcmdldFJheU1vZGUuY3BwCitKU1dlYlhSVmll
dy5jcHAKK0pTV2ViWFJWaWV3ZXJQb3NlLmNwcAorSlNXZWJYUlZpZXdwb3J0LmNwcAorSlNYUlZp
c2liaWxpdHlTdGF0ZS5jcHAKK0pTV2ViWFJXZWJHTExheWVyLmNwcAorSlNYUldlYkdMTGF5ZXJJ
bml0LmNwcAorCisjZW5kaWYKKwogI2lmIEVOQUJMRV9HQU1FUEFECiAKIEpTR2FtZXBhZC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiNmIzY2Q4YTM1YmIwM2IwZGFmYzZmZGYxNTY3ZmM1NDliMmFiNWM5Li44NmRhNzIxYjg3
NjRiNWVjMzYxZWVkMGQ4MDBmMTA1MTMwMGMyMGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODE2LDYgKzQ4MTYsNjAgQEAK
IAkJRTFFNkVFQTgwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTZFRUE3MEI2MjhE
QjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCUUxRUMyOUEwMEJC
MDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5v
ZGVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMUVEOEFDMzBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRDhBQzIw
Q0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMUVFOEI3MDI0MTJCMkE4
MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEI2QzI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5j
cHAgKi87IH07CisJCUUxRUU4QjcxMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjZFMjQx
MkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLzsgfTsKKwkJRTFFRThCNzIyNDEyQjJB
ODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmgg
Ki87IH07CisJCUUxRUU4Qjc2MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUM3MjQx
MkIxNkYwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCAqLzsgfTsKKwkJRTFFRThCNzcyNDEz
MTkxRjAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAqLzsgfTsKKwkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2
IC8qIE5hdmlnYXRvcldlYlhSLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEFDQTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaCAq
LzsgfTsKKwkJRTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDQjI0
MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCAqLzsgfTsKKwkJRTFFRThCN0Ey
NDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDQzI0MTJCMTcwMDBFNzk0RDYg
LyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCAqLzsgfTsKKwkJRTFFRThCN0IyNDEzMTkxRjAwRTc5
NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0QyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmln
aWRUcmFuc2Zvcm0uY3BwICovOyB9OworCQlFMUVFOEI3QzI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJSZW5kZXJTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5jcHAg
Ki87IH07CisJCUUxRUU4QjdEMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDRjI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oICovOyB9OworCQlFMUVFOEI3RTI0MTMxOTFGMDBFNzk0
RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oICovOyB9OworCQlFMUVFOEI3RjI0MTMxOTFGMDBFNzk0
RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZl
cmVuY2VTcGFjZS5jcHAgKi87IH07CisJCUUxRUU4QjgwMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuY3BwICovOyB9OworCQlFMUVFOEI4MTI0MTMxOTFGMDBFNzk0RDYgLyog
V2ViWFJSZW5kZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuaCAq
LzsgfTsKKwkJRTFFRThCODIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFENjI0
MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLzsgfTsKKwkJRTFFRThCODMy
NDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJXZWJHTExheWVyLmNwcCAqLzsgfTsKKwkJRTFFRThCODQyNDEzMTkxRjAwRTc5NEQ2IC8q
IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThBREIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3Bh
Y2VFdmVudC5oICovOyB9OworCQlFMUVFOEI4NTI0MTMxOTFGMDBFNzk0RDYgLyogWFJTZXNzaW9u
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThBREMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmNwcCAqLzsgfTsKKwkJ
RTFFRThCODYyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBREQyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5oICovOyB9OworCQlFMUVFOEI4NzI0
MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3
LmggKi87IH07CisJCUUxRUU4Qjg4MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlBvc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUxMjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUlBvc2UuaCAqLzsgfTsKKwkJRTFFRThCODkyNDEzMTkxRjAwRTc5
NEQ2IC8qIFdlYlhSU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCAqLzsg
fTsKKwkJRTFFRThCOEEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUzMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUkZyYW1lLmggKi87IH07CisJCUUxRUU4QjhCMjQxMzE5MUYwMEU3OTRENiAv
KiBXZWJYUlBvc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi87IH07CisJ
CUUxRUU4QjhDMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTYyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHAgKi87IH07CisJCUUxRUU4
QjhEMjQxMzE5NTAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTcyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSU2Vzc2lvbkV2ZW50LmggKi87IH07CisJCUUxRUU4QjhFMjQxMzE5NTAwMEU3OTRENiAvKiBX
ZWJYUlN5c3RlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwICovOyB9Owor
CQlFMUVFOEI4RjI0MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTkyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLzsgfTsKKwkJRTFFRThC
OTAyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRUEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSVGFyZ2V0UmF5TW9kZS5oICovOyB9OworCQlFMUVFOEI5MTI0MTMxOTUwMDBFNzk0RDYgLyog
V2ViWFJWaWV3cG9ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEFFQjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5jcHAgKi87
IH07CisJCUUxRUU4QjkyMjQxMzE5NTAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUVFMjQxMkIxNzAw
MEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCAqLzsgfTsKKwkJRTFFRThCOTMyNDEzMTk1MDAwRTc5
NEQ2IC8qIFdlYlhSRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRThBRjAyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuY3BwICov
OyB9OworCQlFMUVFOEI5NDI0MTMxOTUwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjEyNDEy
QjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmNwcCAqLzsgfTsKKwkJRTFFRThCOTUyNDEz
MTk1MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGMzI0MTJCMTcwMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLzsgfTsKKwkJRTFFRThCOTYyNDEzMTk1MDAw
RTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0
LmggKi87IH07CisJCUUxRUU4Qjk3MjQxMzE5NTAwMEU3OTRENiAvKiBYUkV5ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSRXllLmggKi87IH07CisJCUUxRUU4Qjk4MjQxMzE5NTAwMEU3OTRENiAvKiBX
ZWJYUlNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLzsgfTsKKwkJ
RTFFRThCOTkyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSV2ViWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThB
RjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oICov
OyB9OworCQlFMUVFOEI5QTI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uTW9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRkUyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbk1vZGUuaCAqLzsgfTsKKwkJRTFFRThCOUIyNDEz
MTk1MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xM
YXllci5oICovOyB9OworCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVu
dEJsZW5kTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRThCMDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCAq
LzsgfTsKKwkJRTFFRThCOUQyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA2
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi87IH07CisJCUUxRUU4
QjlFMjQxMzE5NTAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYg
LyogWFJXZWJHTExheWVySW5pdC5oICovOyB9OworCQlFMUVFOEI5RjI0MTMxOTUwMDBFNzk0RDYg
LyogWFJJbnB1dFNvdXJjZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEIwOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2
ZW50LmggKi87IH07CisJCUUxRUU4QkEwMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBv
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5jcHAgKi87IH07CisJCUUx
RUU4QkExMjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjBEMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUklucHV0U291cmNlLmNwcCAqLzsgfTsKKwkJRTFFRThCQTIyNDEzMTk2MzAw
RTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEIwRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmNwcCAq
LzsgfTsKKwkJRTFFRThCQTMyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTEyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSU2Vzc2lvbi5oICovOyB9OworCQlFMUVFOEJBNDI0MTMxOTYzMDBFNzk0RDYg
LyogV2ViWFJWaWV3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovOyB9Owor
CQlFMUVFOEJBNTI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uSW5pdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTMyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbkluaXQuaCAqLzsgfTsKKwkJRTFFRThCQTYyNDEzMTk2MzAw
RTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJl
ZmVyZW5jZVNwYWNlLmggKi87IH07CisJCUUxRUU4QkE3MjQxMzE5NjMwMEU3OTRENiAvKiBYUldl
YlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4QkE4MjQxMzE5NjMwMEU3
OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNv
dXJjZS5oICovOyB9OwogCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjFF
ODJFMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovOyB9OwogCQlFMUY4MEI4
ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGODBCODYxODMxNzI1MjAwNzg4NUMzIC8qIENy
eXB0b0tleVBhaXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMUY4MEI4RTE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4QzE4MzE3
MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggKi87IH07CkBAIC0xNTE1Myw2ICsxNTIw
Nyw5MSBAQAogCQlFMUVDMjk5RDBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoTm9kZVNldC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAvKiBY
UGF0aE5vZGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhOb2Rl
U2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUQ4QUMyMENDNDlCRTAwMEJG
QzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9z
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlZpZXdlclBvc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzgyNDEyQjE2RjAwRTc5NEQ2IC8q
IFhSU2Vzc2lvbk1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbk1vZGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDOTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWFJSZWZlcmVuY2VTcGFjZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThBQ0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldlYlhSLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRl
SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlJlbmRlclN0YXRlSW5p
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDQzI0MTJCMTcwMDBFNzk0
RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSUmlnaWRUcmFuc2Zv
cm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDRTI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJYUlJlbmRlclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3Bh
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJSZWZlcmVu
Y2VTcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQzMjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ0MjQxMkIxNzAwMEU3OTRENiAv
KiBYUlNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNwYWNlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
UmVuZGVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJSZW5k
ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFENjI0MTJCMTcw
MDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gWFJWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThBRDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJXZWJHTExheWVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSV2ViR0xMYXllci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3OTRENiAv
KiBYUlZpc2liaWxpdHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaXNpYmls
aXR5U3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEQTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURDMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBYUlNlc3Npb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURFMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlNlc3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
ZXcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJWaWV3Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlBvc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJQb3NlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5
c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlN5c3RlbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFMzI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUkZyYW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU0MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlBvc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNv
dXJjZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhS
SW5wdXRTb3VyY2VBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJTeXN0ZW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkZy
YW1lUmVxdWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWFJUYXJnZXRSYXlNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSVmlld3BvcnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZW5kZXJTdGF0ZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3Rh
dGVJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUQyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJW
aWV3ZXJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUUyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBYUkhhbmRlZG5lc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThBRUYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUkZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjEyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhS
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRvcldlYlhS
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjIyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVy
U3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGMzI0MTJCMTcw
MDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdw
b3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSVmlld3BvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjUyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSRXllLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSRXllLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJl
ZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjcyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFGOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJYUklucHV0
U291cmNlc0NoYW5nZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhS
V2ViWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFGQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJh
bWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGQzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBYUldlYkdMTGF5ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFG
RDI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFhSU2Vzc2lvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRkUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbk1vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJTZXNzaW9uTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFGRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlN
b2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlRhcmdldFJheU1vZGUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNl
RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwMTI0MTJCMTcw
MDBFNzk0RDYgLyogWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
WFJSaWdpZFRyYW5zZm9ybS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QjAyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlN5c3RlbS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gWFJTeXN0ZW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwMzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRXll
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDQyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSV2ViR0xMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
UldlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDUyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRy
YW5zZm9ybS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlJpZ2lkVHJh
bnNmb3JtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA3MjQxMkIxNzAw
MEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSGFu
ZGVkbmVzcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA4MjQxMkIx
NzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhSV2ViR0xMYXllckluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUklucHV0U291cmNlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmll
d3BvcnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlld3BvcnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwQjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJW
aWV3ZXJQb3NlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhS
Vmlld2VyUG9zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjBDMjQx
MkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkZy
YW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEQyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yV2ViWFIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEIwRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSU2Vzc2lvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRENiAvKiBYUldl
YkdMTGF5ZXJJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUldlYkdMTGF5ZXJJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTEyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNl
c3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTIyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJYUlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIx
MzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uSW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJYUlNlc3Npb25Jbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSUmVmZXJlbmNlU3BhY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTUyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSV2ViWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxNjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJQb3NlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlBvc2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1
dFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUklucHV0U291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjE4MjQxMkIxNzAwMEU3
OTRENiAvKiBYUklucHV0U291cmNlQXJyYXkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhS
SW5wdXRTb3VyY2VBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QjZDMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtWFIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEI2RTI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVhSLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCNkYyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3Jt
WFIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1YUi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUYxRTgyRDBDM0MyQkI5MDA2REIzOTEgLyogWFNM
VEV4dGVuc2lvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNM
VEV4dGVuc2lvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUYxRTgyRTBD
M0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFNMVEV4dGVuc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTFGODBCODQxODMxNzI0NzAwNzg4NUMzIC8qIENyeXB0b0tleVBhaXIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENy
eXB0b0tleVBhaXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIzOTEsNiAr
MjI1MzAsNyBAQAogCQkJCTk5NkU1OURBMURGMDBENDUwMDY2MTJCOSAvKiB3ZWJkcml2ZXIgKi8s
CiAJCQkJRDAwRjU5M0UyMTZFQ0M0MzAwMEQ3MURCIC8qIHdlYmdwdSAqLywKIAkJCQk5N0FBQkNG
NzE0RkEwOUI1MDA3NDU3QUUgLyogd2Vic29ja2V0cyAqLywKKwkJCQlFMUVFOEFDNjI0MTJCMTZG
MDBFNzk0RDYgLyogd2VieHIgKi8sCiAJCQkpOwogCQkJcGF0aCA9IE1vZHVsZXM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjU5NDEsNiArMjYwODEsNyBAQAogCQkJCTY1NkI4NEQ3
MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICovLAogCQkJCTFBMkU2RTU2MENDNTUxRTAwMDRB
MjA2MiAvKiBzcWwgKi8sCiAJCQkJQjJDM0Q5RUMwRDAwNkMxRDAwRUY2RjI2IC8qIHRleHQgKi8s
CisJCQkJRTFFRThCNkIyNDEyQjJBNzAwRTc5NEQ2IC8qIHhyICovLAogCQkJCURGREI5MTJDRjhF
ODhBNkRBMUFEMjY0RiAvKiBBYm9ydGFibGVUYXNrUXVldWUuaCAqLywKIAkJCQk0OUFFMkQ5NDEz
NEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJNDlBRTJEOTUx
MzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuaCAqLywKQEAgLTI3MDMzLDYgKzI3
MTc0LDExMyBAQAogCQkJbmFtZSA9IFRocmVhZHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQlFMUVFOEFDNjI0MTJCMTZGMDBFNzk0RDYgLyogd2VieHIgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRUU4QUYxMjQxMkIxNzAwMEU3
OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgKi8sCisJCQkJRTFFRThBQ0EyNDEyQjE3MDAwRTc5
NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi8sCisJCQkJRTFFRThCMEUyNDEyQjE3MDAwRTc5NEQ2
IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAqLywKKwkJCQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwICovLAorCQkJCUUxRUU4QUQxMjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxRUU4
QUYwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmNwcCAqLywKKwkJCQlFMUVFOEFFMzI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5oICovLAorCQkJCUUxRUU4QjBEMjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmNwcCAqLywKKwkJCQlFMUVFOEIxNzI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5oICovLAorCQkJCUUxRUU4QUU2MjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuY3BwICovLAorCQkJCUUxRUU4QUREMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCAqLywKKwkJCQlFMUVFOEFF
NTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmNwcCAqLywKKwkJCQlFMUVFOEFFMTI0MTJC
MTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggKi8sCisJCQkJRTFFRThBRDIyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwICovLAorCQkJCUUxRUU4QjE0MjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmggKi8sCisJCQkJRTFFRThBQ0UyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuY3BwICovLAorCQkJCUUxRUU4QUQ1MjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmggKi8sCisJCQkJRTFFRThBQ0QyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwICovLAorCQkJCUUxRUU4QjA2MjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi8sCisJCQkJRTFFRThCMTMy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbkluaXQuaCAqLywKKwkJCQlFMUVFOEFGRTI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uTW9kZS5oICovLAorCQkJCUUxRUU4QUY4MjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEFDRjI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oICovLAorCQkJCUUxRUU4QUU4MjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlN5c3RlbS5jcHAgKi8sCisJCQkJRTFFRThBRTIyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSU3lzdGVtLmggKi8sCisJCQkJRTFFRThCMTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
Vmlldy5jcHAgKi8sCisJCQkJRTFFRThBRTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5o
ICovLAorCQkJCUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3Bw
ICovLAorCQkJCUUxRUU4QUM3MjQxMkIxNkYwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCAq
LywKKwkJCQlFMUVFOEFFQjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5jcHAgKi8s
CisJCQkJRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuaCAqLywKKwkJ
CQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJXZWJHTExheWVyLmNwcCAqLywKKwkJ
CQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRs
ICovLAorCQkJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRN
b2RlLmggKi8sCisJCQkJRTFFRThBREEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaWRsICovLAorCQkJCUUxRUU4QUY1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5o
ICovLAorCQkJCUUxRUU4QjAzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5pZGwgKi8sCisJCQkJ
RTFFRThCMEMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUuaWRsICovLAorCQkJCUUxRUU4QUU5
MjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi8sCisJCQkJRTFF
RThBRkIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovLAor
CQkJCUUxRUU4QUVFMjQxMkIxNzAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCAqLywKKwkJCQlF
MUVFOEIwNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmlkbCAqLywKKwkJCQlFMUVF
OEFFRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5pZGwgKi8sCisJCQkJRTFFRThC
MTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VBcnJheS5pZGwgKi8sCisJCQkJRTFF
RThBQ0MyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5jcHAgKi8sCisJCQkJ
RTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oICovLAorCQkJ
CUUxRUU4QjAwMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaWRsICovLAor
CQkJCUUxRUU4QUU0MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50
LmlkbCAqLywKKwkJCQlFMUVFOEIxNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJQb3NlLmlkbCAqLywK
KwkJCQlFMUVFOEFGNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5pZGwgKi8s
CisJCQkJRTFFRThBRjMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5j
cHAgKi8sCisJCQkJRTFFRThBREIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VF
dmVudC5oICovLAorCQkJCUUxRUU4QUQwMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaWRsICovLAorCQkJCUUxRUU4QUM5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVy
ZW5jZVNwYWNlVHlwZS5oICovLAorCQkJCUUxRUU4QUZBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJl
ZmVyZW5jZVNwYWNlVHlwZS5pZGwgKi8sCisJCQkJRTFFRThBRjIyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUmVuZGVyU3RhdGUuaWRsICovLAorCQkJCUUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlJlbmRlclN0YXRlSW5pdC5oICovLAorCQkJCUUxRUU4QUVDMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlJlbmRlclN0YXRlSW5pdC5pZGwgKi8sCisJCQkJRTFFRThCMDEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUmlnaWRUcmFuc2Zvcm0uaWRsICovLAorCQkJCUUxRUU4QjBGMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlNlc3Npb24uY3BwICovLAorCQkJCUUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNl
c3Npb24uaCAqLywKKwkJCQlFMUVFOEFERTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmlk
bCAqLywKKwkJCQlFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3Bw
ICovLAorCQkJCUUxRUU4QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICov
LAorCQkJCUUxRUU4QUZEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5pZGwgKi8s
CisJCQkJRTFFRThBRDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaWRsICovLAor
CQkJCUUxRUU4QUM4MjQxMkIxNkYwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmlkbCAqLywKKwkJ
CQlFMUVFOEFENDI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5pZGwgKi8sCisJCQkJRTFFRThC
MDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmlkbCAqLywKKwkJCQlFMUVFOEFFQTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi8sCisJCQkJRTFFRThBRkYyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5pZGwgKi8sCisJCQkJRTFFRThBREYyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSVmlldy5pZGwgKi8sCisJCQkJRTFFRThBRUQyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSVmlld2VyUG9zZS5pZGwgKi8sCisJCQkJRTFFRThCMEEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSVmlld3BvcnQuaWRsICovLAorCQkJCUUxRUU4QUQ2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
c2liaWxpdHlTdGF0ZS5oICovLAorCQkJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
c2liaWxpdHlTdGF0ZS5pZGwgKi8sCisJCQkJRTFFRThCMDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
V2ViR0xMYXllci5oICovLAorCQkJCUUxRUU4QUZDMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdM
TGF5ZXIuaWRsICovLAorCQkJCUUxRUU4QjA4MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5
ZXJJbml0LmggKi8sCisJCQkJRTFFRThCMTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXll
ckluaXQuaWRsICovLAorCQkJCUUxRUU4QjE1MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYlhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QUY5MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLywKKwkJCSk7CisJCQlwYXRo
ID0gd2VieHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlFMUVFOEI2QjI0
MTJCMkE3MDBFNzk0RDYgLyogeHIgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUUxRUU4QjZEMjQxMkIyQTcwMEU3OTRENiAvKiBvcGVueHIgKi8sCisJCQkJ
RTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJCUUxRUU4
QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IHhyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJRTFFRThCNkQyNDEyQjJB
NzAwRTc5NEQ2IC8qIG9wZW54ciAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICov
LAorCQkJKTsKKwkJCXBhdGggPSBvcGVueHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQlFMUYwNDI0MzA5ODM5Mzg5MDA2Njk0RUEgLyogeG1sICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTMxNzA4LDYgKzMxOTU2LDcgQEAKIAkJCQk2
QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUVBNzI1RDYxQUNBQkQ1NzAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2
aWNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5h
dmlnYXRvcldlYkRyaXZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCNzgyNDEzMTkxRjAw
RTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEy
Mzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1NkQzNzQzMEFEQkE1REUwMEE0NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTIyLDYg
KzMyMTcxLDcgQEAKIAkJCQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1l
UmFuZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyog
UGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2QjA5QUM0RDRGMDBBNkFB
QjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3MjI0
MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEyQkU0
ODAxRkU4NjRBNzAwMjAzMUNDIC8qIFBsYXliYWNrRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDREEyOUEwOTFDQkQ5OUY0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEzMjFDQzAxQTk1MDA5MDFDQ0YgLyogUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNjYsNiArMzM0
MTYsMjEgQEAKIAkJCQk1RDIxQTgwMzEzRUNFNURGMDBCQjcwNjQgLyogV2ViVlRUUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMTBCNjk4MDE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9r
ZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUIxMEI2OTgyMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJW
VFRUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRE
NiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCOEEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI4NjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4ODI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJQb3NlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEJBNjI0MTMxOTYzMDBFNzk0RDYgLyog
V2ViWFJSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODEyNDEzMTkx
RjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4
QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUVFOEJBNTI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uSW5pdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUEyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lv
bk1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjdEMjQxMzE5MUYwMEU3OTRENiAvKiBX
ZWJYUlNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4OTI0MTMxOTFGMDBFNzk0RDYg
LyogV2ViWFJTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg3MjQxMzE5MUYwMEU3
OTRENiAvKiBXZWJYUlZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc2MjQxMzE5MUYw
MEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjk2
MjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
NTVCM0RFMDEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODUwMzFCNTEwQTQ0RUZDNzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFQkJDM0Q4MUI2NTk4ODMwMEY1MjUzRCAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzMyNjIsNiArMzM1MjcsMjEgQEAKIAkJCQkxQUI3RkM4
NDBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhVdGlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3
RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxRUU4QjlDMjQxMzE5NTAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50
QmxlbmRNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5NzI0MTMxOTUwMDBFNzk0RDYg
LyogWFJFeWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjhGMjQxMzE5NTAwMEU3OTRENiAv
KiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5MjI0
MTMxOTUwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVF
OEI5RjI0MTMxOTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZl
cmVuY2VTcGFjZVR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc5MjQxMzE5MUYwMEU3
OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCQTMy
NDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
OEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI5MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI4MjI0MTMxOTFGMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjlCMjQxMzE5NTAwMEU3OTRENiAvKiBYUldlYkdM
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjlFMjQxMzE5NTAwMEU3OTRENiAvKiBY
UldlYkdMTGF5ZXJJbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5OTI0MTMxOTUwMDBF
Nzk0RDYgLyogWFJXZWJYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NTIxN0UwMzBBNUVDRDQ3MDBEQjhEMDAgLyogWFNMSW1wb3J0UnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTNGMTk5RUMwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFN0eWxlU2hlZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxRjFFODMwMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5z
aW9ucy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzc5NSw2ICszNDA3NSw3IEBACiAJCQkJQ0RGMkIw
MTYxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJEOUJGNzQyMURCRkRDMjcwMDdBN0Q5OSAvKiBOYXZpZ2F0b3JFTUUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBNEJCMTAxOTU0RDYyNzAwRkE1QzJFIC8qIE5hdmlnYXRv
ckdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCOTQyNDEzMTk1MDAwRTc5NEQ2
IC8qIE5hdmlnYXRvcldlYlhSLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDEzMEQ3RTJC
ODIwMDdDMzk4MyAvKiBvYmpjX2NsYXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTYw
RDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfaW5zdGFuY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTU2OUQxODBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19ydW50aW1lLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0zMzgwMiw2ICszNDA4Myw4IEBACiAJCQkJRTE2OTgyNjAxMTM0NjM2QTAwODk0MTE1IC8q
IE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VBMjg0NjYyMTQxRTg0
OTAwRTQwN0U4IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQUExMkRGNDkxNzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0gaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI3MTI0MTJCMkE4MDBFNzk0RDYgLyogUGxh
dGZvcm1YUi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI3MDI0MTJCMkE4MDBFNzk0RDYg
LyogUGxhdGZvcm1YUi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEzMDFDQkY3NEQ0MDA5
MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDREEyOUExNjFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zNDQ2
MiwxMCArMzQ3NDUsMjkgQEAKIAkJCQlGMTIxNzFGNTE2QThDRUQyMDAwMDUzQ0EgLyogV2ViVlRU
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDIxQTgwMjEzRUNFNURGMDBCQjcwNjQg
LyogV2ViVlRUUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIxMEI2OTgxMTQwQzE3NDAw
MEJDMUMyNiAvKiBXZWJWVFRUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThC
ODAyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUxRUU4QjkzMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkExMjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUklu
cHV0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjhDMjQxMzE5MUYwMEU3OTRE
NiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThC
OEIyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MUVFOEI3RjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFMUVFOEI3QzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI3QjI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJSaWdpZFRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5ODI0MTMxOTUw
MDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4RTI0
MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxRUU4QjkxMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjgzMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUldl
YkdMTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzIxODdGNjVDNzAwREE2M0E2
IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBE
NTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNG
MjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1QTM2RDkx
MTA0NTcyNzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFMUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkEyMjQxMzE5NjMwMEU3OTRENiAvKiBY
UlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCODUyNDEzMTkxRjAwRTc5NEQ2
IC8qIFhSU2Vzc2lvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkE3MjQxMzE5
NjMwMEU3OTRENiAvKiBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAppbmRleCAzMDViY2Y1MTQ0ZTAyZTM2
MWU1ZDMyZjA0NzU0MTVlNThiODY1ZmYzLi45NGYzMTY1ZTFmMjdiYTAyY2E5ZDZiMzIyNDJjZDMx
MzRlYjEzMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKQEAgLTYyLDYgKzYyLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBJRExUeXBlIHsKICAgICB1c2luZyBJbXBs
ZW1lbnRhdGlvblR5cGUgPSBUOwogICAgIHVzaW5nIFN0b3JhZ2VUeXBlID0gVDsKKyAgICB1c2lu
ZyBTZXF1ZW5jZVN0b3JhZ2VUeXBlID0gVDsKIAogICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBU
OwogICAgIHVzaW5nIE51bGxhYmxlUGFyYW1ldGVyVHlwZSA9IE9wdGlvbmFsPEltcGxlbWVudGF0
aW9uVHlwZT47CkBAIC04Miw2ICs4Myw3IEBAIHN0cnVjdCBJRExVbnN1cHBvcnRlZFR5cGUgOiBJ
RExUeXBlPHZvaWQ+IHsgfTsKIHN0cnVjdCBJRExOdWxsIDogSURMVHlwZTxzdGQ6Om51bGxwdHJf
dD4geyB9OwogCiBzdHJ1Y3QgSURMQW55IDogSURMVHlwZTxKU0M6OlN0cm9uZzxKU0M6OlVua25v
d24+PiB7CisgICAgdXNpbmcgU2VxdWVuY2VTdG9yYWdlVHlwZSA9IEpTQzo6SlNWYWx1ZTsKICAg
ICB1c2luZyBQYXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIE51bGxhYmxl
UGFyYW1ldGVyVHlwZSA9IEpTQzo6SlNWYWx1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAppbmRleCBjNDlkZDkzOGZjZTI3MTY1
Zjc0N2U1OGZlMDhhNTUzZGJiZmRmNWMyLi44NmY3ZjI3NmZjMDhhZTA3YzAxMDAwMjIyZDM1OWYw
ZWZlYjVhZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgRGV0YWlsIHsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KIHN0cnVjdCBHZW5lcmljU2VxdWVuY2VDb252ZXJ0
ZXIgewotICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6SW1w
bGVtZW50YXRpb25UeXBlPjsKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gVmVjdG9yPHR5cGVuYW1l
IElETFR5cGU6OlNlcXVlbmNlU3RvcmFnZVR5cGU+OwogCiAgICAgc3RhdGljIFJldHVyblR5cGUg
Y29udmVydChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpT
T2JqZWN0KiBvYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDQ0ZDUwYjIwN2M1MzhhMTk3OTJiNGYzMjI2YWZl
NjUyODc3ODcyMDkuLjE4ODJhOWVmZmUyNDBjNDU5YmQ1ZDM0MjYxN2EwY2Q5MzNjMmQ4ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
QEAgLTIzNSw2ICsyMzUsMjUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFdvcmts
ZXRHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKFdyaXRhYmxlU3RyZWFtKSBcCiAgICAgbWFjcm8o
WE1MSHR0cFJlcXVlc3QpIFwKKyAgICBtYWNybyhYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSkgXAor
ICAgIG1hY3JvKFhSRnJhbWUpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlKSBcCisgICAgbWFj
cm8oWFJJbnB1dFNvdXJjZUFycmF5KSBcCisgICAgbWFjcm8oWFJJbnB1dFNvdXJjZUV2ZW50KSBc
CisgICAgbWFjcm8oWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCkgXAorICAgIG1hY3JvKFhSUG9z
ZSkgXAorICAgIG1hY3JvKFhSUmVmZXJlbmNlU3BhY2UpIFwKKyAgICBtYWNybyhYUlJlZmVyZW5j
ZVNwYWNlRXZlbnQpIFwKKyAgICBtYWNybyhYUlJlbmRlclN0YXRlKSBcCisgICAgbWFjcm8oWFJS
aWdpZFRyYW5zZm9ybSkgXAorICAgIG1hY3JvKFhSU2Vzc2lvbikgXAorICAgIG1hY3JvKFhSU2Vz
c2lvbkV2ZW50KSBcCisgICAgbWFjcm8oWFJTcGFjZSkgXAorICAgIG1hY3JvKFhSU3lzdGVtKSBc
CisgICAgbWFjcm8oWFJWaWV3KSBcCisgICAgbWFjcm8oWFJWaWV3ZXJQb3NlKSBcCisgICAgbWFj
cm8oWFJWaWV3cG9ydCkgXAorICAgIG1hY3JvKFhSV2ViR0xMYXllcikgXAogICAgIG1hY3JvKGFw
cGVuZEZyb21KUykgXAogICAgIG1hY3JvKGFzc29jaWF0ZWRSZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyKSBcCiAgICAgbWFjcm8oYXV0b0FsbG9jYXRlQ2h1bmtTaXplKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAppbmRleCBkNDk2MGI5Y2Y3NTFmNDExNDIyYjY3MDg0MWEwNWI4YmQyYzcxYzI4
Li41Y2VlZTZmNjgxNmRlZTlkNzk5Y2IxNTBlMTc1YWM1ZDdlZDRhYzc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyhpbmFjdGl2ZSkgXAog
ICAgIG1hY3JvKGlucHV0KSBcCisgICAgbWFjcm8oaW5wdXRzb3VyY2VzY2hhbmdlKSBcCiAgICAg
bWFjcm8oaW5zdGFsbCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKICAgICBtYWNybyhrZXlkb3du
KSBcCkBAIC0yMzEsNiArMjMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHNl
ZWtlZCkgXAogICAgIG1hY3JvKHNlZWtpbmcpIFwKICAgICBtYWNybyhzZWxlY3QpIFwKKyAgICBt
YWNybyhzZWxlY3RlbmQpIFwKICAgICBtYWNybyhzZWxlY3Rpb25jaGFuZ2UpIFwKICAgICBtYWNy
byhzZWxlY3RzdGFydCkgXAogICAgIG1hY3JvKHNoaXBwaW5nYWRkcmVzc2NoYW5nZSkgXApAQCAt
Mjg1LDEzICsyODcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8odmVyc2lvbmNo
YW5nZSkgXAogICAgIG1hY3JvKHZpc2liaWxpdHljaGFuZ2UpIFwKICAgICBtYWNybyh2b2x1bWVj
aGFuZ2UpIFwKLSAgICBtYWNybyh2cmRpc3BsYXlhY3RpdmF0ZSkgXAotICAgIG1hY3JvKHZyZGlz
cGxheWJsdXIpIFwKLSAgICBtYWNybyh2cmRpc3BsYXljb25uZWN0KSBcCi0gICAgbWFjcm8odnJk
aXNwbGF5ZGVhY3RpdmF0ZSkgXAotICAgIG1hY3JvKHZyZGlzcGxheWRpc2Nvbm5lY3QpIFwKLSAg
ICBtYWNybyh2cmRpc3BsYXlmb2N1cykgXAotICAgIG1hY3JvKHZyZGlzcGxheXByZXNlbnRjaGFu
Z2UpIFwKICAgICBtYWNybyh3YWl0aW5nKSBcCiAgICAgbWFjcm8od2FpdGluZ2ZvcmtleSkgXAog
ICAgIG1hY3JvKHdlYmdsY29udGV4dGNoYW5nZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4K
aW5kZXggYTU5MDg2MTA2OGY1ZTM3NjY3MTMyZmQxYWE0MmU2NzkxODE3ZDhhMC4uYWViMjM0YWEz
ZTQ2N2MzYWVjOWI0OGU5YjAwOGNlMWEwZTYzNjAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KQEAgLTg1LDMgKzg1LDcgQEAgTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9RU5D
UllQVEVEX01FRElBCiBQb2ludGVyRXZlbnQKIEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50IGNvbmRp
dGlvbmFsPVdFQkdQVQogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQgY29uZGl0aW9uYWw9UElD
VFVSRV9JTl9QSUNUVVJFX0FQSQorWFJJbnB1dFNvdXJjZUV2ZW50IGNvbmRpdGlvbmFsPVdFQlhS
CitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQlhSCitYUlJlZmVyZW5j
ZVNwYWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKK1hSU2Vzc2lvbkV2ZW50IGNvbmRpdGlvbmFs
PVdFQlhSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5
LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA4MWU3
Y2M5ZjBiNzY1MDU2MmFhYmZlZmUwNWE1YTNhZDFiYmJiOGZmLi44MzdlYjVkY2QwZTk5NWNhMDIy
NGVjZmViZTcwYmNlMWViODMzYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KQEAgLTU4LDQgKzU4LDYgQEAgV29ya2VyCiBXb3JrbGV0R2xvYmFsU2NvcGUgY29u
ZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSQogWE1MSHR0cFJlcXVlc3QKIFhNTEh0dHBSZXF1ZXN0
VXBsb2FkCi0KK1dlYlhSU2Vzc2lvbiBjb25kaXRpb25hbD1XRUJYUgorV2ViWFJTcGFjZSBjb25k
aXRpb25hbD1XRUJYUgorV2ViWFJTeXN0ZW0gY29uZGl0aW9uYWw9V0VCWFIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggNWQxYWZkYmVkNTVlMzZm
ZWIxMGY0ZTM1MDM3MTAyNjlmMzdlZTlhZS4uZGU3ZTM4ZDI1ZWIyMzNjODg1YTgxNGZkY2MyMmM2
YmMzOGM0NTI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKQEAgLTEzOCw2ICsxMzgsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVjdG9y
QWRkaXRpb25zRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2luc3BlY3RvckFkZGl0aW9uc0Vu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQ7IH0KIAorI2lmIEVO
QUJMRShXRUJYUikKKyAgICB2b2lkIHNldFdlYlhSRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBt
X3dlYlhSRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgd2ViWFJFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV93ZWJYUkVuYWJsZWQ7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBzZXRBY2Nl
c3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYWNjZXNzaWJp
bGl0eU9iamVjdE1vZGVsRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgYWNjZXNzaWJp
bGl0eU9iamVjdE1vZGVsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eU9i
amVjdE1vZGVsRW5hYmxlZDsgfQogCkBAIC00NDYsNiArNDUxLDkgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNXZWJTb2NrZXRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mZXRjaEFQSUtl
ZXBBbGl2ZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbnNwZWN0b3JBZGRpdGlvbnNF
bmFibGVkIHsgZmFsc2UgfTsKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgYm9vbCBtX3dlYlhSRW5h
YmxlZCB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1fYWNjZXNzaWJpbGl0eU9iamVjdE1v
ZGVsRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FyaWFSZWZsZWN0aW9uRW5hYmxlZCB7
IHRydWUgfTsKICAgICBib29sIG1faXRwRGVidWdNb2RlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcyNjhlZTY3N2EzNzlh
NmJmNTUxNzBiOTkwNGYzM2JiZTc3MWFmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhLCBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtWFIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hy
L1BsYXRmb3JtWFIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMDg4M2JkNTJkYmY3NTgxYTg1OGM5MjFmZDI1YWIwMGI5ODZiN2I5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhLCBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBQbGF0Zm9ybVhSIHsKKworZW51bSBjbGFzcyBTZXNzaW9uTW9kZSB7CisgICAg
SW5saW5lLAorICAgIEltbWVyc2l2ZVZyLAorICAgIEltbWVyc2l2ZUFyLAorfTsKKworI2lmIEVO
QUJMRShXRUJYUikKKworY2xhc3MgRGV2aWNlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERldmlj
ZT4geworcHVibGljOgorfTsKKworY2xhc3MgSW5zdGFuY2UgeworcHVibGljOgorICAgIHN0YXRp
YyBJbnN0YW5jZSYgc2luZ2xldG9uKCk7CisKK3ByaXZhdGU6CisgICAgSW5zdGFuY2UoKTsKKyAg
ICB+SW5zdGFuY2UoKTsKKworICAgIHN0cnVjdCBJbXBsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
bXBsPiBtX2ltcGw7Cit9OworCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQorCit9IC8vIG5hbWVz
cGFjZSBQbGF0Zm9ybVhSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9v
cGVueHIvUGxhdGZvcm1YUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIv
UGxhdGZvcm1YUi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E0ZjRjMmMxOGYzYTNkZTEzMWI4NzQ5MzExYTQx
YWVmZWJiZWQ1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hy
L29wZW54ci9QbGF0Zm9ybVhSLmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1YUi5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaWYgVVNFX09QRU5YUgorI2luY2x1
ZGUgPG9wZW54ci9vcGVueHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0
ZU51bWJlcnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNlbmRpZiAvLyBV
U0VfT1BFTlhSCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBQ
bGF0Zm9ybVhSIHsKKworI2lmIFVTRV9PUEVOWFIKKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgWHJT
dHJ1Y3R1cmVUeXBlIFN0cnVjdHVyZVR5cGU+CitUIGNyZWF0ZVN0cnVjdHVyZSgpCit7CisgICAg
VCBvYmplY3Q7CisgICAgc3RkOjptZW1zZXQoJm9iamVjdCwgMCwgc2l6ZW9mKFQpKTsKKyAgICBv
YmplY3QudHlwZSA9IFN0cnVjdHVyZVR5cGU7CisgICAgb2JqZWN0Lm5leHQgPSBudWxscHRyOwor
ICAgIHJldHVybiBvYmplY3Q7Cit9CisKK1N0cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2
YWx1ZSwgWHJJbnN0YW5jZSBpbnN0YW5jZSkKK3sKKyAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVT
VUxUX1NUUklOR19TSVpFXTsKKyAgICBYclJlc3VsdCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5n
KGluc3RhbmNlLCB2YWx1ZSwgYnVmZmVyKTsKKyAgICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1Mp
CisgICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygi
PHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKK30KKworI2RlZmluZSBSRVRVUk5fSUZfRkFJ
TEVEKHJlc3VsdCwgY2FsbCwgaW5zdGFuY2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKFhSX0ZBSUxFRChyZXN1bHQpKSB7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyAlczogJXNcbiIsIF9fZnVu
Y19fLCBjYWxsLCByZXN1bHRUb1N0cmluZyhyZXN1bHQsIGluc3RhbmNlKS51dGY4KCkuZGF0YSgp
KTsgXAorICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKworI2VuZGlmIC8vIFVT
RV9PUEVOWFIKKworc3RydWN0IEluc3RhbmNlOjpJbXBsIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBJbXBsKCk7CisgICAgfkltcGwoKTsKKworI2lmIFVTRV9P
UEVOWFIKKyAgICBYckluc3RhbmNlIG1faW5zdGFuY2UgeyBYUl9OVUxMX0hBTkRMRSB9OworI2Vu
ZGlmIC8vIFVTRV9PUEVOWFIKK307CisKK0luc3RhbmNlOjpJbXBsOjpJbXBsKCkKK3sKKyNpZiBV
U0VfT1BFTlhSCisgICAgV1RGTG9nQWx3YXlzKCJPcGVuWFI6IGluaXRpYWxpemluZ1xuIik7CisK
KyAgICBbJl0geworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50T3V0cHV0IHsgMCB9Owor
ICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygw
LCAmcHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJFVFVSTl9JRl9GQUlM
RUQocmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2Up
OworCisgICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1dCkgeworICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpOiBubyBwcm9wZXJ0aWVz
XG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxY
ckFwaUxheWVyUHJvcGVydGllcz4gcHJvcGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0KTsKKyAg
ICAgICAgcmVzdWx0ID0geHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMocHJvcGVydHlDb3Vu
dE91dHB1dCwgbnVsbHB0ciwgcHJvcGVydGllcy5kYXRhKCkpOworICAgICAgICBSRVRVUk5fSUZf
RkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCkiLCBtX2luc3Rh
bmNlKTsKKworICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0
aWVzKCk6ICV6dSBwcm9wZXJ0aWVzXG4iLCBwcm9wZXJ0aWVzLnNpemUoKSk7CisgICAgfSgpOwor
CisgICAgWyZdIHsKKyAgICAgICAgdWludDMyX3QgcHJvcGVydHlDb3VudE91dHB1dCB7IDAgfTsK
KyAgICAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblBy
b3BlcnRpZXMobnVsbHB0ciwgMCwgJnByb3BlcnR5Q291bnRPdXRwdXQsIG51bGxwdHIpOworICAg
ICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyRW51bWVyYXRlSW5zdGFuY2VFeHRlbnNp
b25Qcm9wZXJ0aWVzKCkiLCBtX2luc3RhbmNlKTsKKworICAgICAgICBpZiAoIXByb3BlcnR5Q291
bnRPdXRwdXQpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVtZXJhdGVJbnN0YW5j
ZUV4dGVuc2lvblByb3BlcnRpZXMoKTogbm8gcHJvcGVydGllc1xuIik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8WHJFeHRlbnNpb25Qcm9wZXJ0aWVz
PiBwcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRwdXQsCisgICAgICAgICAgICBbXSB7CisgICAg
ICAgICAgICAgICAgWHJFeHRlbnNpb25Qcm9wZXJ0aWVzIG9iamVjdDsKKyAgICAgICAgICAgICAg
ICBzdGQ6Om1lbXNldCgmb2JqZWN0LCAwLCBzaXplb2YoWHJFeHRlbnNpb25Qcm9wZXJ0aWVzKSk7
CisgICAgICAgICAgICAgICAgb2JqZWN0LnR5cGUgPSBYUl9UWVBFX0VYVEVOU0lPTl9QUk9QRVJU
SUVTOworICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAgICAgICB9KCkpOwor
ICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50V3JpdHRlbiB7IDAgfTsKKyAgICAgICAgcmVz
dWx0ID0geHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMobnVsbHB0ciwgcHJv
cGVydHlDb3VudE91dHB1dCwgJnByb3BlcnR5Q291bnRXcml0dGVuLCBwcm9wZXJ0aWVzLmRhdGEo
KSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVJbnN0YW5j
ZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIFdURkxvZ0Fs
d2F5cygieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKTogJXp1IGV4dGVu
c2lvbiBwcm9wZXJ0aWVzXG4iLCBwcm9wZXJ0aWVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0
byYgcHJvcGVydHkgOiBwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiAg
ZXh0ZW5zaW9uICclcycsIHZlcnNpb24gJXVcbiIsCisgICAgICAgICAgICAgICAgcHJvcGVydHku
ZXh0ZW5zaW9uTmFtZSwgcHJvcGVydHkuZXh0ZW5zaW9uVmVyc2lvbik7CisgICAgICAgIH0KKyAg
ICB9KCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc19hcHBsaWNhdGlvbk5hbWUgPSAiV2Vi
WFIgKFdlYktpdCkiOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2FwcGxpY2F0aW9uVmVy
c2lvbiA9IDE7CisKKyAgICB7CisgICAgICAgIGF1dG8gY3JlYXRlSW5mbyA9IGNyZWF0ZVN0cnVj
dHVyZTxYckluc3RhbmNlQ3JlYXRlSW5mbywgWFJfVFlQRV9JTlNUQU5DRV9DUkVBVEVfSU5GTz4o
KTsKKyAgICAgICAgY3JlYXRlSW5mby5jcmVhdGVGbGFncyA9IDA7CisgICAgICAgIHN0ZDo6bWVt
Y3B5KGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwcGxpY2F0aW9uTmFtZSwgc19hcHBsaWNh
dGlvbk5hbWUsIFhSX01BWF9BUFBMSUNBVElPTl9OQU1FX1NJWkUpOworICAgICAgICBjcmVhdGVJ
bmZvLmFwcGxpY2F0aW9uSW5mby5hcGlWZXJzaW9uID0gWFJfQ1VSUkVOVF9BUElfVkVSU0lPTjsK
KyAgICAgICAgY3JlYXRlSW5mby5hcHBsaWNhdGlvbkluZm8uYXBwbGljYXRpb25WZXJzaW9uID0g
c19hcHBsaWNhdGlvblZlcnNpb247CisgICAgICAgIGNyZWF0ZUluZm8uZW5hYmxlZEFwaUxheWVy
Q291bnQgPSAwOworICAgICAgICBjcmVhdGVJbmZvLmVuYWJsZWRFeHRlbnNpb25Db3VudCA9IDA7
CisKKyAgICAgICAgWHJJbnN0YW5jZSBpbnN0YW5jZTsKKyAgICAgICAgWHJSZXN1bHQgcmVzdWx0
ID0geHJDcmVhdGVJbnN0YW5jZSgmY3JlYXRlSW5mbywgJmluc3RhbmNlKTsKKyAgICAgICAgUkVU
VVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckNyZWF0ZUluc3RhbmNlKCkiLCBtX2luc3RhbmNlKTsK
KworICAgICAgICBtX2luc3RhbmNlID0gaW5zdGFuY2U7CisgICAgICAgIFdURkxvZ0Fsd2F5cygi
eHJDcmVhdGVJbnN0YW5jZSgpOiB1c2luZyBpbnN0YW5jZSAlcFxuIiwgbV9pbnN0YW5jZSk7Cisg
ICAgfQorI2VuZGlmIC8vIFVTRV9PUEVOWFIKK30KKworSW5zdGFuY2U6OkltcGw6On5JbXBsKCkK
K3sKK30KKworSW5zdGFuY2UmIEluc3RhbmNlOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBM
YXp5TmV2ZXJEZXN0cm95ZWQ8SW5zdGFuY2U+IHNfaW5zdGFuY2U7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIHNfb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uoc19vbmNlRmxhZywKKyAg
ICAgICAgWyZdIHsKKyAgICAgICAgICAgIHNfaW5zdGFuY2UtPm1faW1wbCA9IG1ha2VVbmlxdWU8
SW1wbD4oKTsKKyAgICAgICAgfSk7CisgICAgcmV0dXJuIHNfaW5zdGFuY2UuZ2V0KCk7Cit9CisK
K0luc3RhbmNlOjpJbnN0YW5jZSgpID0gZGVmYXVsdDsKK0luc3RhbmNlOjp+SW5zdGFuY2UoKSA9
IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFBsYXRmb3JtWFIKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFl
ODAxYjQuLmZkMGM5OWE0YzJkNzM1ZmMxMTBlMWI1ZTdmNDcyZmQ1ZDFiNWFiMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtNDE0LDQgKzQxNCw2IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBF
TkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9Y
U0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURf
VFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkg
JChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkg
JChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RF
X0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkp
ICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElO
R19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0p
ICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJ
T04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZF
UkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxF
X1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NV
RkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChF
TkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdF
KSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAk
KEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChF
TkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FM
TCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9O
VFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChF
TkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVO
KSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklW
RVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJB
Q1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUp
ICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5B
QkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfV0VC
WFIgPSBFTkFCTEVfV0VCWFI7CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5T
Rk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJ
TElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BB
WV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQ
TEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJM
RV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05J
Q19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZ
UEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVO
QUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVS
RV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9H
UFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVD
VE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9J
T1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZB
TElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFT
KSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVR
VUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVO
QUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05f
TUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVf
UkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9Y
X0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JF
U09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikg
JChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxF
X1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxF
X1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVN
RU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQo
RU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZF
Ul9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQo
RU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVf
V0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xU
KSAkKEVOQUJMRV9XRUJYUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFt
bAppbmRleCAwYjNjZTk0M2FjMzA1MDhlMDRjZGIwYzcxMTAyMWZjNWY3NDdiNGY4Li40NzFiMTkz
ZWY1MGM1ODFkMzM0MzBiODg2NzUxNWZiYzdlMmY3MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTE5ODIsNiArMTk4MiwxNSBAQCBJbmNyZW1lbnRhbFBE
RkxvYWRpbmdFbmFibGVkOgogICBjb25kaXRpb246IEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMp
CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAKK1dlYlhSRW5hYmxl
ZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVO
YW1lOiAiV2ViWFIgRGV2aWNlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWRk
cyBzdXBwb3J0IGZvciBhY2Nlc3NpbmcgdmlydHVhbCByZWFsaXR5IChWUikgYW5kIGF1Z21lbnRl
ZCByZWFsaXR5IChBUikgZGV2aWNlcywgaW5jbHVkaW5nIHNlbnNvcnMgYW5kIGhlYWQtbW91bnRl
ZCBkaXNwbGF5cywgb24gdGhlIFdlYiIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjb25kaXRpb246IEVOQUJMRShX
RUJYUikKKwogIyBEZXByZWNhdGVkCiAKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmNwcAppbmRleCBmZjA0NDI0MTc2M2MzMGM1MDlmOTgyYTdkMmQ2ZGY2ZjcwN2U5Y2ZmLi5lYzdj
MDZkNWNiNjc3MDIxYTRhNTk3ODI0MmUyMTEwMTRjYzcwMDBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAgLTIyOCw0
ICsyMjgsMTggQEAgYm9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFdFQlhSKQorCitib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQorewor
I2lmIEhBVkUoSEFWRV9TWVNURU1fRkVBVFVSRV9GTEFHUykKKyAgICByZXR1cm4gb3NfZmVhdHVy
ZV9lbmFibGVkKFdlYktpdCwgV2ViWFIpOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
CmluZGV4IDcxN2NmMjQ2NWY0NDU2ZDJiNTBiZjcyNzBmZGExZmFmNmQ1NDA4YjUuLjI5NTVhMDk0
ZDY0MzZiZmM5NmJmZDY1ZGY0NmZjZWE5MTE2OTljMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zMzIsNCArMzMyLDgg
QEAgYm9vbCBkZWZhdWx0SW5BcHBCcm93c2VyUHJpdmFjeSgpOwogYm9vbCBkZWZhdWx0SW5jcmVt
ZW50YWxQREZFbmFibGVkKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKK2Jvb2wgZGVm
YXVsdFdlYlhSRW5hYmxlZCgpOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKaW5kZXggNTYxNWI5OTFiMzNmYmRkMmIwNjU5MWU3OWI1OTA2YzgzNGYz
ZjJkMC4uZjNlNmFiNzU1YjcyYzczOTNkZmRhYTVkMjhmMTA5NTNjZmM1YmQxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCkBAIC0yODksNiArMjg5LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92
ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdl
CiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0T2Zm
c2NyZWVuQ2FudmFzRW5hYmxlZChlbmFibGVkKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQlhS
KQorICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRXZWJYUkVuYWJsZWQiKQorICAgICAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlhSRW5hYmxlZChl
bmFibGVkKTsKKyNlbmRpZgorCiAgICAgLy8gTWFwIHRoZSBuYW1lcyB1c2VkIGluIExheW91dFRl
c3RzIHdpdGggdGhlIG5hbWVzIHVzZWQgaW4gV2ViQ29yZTo6U2V0dGluZ3MgYW5kIFdlYlByZWZl
cmVuY2VzU3RvcmUuCiAjZGVmaW5lIEZPUl9FQUNIX09WRVJSSURFX0JPT0xfUFJFRkVSRU5DRSht
YWNybykgXAogICAgIG1hY3JvKFdlYktpdEphdmFFbmFibGVkLCBKYXZhRW5hYmxlZCwgamF2YUVu
YWJsZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMWJhNzg5YWQxYTMxYzQwMGNhYjE3ZTAzZWYyY2I0M2E2MTA4YzMwOS4uNjQ4ZmMyMTdl
YjMzMDY4NjY2MGI5ZWE2MzUyYzlmMzllMWVlZmUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcxMCw3ICs3MTAsNyBAQCBXZWJQYWdlOjpX
ZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiAgICAgICAgIG1fcGFnZS0+ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmlu
ZygpOwogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKHBhcmFtZXRlcnMuZW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQpCi0gICAgICAgIGVuYWJsZUVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXMoKTsKKyAgICAgICAgbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigp
LmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmIChhdXRvKiBjYXB0
dXJlTWFuYWdlciA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI+KCkpCkBAIC03NDksMjEgKzc0OSw2IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiB9CiAKLSNpZiBFTkFCTEUoV0VCX1JU
QykKLQotI2lmIFVTRShMSUJXRUJSVEMpCi12b2lkIFdlYlBhZ2U6OmRpc2FibGVFbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkKLXsKLSAgICBtX3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVy
KCkuZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsKLX0KLQotdm9pZCBX
ZWJQYWdlOjplbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkKLXsKLSAgICBt
X3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcygpOwotfQotI2VuZGlmCi0jZW5kaWYKLQogdm9pZCBXZWJQYWdlOjpzdG9wQWxsTWVk
aWFQbGF5YmFjaygpCiB7CiAgICAgbV9wYWdlLT5zdG9wQWxsTWVkaWFQbGF5YmFjaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDhmYTBiMmE1ZjRl
NGRmMjZlYTczY2U0NjA1MzM2YmE1MDJiNTg4NjkuLjBjMDViZmFmODdmODRjOWIzNDZkNjQ0YWEz
ZDE5ODNjZjhjYjg3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTE1NzgsMTEgKzE1NzgsNiBAQCBwcml2YXRlOgogCiAjZW5kaWYKIAotI2lmIEVO
QUJMRShXRUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQotICAgIHZvaWQgZGlzYWJsZUVudW1lcmF0
aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsKLSAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXMoKTsKLSNlbmRpZgotCiAgICAgdm9pZCBzdG9wQWxsTWVkaWFQbGF5
YmFjaygpOwogICAgIHZvaWQgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKTsKICAgICB2b2lkIHJl
c3VtZUFsbE1lZGlhUGxheWJhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDA0ZmM0MjUyMjhlNjJhNTM1YjMx
NGJhMDI3YjZiM2Y0NTcwZjRiZjguLmU2MDFjZmY3MmIzNGJmMDRkMGUwM2FhYWM1NWJmNmVhYjM1
ZDk5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMzcwLDExICszNzAsNiBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZQogICAgIENhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAjZW5kaWYKIAotI2lmIEVOQUJMRShX
RUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQotICAgIEVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMoKQotICAgIERpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
KCkKLSNlbmRpZgotCiAgICAgU3RvcEFsbE1lZGlhUGxheWJhY2soKTsKICAgICBTdXNwZW5kQWxs
TWVkaWFQbGF5YmFjaygpOwogICAgIFJlc3VtZUFsbE1lZGlhUGxheWJhY2soKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4
MWU4MDFiNC4uZmQwYzk5YTRjMmQ3MzVmYzExMGUxYjVlN2Y0NzJmZDVkMWI1YWIxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQxNCw0ICs0MTQsNiBAQCBFTkFCTEVfV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAog
RU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9B
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVf
QVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVO
QUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1Qp
ICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVO
QUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVf
Q1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVf
Q1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJM
RV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xP
T1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklM
VEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9J
Tl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJM
RV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChF
TkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5B
QkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9D
QVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NF
U1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVf
U1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dI
SUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVF
Tl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVT
T0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxF
X1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxF
X1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFS
RUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVU
RUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykg
JChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9f
UFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19V
U0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVf
V0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
QkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAk
KEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5B
QkxFX1hTTFQpOworRU5BQkxFX1dFQlhSID0gRU5BQkxFX1dFQlhSOworCitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVf
UEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NF
U1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNB
VElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZf
Q0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQp
ICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lU
SU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVT
T0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5H
X1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
ICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNV
RV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFD
VElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQp
ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVT
KSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElP
Tl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9V
Q0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9M
RUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NP
TF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRU
RVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChF
TkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJ
QV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1Q
TEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVf
TkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktf
Q0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNI
KSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVS
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFO
RElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09O
TkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIp
ICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykg
JChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBI
T05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNT
QUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJf
TU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJ
T05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJH
TCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9BUElfU1RB
VElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxF
X1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfV0VCWFIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL0ZpbmRPcGVuWFIuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFr
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYmZkZjA0YzExZWRkMDM5MDBmYzRjMTQyY2U3NmE2NjE0ODMwZjZlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIuY21ha2UKQEAgLTAsMCAr
MSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIE9wZW5YUi4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwg
ZGVmaW5lCisjCisjICBPUEVOWFJfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIE9QRU5YUl9J
TkNMVURFX0RJUlMgLSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIE9QRU5YUl9MSUJS
QVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxOSBJ
Z2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tf
bW9kdWxlcyhQQ19PUEVOWFIgUVVJRVQgb3BlbnhyKQorCitmaW5kX3BhdGgoT1BFTlhSX0lOQ0xV
REVfRElSUworICAgIE5BTUVTIG9wZW54ci9vcGVueHIuaAorICAgIEhJTlRTICR7UENfT1BFTlhS
X0lOQ0xVREVESVJ9ICR7UENfT1BFTlhSX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5
KE9QRU5YUl9MSUJSQVJJRVMKKyAgICBOQU1FUyBvcGVueHJfbG9hZGVyCisgICAgSElOVFMgJHtQ
Q19PUEVOWFJfTElCRElSfSAke1BDX09QRU5YUl9MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNf
YWR2YW5jZWQoT1BFTlhSX0lOQ0xVREVfRElSUyBPUEVOWFJfTElCUkFSSUVTKQorCitpbmNsdWRl
KEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFu
ZGFyZF9hcmdzKE9wZW5YUiBSRVFVSVJFRF9WQVJTIE9QRU5YUl9JTkNMVURFX0RJUlMgT1BFTlhS
X0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXggZDNlMDhjODdmNDU4YTA3OWU1MDYx
MDY5NDg0ODk5MTY5ZjE3NzRmZC4uNTcyYzdlZGZmYTZjYTAwM2FmMjQzNThhN2MwNTE1NDVlNTIz
ZDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291
cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTQ5LDYgKzQ5LDkgQEAgV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1hTTFQgUFVCTElDIE9OKQogIyBDaGFuZ2luZyB0
aGVzZSBvcHRpb25zIGlzIGNvbXBsZXRlbHkgdW5zdXBwb3J0ZWQuCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVNZTkNfU0NST0xMSU5HIFBSSVZBVEUgT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVVUT0NBUElUQUxJWkUgUFJJVkFU
RSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfQ09OSUNf
R1JBRElFTlRTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfQ1NTX1BBSU5USU5HX0FQSSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFU
VVJFU30pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1RZUEVE
X09NIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DT05URU5UX0VYVEVOU0lPTlMgUFJJVkFURSBP
TikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MQVlPVVRfRk9STUFU
VElOR19DT05URVhUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TVFJFQU0gUFJJVkFU
RSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQpAQCAtNjIsOSArNjUsNyBAQCBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU01PT1RIX1NDUk9MTElORyBQUklW
QVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9F
VkVOVFMgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9XRUJHTDIgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9SVEMgUFJJVkFURSAke0VOQUJM
RV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0NTU19QQUlOVElOR19BUEkgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxf
RkVBVFVSRVN9KQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19U
WVBFRF9PTSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCi1XRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUyBQUklW
QVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQlhSIFBS
SVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIAogIyBQdWJsaWMgb3B0aW9u
cyBzcGVjaWZpYyB0byB0aGUgV1BFIHBvcnQuIERvIG5vdCBhZGQgYW55IG9wdGlvbnMgaGVyZSB1
bmxlc3MKICMgdGhlcmUgaXMgYSBzdHJvbmcgcmVhc29uIHdlIHNob3VsZCBzdXBwb3J0IGNoYW5n
aW5nIHRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLApAQCAtMTcxLDYgKzE3MiwxMSBAQCBpZiAoRU5B
QkxFX1dQRV9RVF9BUEkgT1IgVVNFX1dQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAg
ICBmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8gMS41LjAgUkVRVUlSRUQpCiBlbmRpZiAoKQog
CitpZiAoRU5BQkxFX1dFQlhSKQorICAgIGZpbmRfcGFja2FnZShPcGVuWFIgMS4wIFJFUVVJUkVE
KQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOWFIgJHtPcGVuWFJfRk9VTkR9
KQorZW5kaWYgKCkKKwogYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV1BFX189MSkKIGFkZF9k
ZWZpbml0aW9ucygtREdFVFRFWFRfUEFDS0FHRT0iV1BFIikKIGFkZF9kZWZpbml0aW9ucygtREpT
Q19HTElCX0FQSV9FTkFCTEVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1
cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IGZmN2Q2
ZDFjNzBmOWQxMzAwN2JkZjdkNDZlNjRkMDdkNzc1NmYwZjguLmI1OTE5NjUxMTk4ZjJlMzgyNWRj
YTliODNlZjZkYjdlMzVhMjhjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTIz
MCw2ICsyMzAsNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9XRUJfQVVUSE4gIlRvZ2dsZSBXZWIgQXV0aE4gc3VwcG9ydCIgUFJJ
VkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQl9DUllQVE8gIlRv
Z2dsZSBXZWJDcnlwdG8gU3VidGxlLUNyeXB0byBzdXBwb3J0IiBQUklWQVRFIE9OKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9XRUJfUlRDICJUb2dnbGUgV2ViUlRDIHN1cHBvcnQi
IFBSSVZBVEUgT0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9XRUJYUiAiVG9n
Z2xlIFdlYlhSIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5F
KEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgIlRvZ2dsZSB3aXJlbGVzcyBwbGF5YmFj
ayB0YXJnZXQgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX1hTTFQgIlRvZ2dsZSBYU0xUIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lU
X09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTV9NQUxMT0MgIlRvZ2dsZSBzeXN0ZW0gYWxsb2NhdG9y
IGluc3RlYWQgb2YgV2ViS2l0J3MgY3VzdG9tIGFsbG9jYXRvciIgUFJJVkFURSAke1VTRV9TWVNU
RU1fTUFMTE9DX0RFRkFVTFR9KQpAQCAtMjU3LDYgKzI1OCw3IEBAIG1hY3JvKFdFQktJVF9PUFRJ
T05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1ZJREVPX1RSQUNLIEVO
QUJMRV9WSURFTykKICAgICBXRUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfVklERU9fVVNFU19F
TEVNRU5UX0ZVTExTQ1JFRU4gRU5BQkxFX1ZJREVPKQogICAgIFdFQktJVF9PUFRJT05fREVQRU5E
KEVOQUJMRV9UT1VDSF9TTElERVIgRU5BQkxFX1RPVUNIX0VWRU5UUykKKyAgICBXRUJLSVRfT1BU
SU9OX0RFUEVORChFTkFCTEVfV0VCWFIgRU5BQkxFX1dFQkdMKQogZW5kbWFjcm8oKQogCiBtYWNy
byhfV0VCS0lUX09QVElPTl9FTkZPUkNFX0RFUEVORFMgX25hbWUpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2FkNWIwNjAyY2E0OGE0OTM1MzMx
MDE3YWZlMDRjNmYwZGNjODZmZi4uYmMyYjNiMWM3MzdjZjZkOGUzMWZlZjQwZGVkMDExNTJkYzY0
ZTM0MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNv
bmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOiBBZGRlZCBXZWJY
Ui4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnOiBBZGRlZCBFTkFCTEVfV0VCWFIuCisKIDIwMjAtMDMtMTEgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEZvcm1hbGl6ZSB0
aGUgS2V5Y2hhaW4gc2NoZW1hCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
aW5kZXggMWM4NDAxNWNhZmJjNTJlYzllYjViNzIyNmY2OTgzOThjYzVlNWYwYi4uNzYzYWEyZTgz
MjkxNzBlY2JjNjg3MGY0Y2M5NmI5MzBhNjE3MzlhZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbQpAQCAtMTg5LDYgKzE4OSw3IEBAIG15ICgKICAgICAkd2ViZ2wyU3Vw
cG9ydCwKICAgICAkd2ViZ2xTdXBwb3J0LAogICAgICR3ZWJncHVTdXBwb3J0LAorICAgICR3ZWJY
UlN1cHBvcnQsCiAgICAgJHdpcmVsZXNzUGxheWJhY2tUYXJnZXRTdXBwb3J0LAogICAgICR4c2x0
U3VwcG9ydCwKICk7CkBAIC01OTUsNiArNTk2LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsg
b3B0aW9uID0+ICJ3ZWJncHUiLCBkZXNjID0+ICJUb2dnbGUgV2ViR1BVIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCR1BVIiwgdmFsdWUgPT4gXCR3ZWJncHVTdXBwb3J0IH0s
CiAKKyAgICB7IG9wdGlvbiA9PiAid2VieHIiLCBkZXNjID0+ICJUb2dnbGUgV2ViWFIgc3VwcG9y
dCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJYUiIsIHZhbHVlID0+IFwkd2ViWFJTdXBw
b3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAid2ViLWFwaS1zdGF0aXN0aWNzIiwgZGVzYyA9PiAi
VG9nZ2xlIFdlYiBBUEkgc3RhdGlzdGljcyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1dFQl9BUElfU1RBVElTVElDUyIsIHZhbHVlID0+IFwkd2ViQVBJU3RhdGlzdGljc1N1cHBv
cnQgfSwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1
OGZhODQxMTU4MWU4MDFiNC4uZmQwYzk5YTRjMmQ3MzVmYzExMGUxYjVlN2Y0NzJmZDVkMWI1YWIx
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MTQsNCArNDE0LDYgQEAgRU5BQkxFX1dJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAK
IEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChF
TkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNU
KSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChF
TkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVO
QUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxF
X0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFC
TEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19M
T09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJ
TFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVf
SU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAk
KEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQo
RU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVO
QUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9T
RVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxF
X01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NB
TEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hF
X1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9X
SElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JF
RU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9M
T0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JF
U09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykg
JChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJM
RV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJM
RV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hB
UkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJF
QU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RF
VEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMp
ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9f
VVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFD
VElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxF
X1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykg
JChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVO
QUJMRV9YU0xUKTsKK0VOQUJMRV9XRUJYUiA9IEVOQUJMRV9XRUJYUjsKKworRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExF
X1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElD
QVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhU
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElO
R19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JU
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJF
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9D
T0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FN
UExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxF
X05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JL
X0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZF
UikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNP
Tk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VS
KSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVT
U0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVS
X01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJM
RV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX1dFQlhSKTsKZGlmZiAtLWdpdCBhL0No
YW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlODgyOTYwMTc4MThmZjQ4Y2Y4YTVkMGI4ZDkzM2Ex
NjQ2MTJjYWU2Li45YmY4ZWU1MWRiYjJmNTk1NWMwZTNmMmY3YmM0ODgwOTk3ZDZiZWUzIDEwMDY0
NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAt
MDMtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkZWQgYSBuZXcg
Y29tcGlsZSBmbGFnIGZvciBXRUJYUiB3aGljaCBkZXBlbmRzIG9uIFdFQkdMLgorCisgICAgICAg
IEZvciB0aGUgV1BFIHBvcnQsIGFkZGVkIE9wZW5YUiBkZXRlY3Rpb24gYW5kIFVTRV9PUEVOWFIg
ZGVmaW5lIHRvIGJlCisgICAgICAgIHVzZWQgaW4gdGhlIHNvdXJjZXMuIEl0IGFsc28gYWRkcyBh
IGRlcGVuZGVuY3kgYmV0d2VlbiBVU0VfT1BFTlhSIGFuZAorICAgICAgICBFTkFCTEVfV0VCWFIu
CisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLF
oWVrLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIuY21ha2U6IEFkZGVkLgor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlOiBBZGRlZCBtYW5kYXRvcnkg
T3BlblhSIGRlcGVuZGVuY3kgaWYKKyAgICAgICAgV0VCWFIgaXMgZW5hYmxlZCBleHBvc2luZyBV
U0VfT1BFTlhSIHRvIHRoZSBidWlsZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVh
dHVyZXMuY21ha2U6IEFkZGVkIEVOQUJMRV9XRUJYUi4KKwogMjAyMC0wMy0wOSAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIEFkZCBzY3JpcHQgdG8gc2Vh
cmNoIGZvciBmZWF0dXJlIGRlZmluZXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393533</attachid>
            <date>2020-03-13 15:00:06 -0700</date>
            <delta_ts>2020-03-15 04:18:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208702-20200313230001.patch</filename>
            <type>text/plain</type>
            <size>327719</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
Y2E4YTM0Njc3OTczNGIzZmVmNGI2NTU0Y2UzM2I2Y2VmZDY4ZGViLi45ODg2ODg0YTk0N2E0Njc0
ZjhjMjEyNDdhNTI3NmRmNWRkNmJkMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1
cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFC
TEVfV0VCWFIuCisKIDIwMjAtMDMtMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBEZWxldGUgSUMgY3JlYXRpb24gc2hvdWxkIGNoZWNrIG1heU5l
ZWRUb0NoZWNrQ2VsbC9jYW5DYWNoZURlbGV0ZUlDIHJlZ2FyZGxlc3Mgb2YgU3RydWN0dXJlOjpv
dXRPZkxpbmVDYXBhY2l0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ1YjhmOGY2MDdiYzgzMzY2ZDZmODQ3ODQ2
NmViM2IwNmM0OTcyNzkuLmVjZTc2NmFlMmZlNjcyMDhhODhiZTRmMmU1NjAwN2IxYWJmNzQ1NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTYgQEAKKzIwMjAtMDMtMTMgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVi
cyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBE
ZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkZWQgdGhlIElETHMgZGVmaW5lZCBieSB0aGUgc3Bl
YyB3aXRoIHZlcnkgYmFzaWMgZW1wdHkgaW1wbGVtZW50YXRpb25zIHRvIGdldCB0aGVtCisgICAg
ICAgIGJ1aWx0LiBBcGFydCBmcm9tIHRoYXQgYSB2ZXJ5IGJhc2ljIGltcGxlbWVudGF0aW9uIG9m
IHRoZSByZXF1aXJlZCBwbGF0Zm9ybSBjb2RlIHVzaW5nCisgICAgICAgIE9wZW5YUiBBUEkgd2Fz
IGFsc28gYWRkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5ldyBmdW5jdGlvbmFs
aXR5IHdhcyByZWFsbHkgYWRkZWQgKGVtcHR5IGltcGxlbWVudGF0aW9ucykuIEhvd2V2ZXIKKyAg
ICAgICAgZm9sbG93IHVwIHBhdGNoZXMgd2lsbCBpbXBvcnQgdGhlIGFscmVhZHkgYXZhaWxhYmxl
IFdQVCB0ZXN0cyBmb3IgV2ViWFIuCisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBwcmV2aW91
cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmlnYXRv
cldlYlhSLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJYUjo6eHIp
OgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yV2ViWFI6OmZyb20pOgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJYUkZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJGcmFtZTo6V2ViWFJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZyYW1lOjpz
ZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSRnJhbWU6OmdldFZpZXdlclBv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJGcmFtZTo6Z2V0UG9zZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViWFJGcmFtZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJ
bnB1dFNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJj
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OldlYlhSSW5w
dXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJjZTo6aGFuZGVkbmVz
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjp0YXJnZXRSYXlN
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OnRhcmdldFJh
eVNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OmdyaXBT
cGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjpwcm9maWxl
cyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6Omxlbmd0aCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6Oml0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhS
UG9zZTo6V2ViWFJQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6dHJhbnNmb3Jt
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6ZW11bGF0ZWRQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OldlYlhSUmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UpOgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlJlbmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUlJlbmRlclN0YXRlOjpkZXB0aEZhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmJhc2VMYXllciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmln
aWRUcmFuc2Zvcm06OldlYlhSUmlnaWRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJSaWdpZFRyYW5zZm9ybTo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJSaWdpZFRyYW5zZm9ybTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJSaWdpZFRyYW5zZm9ybTo6bWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSUmlnaWRUcmFuc2Zvcm06OmludmVyc2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhSU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjplbnZpcm9ubWVudEJsZW5kTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNl
c3Npb246OnZpc2liaWxpdHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNl
c3Npb246OnJlbmRlclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lv
bjo6aW5wdXRTb3VyY2VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lvbjo6
dXBkYXRlUmVuZGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpyZXF1
ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpyZXF1
ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpjYW5j
ZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmFjdGl2ZURPTU9iamVjdE5hbWUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1dlYlhSU2Vzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2Vi
WFJTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTcGFjZTo6V2ViWFJT
cGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OldlYlhS
U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjppc1Nlc3Npb25TdXBwb3J0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpXZWJYUlZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJWaWV3OjpleWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3Ojpwcm9qZWN0
aW9uTWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmlldzo6dHJhbnNmb3Jt
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlZpZXdlclBvc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdl
clBvc2U6OnZpZXdzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld2Vy
UG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3cG9ydDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSVmlld3BvcnQ6OnggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJWaWV3cG9ydDo6eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdwb3J0Ojp3
aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdwb3J0OjpoZWlnaHQgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJX
ZWJHTExheWVyOjpXZWJYUldlYkdMTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJH
TExheWVyOjphbnRpYWxpYXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExh
eWVyOjppZ25vcmVEZXB0aFZhbHVlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUldl
YkdMTGF5ZXI6OmZyYW1lYnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSV2Vi
R0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVySGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSV2ViR0xMYXllcjo6Z2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJX
ZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1hSRXllLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXggY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNz
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6
OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZl
cmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZlcmVuY2VT
cGFjZUV2ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFJS
ZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpY
UlNlc3Npb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2ZW50
OjpYUlNlc3Npb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb25FdmVudDo6c2Vz
c2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0Lmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSU2Vzc2lvbk1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
VGFyZ2V0UmF5TW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVGFyZ2V0
UmF5TW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5
U3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0
ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQgT3BlblhSIGxpYnJhcmll
cyBhbmQgaW5jbHVkZSBwYXRocy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkZWQgbmV3IGNw
cCBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFk
ZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBlcy5oOiBBZGRlZCBTZXF1
ZW5jZVN0b3JhZ2VUeXBlLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVl
bmNlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOiBB
ZGRlZCBXZWJYUiBldmVudHMuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjog
QWRkZWQgV2ViWFIgZXZlbnQgdGFyZ2V0cy4KKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaDogQWRkZWQgbmV3IHJ1bnRpbWUgZmVhdHVyZSBmb3IgV2ViWFIuCisgICAgICAg
IChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRXZWJYUkVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViWFJFbmFibGVkIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS94
ci9vcGVueHIvUGxhdGZvcm1YUi5jcHA6IEFkZGVkLgorICAgICAgICAoUGxhdGZvcm1YUjo6Y3Jl
YXRlU3RydWN0dXJlKTogVXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgT3BlblhSIHN0cnVjdHMu
CisgICAgICAgIChQbGF0Zm9ybVhSOjpyZXN1bHRUb1N0cmluZyk6IFRyYW5zbGF0ZXMgT3BlblhS
IGVycm9yIGNvZGVzIHRvIHN0cmluZ3MuCisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6
SW1wbDo6SW1wbCk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6SW1wbDo6fkltcGwp
OgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbik6CisKIDIwMjAtMDMt
MTMgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgc29t
ZXRpbWVzIGNyYXNoZXMgd2hlbiBzd2l0Y2ggdmlkZW8gaW50byBQaVAgbW9kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKaW5kZXggMGZjYTFmN2ZkZTM1MDc2ZWFiYTY2ODVjZDUxYzc5ZWZlMjRiNjkwZi4uMDk0
MzkzZTk5YjQwZjdhYTAzYzM2MDVhNmZlYzI0MmY4M2Q1MzIyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQgYnVpbGQg
Y29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24u
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRk
ZWQgRU5BQkxFX1dFQlhSLgorCiAyMDIwLTAzLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxp
dHlFbmFibGVkIHNob3VsZCBub3QgYmUgY2FsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwZWZhNWNiYTM5NDYz
NzRmY2MwMDQxNDNjMGNkNjI1ZDFjZmQxMmYuLjI0ZmY3NTk2YWRmNzA2MDc5NDkwYjY4MDk2YjU0
Y2E5YmUyNWU2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDMtMTMgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJ
RExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkZWQgV2ViWFIgdG8gdGhlIGxpc3Qg
b2YgZXhwZXJpbWVudGFsIGZlYXR1cmVzLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6IEFkZGVkIEVOQUJMRV9XRUJYUi4KKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbDogQWRkZWQgV2ViWFIgZmVhdHVyZS4KKyAgICAgICAgKiBT
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdFdlYlhSRW5hYmxlZCk6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVC
b29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIpOgorCiAyMDIwLTAzLTEzICBLYXRlIENoZW5leSAg
PGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIGFuZCBNYWMgd2sy
IF0gaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LyB0ZXN0cyBmYWlsaW5nCkBAIC02
NjQsNiArNjgxLDIyIEBACiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
ICAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKIAorMjAy
MC0wMy0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBE
cm9wIHVudXNlZCBFbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIC8gRGlzYWJs
ZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgSVBDIG1lc3NhZ2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg5NzMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU5NjgzOTQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgUmVtb3ZlIHR3byB1bnVzZWQgSVBDIG1lc3NhZ2VzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MjAtMDMtMTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIGVuY29kZU5hdGl2ZUltYWdlKCkgc2hvdWxkIHBhc3MgaW1h
Z2VTaXplIHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBjMWFlODdjMThhN2VlYWYwMzUzZWM4MzMxMDY0OWViMjFhMTYz
ZWEzLi5lZThiZGNmODZjNWI2Yzc2OGEyZjYxZDEzZGQzNjQxMzQxNTQ3MThiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExz
LCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLgorCiAyMDIwLTAzLTEyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3QgcHJlZmVyZW5j
ZSBoYW5kbGluZyBhbmQgbmFtaW5nIGNvbnZlbnRpb25zIGluIEFwcEJvdW5kIGJyb3dzaW5nIHBy
ZWZlcmVuY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJl
YmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uZmQwYzk5YTRjMmQ3MzVmYzExMGUxYjVlN2Y0NzJmZDVk
MWI1YWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDE0LDQgKzQxNCw2IEBAIEVO
QUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
ICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZ
KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElP
Tl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQ
VElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQo
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5H
KSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xV
VElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQ
KSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dP
UkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQo
RU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9W
QUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElP
TikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQo
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAk
KEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Up
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hF
UlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9P
QlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hf
RVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdB
Q1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9N
QU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQ
UkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFC
TEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVS
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVU
V09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FD
SEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAk
KEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxF
X1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAk
KEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElO
RykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVD
VCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQo
RU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChF
TkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05F
X05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9V
Q0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdF
X0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVO
QUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5B
QkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9V
U0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05T
KSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9BUElfU1RBVElT
VElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dF
Ql9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfV0VCWFIgPSBFTkFCTEVfV0VCWFI7CisKK0ZF
QVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVO
QUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5B
QkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQo
RU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxF
X0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NT
U19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9D
U1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9D
U1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1Jf
VklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVO
QUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RS
QUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5U
QUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVS
TkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVf
SU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
ICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VT
VE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVf
TUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05F
KSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFC
TEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JP
TExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BM
VUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1Qp
ICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJ
WkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JF
U09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxF
X1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NF
UlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJW
SUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hf
U1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVO
QUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5H
KSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJM
RV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFC
TEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxF
X1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FS
RF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVf
V0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRI
TikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9XRUJYUik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAppbmRleCBkZWRmYTE0ZDVhNWRkZGE4NGUzMzViZmQ0ODVlNzU1MDk3ZmFlYzU3Li42ODAy
Y2M4Y2NiMTVhODRmMTFkMGQzZjA3N2ZjZTkyN2I2NDQwNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTE4
MCw2ICsxODAsNyBAQAogI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNFX09QRU5H
TF9FUyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVYVFVSRV9N
QVBQRVIpCiAjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0ws
IFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wKICNlbmRpZgorCiAjZW5kaWYKIAogI2lmIFVTRShU
RVhUVVJFX01BUFBFUikgJiYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpICYmICFkZWZpbmVk
KFVTRV9URVhUVVJFX01BUFBFUl9HTCkKQEAgLTE5MCwzICsxOTEsNCBAQAogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoQUNDRVNTSUJJTElUWSkKICNkZWZpbmUgVVNFX0FDQ0VTU0lCSUxJ
VFlfQ09OVEVYVF9NRU5VUyAxCiAjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZWZj
ZTBkM2Q5NDUxYzUxNDBmN2NmYmU2MjIzZTJmZjM5Mjg3ZjUzLi4xMjc2ZmNlMWQ3YTRkMmYwZWRi
YjIyNmFkMTc3M2JiOWY0NDIyYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjQsNiArNjQs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJD
T1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJzb2Nr
ZXRzIgorICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnhyIgogICAgICIke1dFQkNPUkVf
RElSfS9hY2Nlc3NpYmlsaXR5IgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vYW5pbWF0aW9uIgpAQCAtMTQxLDcgKzE0
Miw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9zcWwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQiCi0gICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL3ZyIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS94ciIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vcGx1Z2lucyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5n
IgogICAgICIke1dFQkNPUkVfRElSfS9yZW5kZXJpbmcvbGluZSIKQEAgLTExNzksNiArMTE4MCw0
MiBAQCBpZiAoRU5BQkxFX0dBTUVQQUQpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKEVOQUJMRV9X
RUJHTCkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCisgICAgICAg
IE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2Vi
WFJGcmFtZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJS
ZWZlcmVuY2VTcGFjZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRl
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1dlYlhSU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1dlYlhSVmlld2VyUG9zZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbAorICAgICAgICBNb2R1bGVz
L3dlYnhyL1hSRXllLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbAorICAgICAg
ICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlZmVy
ZW5jZVNwYWNlVHlwZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5p
dC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbk1vZGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlk
bAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCisgICAgKQorZW5kaWYgKCkKKwogc2V0
KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgJHtXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTfQogICAg
ICR7V2ViQ29yZV9TVkdfSURMX0ZJTEVTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCBlNmEzMDAyOWEwMWRmMTgw
MmViZjcyZjU4ZmE4NDExNTgxZTgwMWI0Li5mZDBjOTlhNGMyZDczNWZjMTEwZTFiNWU3ZjQ3MmZk
NWQxYjVhYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDE0LDQgKzQxNCw2IEBAIEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBF
TkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkg
JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5B
QkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9D
U1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxF
X0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9P
UCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lO
X1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxF
X0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChF
TkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVO
QUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVO
QUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NB
UFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VT
U0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9N
RVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9T
UEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJ
TEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNP
TFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVf
U0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJF
QUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFN
U19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAk
KEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VT
RVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJ
T05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9X
RUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VC
R0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQo
RU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFC
TEVfWFNMVCk7CitFTkFCTEVfV0VCWFIgPSBFTkFCTEVfV0VCWFI7CisKK0ZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9Q
QVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VT
U0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FU
SU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9D
QVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NO
QVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdf
V09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkg
JChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VF
X1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNU
SU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMp
ICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9O
X09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VD
SF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09M
X01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVO
QUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBM
RVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VT
RV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9O
RVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19D
QUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gp
ICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFC
TEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIp
ICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURf
U1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5E
SU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05O
RUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikg
JChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAk
KEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NB
R0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9N
T1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVf
V0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9XRUJYUik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0ZDllZGFmMWE2NmI2ZGFkOTU3MTUwYWJjNjQ5ZDNlZWQyMWY3NjQx
Li4yZTJjYTQ4ZmUxMDY4NTExZWE0ODFjMWVlMWQ5ZWYzZDA1YzhkZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY0LDYgKzY0LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ciBcCiAgICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNv
cmUpL2FuaW1hdGlvbiBcCiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCkBAIC00NjAsNiAr
NDYxLDM3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
Z3B1L1dvcmtlck5hdmlnYXRvckdQVS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJz
b2NrZXRzL0Nsb3NlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvTmF2aWdhdG9y
V2ViWFIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVu
dEJsZW5kTW9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZUFycmF5LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSUG9zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVy
ZW5jZVNwYWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0
YXRlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmlnaWRUcmFuc2Zvcm0uaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uLmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4
ci9YUlNwYWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU3lzdGVtLmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlZpZXcuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIvWFJWaWV3ZXJQb3NlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSVmlld3BvcnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJW
aXNpYmlsaXR5U3RhdGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJXZWJH
TExheWVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllcklu
aXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJvbGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vzc2liaWxpdHkvQXJpYUF0dHJpYnV0ZXMuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9BbmltYXRhYmxlLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2YTRj
NWQ3ODM4OTAwNDVjMTNiNzE5ZDM5ZmIxZDJiZjIzODEyNTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcApAQCAtMCwwICsx
LDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXZp
Z2F0b3JXZWJYUi5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiTmF2aWdhdG9y
LmgiCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitX
ZWJYUlN5c3RlbSYgTmF2aWdhdG9yV2ViWFI6OnhyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIE5hdmlnYXRvciYgbmF2aWdhdG9yT2JqZWN0KQoreworICAg
IGF1dG8mIG5hdmlnYXRvciA9IE5hdmlnYXRvcldlYlhSOjpmcm9tKG5hdmlnYXRvck9iamVjdCk7
CisgICAgaWYgKCFuYXZpZ2F0b3IubV94cikKKyAgICAgICAgbmF2aWdhdG9yLm1feHIgPSBXZWJY
UlN5c3RlbTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIHJldHVybiAqbmF2
aWdhdG9yLm1feHI7Cit9CisKK05hdmlnYXRvcldlYlhSJiBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShO
YXZpZ2F0b3ImIG5hdmlnYXRvcikKK3sKKyAgICBhdXRvKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nh
c3Q8TmF2aWdhdG9yV2ViWFIqPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20oJm5hdmlnYXRv
ciwgIk5hdmlnYXRvcldlYlhSIikpOworICAgIGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBh
dXRvIG5ld1N1cHBsZW1lbnQgPSBtYWtlVW5pcXVlPE5hdmlnYXRvcldlYlhSPigpOworICAgICAg
ICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVudC5nZXQoKTsKKyAgICAgICAgcHJvdmlkZVRvKCZu
YXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIsIFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAg
IH0KKyAgICByZXR1cm4gKnN1cHBsZW1lbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvTmF2aWdhdG9yV2ViWFIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjM0ZTRlNTlmMzljODlkYjJhOTJhNDE2
MGI4ODAzZWUwN2Y0MmRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJTdXBwbGVtZW50
YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBOYXZpZ2F0b3I7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3Mg
V2ViWFJTeXN0ZW07CisKK2NsYXNzIE5hdmlnYXRvcldlYlhSIGZpbmFsIDogcHVibGljIFN1cHBs
ZW1lbnQ8TmF2aWdhdG9yPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgc3RhdGljIFdlYlhSU3lzdGVtJiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2
aWdhdG9yJik7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIE5hdmlnYXRvcldlYlhSJiBmcm9tKE5h
dmlnYXRvciYpOworCisgICAgUmVmUHRyPFdlYlhSU3lzdGVtPiBtX3hyOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJi
ZjVkZDEzOTk0MzRhM2M2MzY2ZDUwZGVmMDY3NTM2ZThkMTNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBDb25kaXRpb25hbD1XRUJYUgorXSBwYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3IgeworICAg
IFtTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTeXN0ZW0geHI7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YmRlZGEzNTIzMGViNzMwZDdlNTZiZGU1YmQ1MmFhMmIzMjYx
ZjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25z
dCBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2U6OmJvdW5kc0dlb21ldHJ5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ib3VuZHNHZW9tZXRy
eTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliM2I3NGYzZTJhZDQzNzg1Y2VlMDM2ZGI4
ZTMyYWU2MmQ5ZDQ4ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgKQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2Uu
aCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYg
RU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVBvaW50UmVh
ZE9ubHk7CisKK2NsYXNzIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIDogcHVibGljIFdlYlhS
UmVmZXJlbmNlU3BhY2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYlhSQm91bmRlZFJlZmVy
ZW5jZVNwYWNlKCk7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYg
Ym91bmRzR2VvbWV0cnkoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPERPTVBv
aW50UmVhZE9ubHk+PiBtX2JvdW5kc0dlb21ldHJ5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNWI4ODMzNzQyM2QwNmFhOWZhNGQ1NTQxYjZjNTEwNGYwZTQ3ZTRkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVD
b250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UKK10gaW50ZXJmYWNlIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIDog
V2ViWFJSZWZlcmVuY2VTcGFjZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5
PERPTVBvaW50UmVhZE9ubHk+IGJvdW5kc0dlb21ldHJ5OworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzNWRjMTI3YzlkMDdhN2M4
ZDIzODQxNTQ1ODdkNTEzNTg4N2FlMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSRnJhbWUuaCIKKworI2lm
IEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldl
YlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSRnJh
bWUpOworCitSZWY8V2ViWFJGcmFtZT4gV2ViWFJGcmFtZTo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Np
b24+JiYgc2Vzc2lvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkZyYW1lKFdU
Rk1vdmUoc2Vzc2lvbikpKTsKK30KKworV2ViWFJGcmFtZTo6V2ViWFJGcmFtZShSZWY8V2ViWFJT
ZXNzaW9uPiYmIHNlc3Npb24pCisgICAgOiBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sK
K30KKworV2ViWFJGcmFtZTo6fldlYlhSRnJhbWUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFdlYlhS
U2Vzc2lvbiYgV2ViWFJGcmFtZTo6c2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vz
c2lvbjsKK30KKworUmVmUHRyPFdlYlhSVmlld2VyUG9zZT4gV2ViWFJGcmFtZTo6Z2V0Vmlld2Vy
UG9zZShjb25zdCBXZWJYUlJlZmVyZW5jZVNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQor
CitSZWZQdHI8V2ViWFJQb3NlPiBXZWJYUkZyYW1lOjpnZXRQb3NlKGNvbnN0IFdlYlhSU3BhY2Um
LCBjb25zdCBXZWJYUlNwYWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwOGE2NzY0ZjBkMmM1YWU2MWU0
ZDY1OGMyODI1MDU3OWZlNWI2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXZWJYUlBvc2U7CitjbGFzcyBXZWJYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgV2ViWFJTZXNz
aW9uOworY2xhc3MgV2ViWFJTcGFjZTsKK2NsYXNzIFdlYlhSVmlld2VyUG9zZTsKKworY2xhc3Mg
V2ViWFJGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSRnJhbWU+IHsKKyAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKFdlYlhSRnJhbWUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2Vi
WFJGcmFtZT4gY3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYpOworICAgIH5XZWJYUkZyYW1lKCk7
CisKKyAgICBjb25zdCBXZWJYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKworICAgIFJlZlB0
cjxXZWJYUlZpZXdlclBvc2U+IGdldFZpZXdlclBvc2UoY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFj
ZSYpOworICAgIFJlZlB0cjxXZWJYUlBvc2U+IGdldFBvc2UoY29uc3QgV2ViWFJTcGFjZSYsIGNv
bnN0IFdlYlhSU3BhY2UmKTsKKworcHJpdmF0ZToKKyAgICBXZWJYUkZyYW1lKFJlZjxXZWJYUlNl
c3Npb24+JiYpOworCisgICAgUmVmPFdlYlhSU2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFmY2YzY2Zl
NGQ5Yzc1ZmQ3ZjQ2OGU0OTdkYjhlODAwN2I4YWRmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5pZGwKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUkZyYW1lCitd
IGludGVyZmFjZSBXZWJYUkZyYW1lIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFdlYlhSU2Vzc2lvbiBzZXNzaW9uOworCisgICAgV2ViWFJWaWV3ZXJQb3NlPyBnZXRWaWV3
ZXJQb3NlKFdlYlhSUmVmZXJlbmNlU3BhY2UgcmVmZXJlbmNlU3BhY2UpOworICAgIFdlYlhSUG9z
ZT8gZ2V0UG9zZShXZWJYUlNwYWNlIHNwYWNlLCBXZWJYUlNwYWNlIGJhc2VTcGFjZSk7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjMwNzY3NTExOThkYmJjMzc2Y2I5NzE5YjhhODdiMTJjNjIwMThkZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNv
dXJjZS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJjZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFdlYlhSSW5wdXRTb3VyY2UpOworCitSZWY8V2ViWFJJbnB1dFNvdXJjZT4gV2ViWFJJbnB1dFNv
dXJjZTo6Y3JlYXRlKFJlZjxXZWJYUlNwYWNlPiYmIHRhcmdldFJheVNwYWNlKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYlhSSW5wdXRTb3VyY2UoV1RGTW92ZSh0YXJnZXRSYXlTcGFj
ZSkpKTsKK30KKworV2ViWFJJbnB1dFNvdXJjZTo6V2ViWFJJbnB1dFNvdXJjZShSZWY8V2ViWFJT
cGFjZT4mJiB0YXJnZXRSYXlTcGFjZSkKKyAgICA6IG1faGFuZGVkbmVzcyhYUkhhbmRlZG5lc3M6
Ok5vbmUpCisgICAgLCBtX3RhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlOjpHYXplKQorICAg
ICwgbV90YXJnZXRSYXlTcGFjZShXVEZNb3ZlKHRhcmdldFJheVNwYWNlKSkKK3sKK30KKworV2Vi
WFJJbnB1dFNvdXJjZTo6fldlYlhSSW5wdXRTb3VyY2UoKSA9IGRlZmF1bHQ7CisKK1hSSGFuZGVk
bmVzcyBXZWJYUklucHV0U291cmNlOjpoYW5kZWRuZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9oYW5kZWRuZXNzOworfQorCitYUlRhcmdldFJheU1vZGUgV2ViWFJJbnB1dFNvdXJjZTo6dGFy
Z2V0UmF5TW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5TW9kZTsKK30KKwor
Y29uc3QgV2ViWFJTcGFjZSYgV2ViWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UoKSBjb25z
dAoreworICAgIHJldHVybiBtX3RhcmdldFJheVNwYWNlOworfQorCitSZWZQdHI8V2ViWFJTcGFj
ZT4gV2ViWFJJbnB1dFNvdXJjZTo6Z3JpcFNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9
OworfQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgV2ViWFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMo
KSBjb25zdAoreworICAgIHJldHVybiBtX3Byb2ZpbGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YzI5YWIxY2RiOTA2
ZGJlMTRiYjk0OTJhYjJmZDg4YjQxZDQxMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaApAQCAtMCwwICsxLDY2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVk
ZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgV2ViWFJTcGFjZTsKKworY2xhc3MgV2ViWFJJbnB1dFNvdXJjZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlhSSW5wdXRTb3VyY2U+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKFdlYlhSSW5wdXRTb3VyY2UpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJJ
bnB1dFNvdXJjZT4gY3JlYXRlKFJlZjxXZWJYUlNwYWNlPiYmKTsKKyAgICB+V2ViWFJJbnB1dFNv
dXJjZSgpOworCisgICAgWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3MoKSBjb25zdDsKKyAgICBYUlRh
cmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSgpIGNvbnN0OworICAgIGNvbnN0IFdlYlhSU3BhY2Um
IHRhcmdldFJheVNwYWNlKCkgY29uc3Q7CisgICAgUmVmUHRyPFdlYlhSU3BhY2U+IGdyaXBTcGFj
ZSgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm9maWxlcygpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIFdlYlhSSW5wdXRTb3VyY2UoUmVmPFdlYlhSU3BhY2U+JiYpOworCisg
ICAgWFJIYW5kZWRuZXNzIG1faGFuZGVkbmVzczsKKyAgICBYUlRhcmdldFJheU1vZGUgbV90YXJn
ZXRSYXlNb2RlOworICAgIFJlZjxXZWJYUlNwYWNlPiBtX3RhcmdldFJheVNwYWNlOworICAgIFZl
Y3RvcjxTdHJpbmc+IG1fcHJvZmlsZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUklucHV0U291cmNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDU5ZjNmZTQ3MDc1MjExMzdi
ZjUzZjFhMzQ0ZWRkZDk4ZWJkMzY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmlkbApAQCAtMCwwICsxLDM5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFs
PVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZhY2VOYW1lPVhSSW5wdXRTb3VyY2UK
K10gaW50ZXJmYWNlIFdlYlhSSW5wdXRTb3VyY2UgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBY
UkhhbmRlZG5lc3MgaGFuZGVkbmVzczsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgWFJUYXJnZXRS
YXlNb2RlIHRhcmdldFJheU1vZGUgOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgV2ViWFJTcGFjZSB0YXJnZXRSYXlTcGFjZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFdlYlhSU3BhY2U/IGdyaXBTcGFjZSA7CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxET01TdHJpbmc+IHByb2ZpbGVzOworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNGMwODU1MzJiY2Q5YWFjMjczODA5MGJmYTNmZGRmZWE0MzM1NWQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklu
cHV0U291cmNlQXJyYXkuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSSW5wdXRTb3VyY2VBcnJheS5oIgorCisjaWYg
RU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJJbnB1
dFNvdXJjZUFycmF5KTsKKwordW5zaWduZWQgV2ViWFJJbnB1dFNvdXJjZUFycmF5OjpsZW5ndGgo
KSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitXZWJYUklucHV0U291cmNlKiBXZWJYUklu
cHV0U291cmNlQXJyYXk6Oml0ZW0odW5zaWduZWQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0
U291cmNlQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNv
dXJjZUFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQyMWYwMjllNjRjYjA4YTJiYjliNmE2NTY4NWRhMGQ1
OTg3ZDAyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJJbnB1dFNvdXJjZUFycmF5LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2U7CisKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2VBcnJh
eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSSW5wdXRTb3VyY2VBcnJheT4geworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoV2ViWFJJbnB1dFNvdXJjZUFycmF5KTsKK3B1YmxpYzoKKyAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBXZWJYUklucHV0U291cmNlKiBpdGVtKHVuc2ln
bmVkKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJJbnB1dFNvdXJjZUFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJJbnB1dFNvdXJjZUFycmF5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2FkODRhYzA1NWZlNjA1MTAxOWFl
N2M3NzJjMDQyYzllMDJjNzE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9u
YWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJJbnB1dFNvdXJj
ZUFycmF5CitdIGludGVyZmFjZSBXZWJYUklucHV0U291cmNlQXJyYXkgeworICAgIGl0ZXJhYmxl
PFdlYlhSSW5wdXRTb3VyY2U+OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKKyAgICBnZXR0ZXIgV2ViWFJJbnB1dFNvdXJjZSh1bnNpZ25lZCBsb25nIGluZGV4
KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWM1ZjgwYTU0NDU1Y2JlOGZjYjA3MmQ1NDdiMzE5NmE5ODg3ODY1OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmNwcApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJYUlBvc2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSUmln
aWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlBvc2Up
OworCitSZWY8V2ViWFJQb3NlPiBXZWJYUlBvc2U6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViWFJQb3NlKTsKK30KKworV2ViWFJQb3NlOjpXZWJYUlBvc2UoKQorICAg
IDogbV90cmFuc2Zvcm0oV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkpCit7Cit9CisKK1dl
YlhSUG9zZTo6fldlYlhSUG9zZSgpID0gZGVmYXVsdDsKKworY29uc3QgV2ViWFJSaWdpZFRyYW5z
Zm9ybSYgV2ViWFJQb3NlOjp0cmFuc2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5z
Zm9ybTsKK30KKworYm9vbCBXZWJYUlBvc2U6OmVtdWxhdGVkUG9zaXRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2VtdWxhdGVkUG9zaXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSUG9zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5OTE5ZDI0YzM5NTNhYTM5YTJjNDg5NGJjN2NjZTVj
MjljMTdlNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSUG9zZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgV2ViWFJQ
b3NlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJQb3NlPiB7CisgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChXZWJYUlBvc2UpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJQb3NlPiBj
cmVhdGUoKTsKKyAgICB+V2ViWFJQb3NlKCk7CisKKyAgICBjb25zdCBXZWJYUlJpZ2lkVHJhbnNm
b3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKyAgICBib29sIGVtdWxhdGVkUG9zaXRpb24oKSBjb25z
dDsKKworcHJvdGVjdGVkOgorICAgIFdlYlhSUG9zZSgpOworCisgICAgUmVmPFdlYlhSUmlnaWRU
cmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworICAgIGJvb2wgbV9lbXVsYXRlZFBvc2l0aW9uIHsgZmFs
c2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3Nl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40YzRlOWRhZGM4ZWEwYWYzMTUxODY5NDE5M2I5MjQ5NjQ0Nzg4MDI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsCkBAIC0w
LDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2Vk
PVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5h
bWU9WFJQb3NlCitdIGludGVyZmFjZSBXZWJYUlBvc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFk
b25seSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlvbjsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMzNiZjcwOGNjNDI3YzgxOTA2YjAzZTU4ZWNkOTI4YTMwZmYwY2Q5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNl
LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJYUlJlZmVyZW5jZVNwYWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViWFJSZWZlcmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVu
Y2VTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAgIDogV2ViWFJTcGFj
ZShjb250ZXh0KQoreworfQorCitXZWJYUlJlZmVyZW5jZVNwYWNlOjp+V2ViWFJSZWZlcmVuY2VT
cGFjZSgpID0gZGVmYXVsdDsKKworUmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IFdlYlhSUmVmZXJl
bmNlU3BhY2U6OmdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zv
cm0mKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSUmVmZXJlbmNlU3BhY2UoKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YmI0OGNiZjY5MDM4ZmVh
MmJkMzE0ODI2Mzk2YjkzZDIxMzUzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVk
ZSAiV2ViWFJTcGFjZS5oIgorCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdlYlhSUmlnaWRUcmFuc2Zvcm07CisKK2NsYXNzIFdlYlhSUmVmZXJl
bmNlU3BhY2UgOiBwdWJsaWMgV2ViWFJTcGFjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2Vi
WFJSZWZlcmVuY2VTcGFjZSgpOworCisgICAgUmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IGdldE9m
ZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKTsKKworcHJpdmF0
ZToKKyAgICBXZWJYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFj
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2Uu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI4MzUwN2Y0NDVhNTJmZTJlMTcxOTY2ZjUwNzNiYzEzYjQ5ZmM1M2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVm
ZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJl
Q29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwK
KyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJlZmVy
ZW5jZVNwYWNlCitdIGludGVyZmFjZSBXZWJYUlJlZmVyZW5jZVNwYWNlIDogV2ViWFJTcGFjZSB7
CisgICAgW05ld09iamVjdF0gV2ViWFJSZWZlcmVuY2VTcGFjZSBnZXRPZmZzZXRSZWZlcmVuY2VT
cGFjZShXZWJYUlJpZ2lkVHJhbnNmb3JtIG9yaWdpbk9mZnNldCk7CisKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9ucmVzZXQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY3ODlmODE5MjcxZTkxNTY1
MjY5ZGEzZjNiOTYxZDMzZDk5NzZhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJSZW5kZXJTdGF0
ZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJXZWJHTExheWVyLmgi
CisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZUluaXQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSUmVuZGVyU3RhdGUpOwor
CitSZWY8V2ViWFJSZW5kZXJTdGF0ZT4gV2ViWFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKGNvbnN0IFdl
YlhSU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICAvLyBXaGVuIGFuIFhSUmVuZGVyU3RhdGUgb2Jq
ZWN0IGlzIGNyZWF0ZWQgZm9yIGFuIFhSU2Vzc2lvbiBzZXNzaW9uLCB0aGUgdXNlciBhZ2VudCBN
VVNUIGluaXRpYWxpemUgdGhlIHJlbmRlciBzdGF0ZSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcg
c3RlcHM6CisgICAgLy8gICAxLiBMZXQgc3RhdGUgYmUgdGhlIG5ld2x5IGNyZWF0ZWQgWFJSZW5k
ZXJTdGF0ZSBvYmplY3QuCisKKyAgICAvLyAgIDIuIEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRo
TmVhciB0byAwLjEuCisgICAgLy8gICAzLiBJbml0aWFsaXplIHN0YXRl4oCZcyBkZXB0aEZhciB0
byAxMDAwLjAuCisgICAgLy8gKERlZmF1bHQtaW5pdGlhbGl6ZWQgaW4gdGhlIFhSUmVuZGVyU3Rh
dGUgY2xhc3MgZGVmaW5pdGlvbi4pCisKKyAgICAvLyAgIDQuIElmIHNlc3Npb24gaXMgYW4gaW1t
ZXJzaXZlIHNlc3Npb24sIGluaXRpYWxpemUgc3RhdGXigJlzIGlubGluZVZlcnRpY2FsRmllbGRP
ZlZpZXcgdG8gbnVsbC4KKyAgICAvLyAgIDUuIEVsc2UgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5s
aW5lVmVydGljYWxGaWVsZE9mVmlldyB0byBQSSAqIDAuNS4KKyAgICAvLyBGSVhNRTogImltbWVy
c2l2ZSBzZXNzaW9uIiBzdXBwb3J0CisgICAgVU5VU0VEX1BBUkFNKHNlc3Npb24pOworICAgIE9w
dGlvbmFsPGRvdWJsZT4gaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB7IHBpT3ZlclR3b0RvdWJs
ZSB9OworCisgICAgLy8gICA2LiBJbml0aWFsaXplIHN0YXRl4oCZcyBiYXNlTGF5ZXIgdG8gbnVs
bC4KKyAgICAvLyAgIDcuIEluaXRpYWxpemUgc3RhdGXigJlzIG91dHB1dENvbnRleHQgdG8gbnVs
bC4KKyAgICAvLyAoSW5pdGlhbGl6ZWQgdG8gbnVsbCBieSBkZWZhdWx0LikKKworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlhSUmVuZGVyU3RhdGUoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZp
ZWxkT2ZWaWV3KSkpOworfQorCitXZWJYUlJlbmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKE9w
dGlvbmFsPGRvdWJsZT4mJiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KQorICAgIDogbV9pbmxp
bmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KFdURk1vdmUoaW5saW5lVmVydGljYWxGaWVsZE9mVmlldykp
Cit7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6OldlYlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5k
ZXJTdGF0ZUluaXQmKQoreworfQorCitXZWJYUlJlbmRlclN0YXRlOjp+V2ViWFJSZW5kZXJTdGF0
ZSgpID0gZGVmYXVsdDsKKworZG91YmxlIFdlYlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZGVwdGgubmVhcjsKK30KKworZG91YmxlIFdlYlhSUmVuZGVy
U3RhdGU6OmRlcHRoRmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXB0aC5mYXI7Cit9CisK
K09wdGlvbmFsPGRvdWJsZT4gV2ViWFJSZW5kZXJTdGF0ZTo6aW5saW5lVmVydGljYWxGaWVsZE9m
VmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsK
K30KKworUmVmUHRyPFdlYlhSV2ViR0xMYXllcj4gV2ViWFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYXNlTGF5ZXI7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2YyOTJhYzFkNjgx
YTQ2OTg3NjAxODE4OWE4N2E5NmYxZWRiYWM3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5oCkBAIC0wLDAgKzEsNjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSV2ViR0xMYXll
cjsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKK2NsYXNzIFdlYlhSU2Vzc2lvbjsKKworY2xh
c3MgV2ViWFJSZW5kZXJTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSUmVuZGVyU3RhdGU+
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSUmVuZGVyU3RhdGUpOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViWFJSZW5kZXJTdGF0ZT4gY3JlYXRlKGNvbnN0IFdlYlhSU2Vz
c2lvbiYpOworICAgIH5XZWJYUlJlbmRlclN0YXRlKCk7CisKKyAgICBkb3VibGUgZGVwdGhOZWFy
KCkgY29uc3Q7CisgICAgZG91YmxlIGRlcHRoRmFyKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8ZG91
YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3Q7CisgICAgUmVmUHRyPFdlYlhS
V2ViR0xMYXllcj4gYmFzZUxheWVyKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJSZW5k
ZXJTdGF0ZShPcHRpb25hbDxkb3VibGU+JiYpOworICAgIFdlYlhSUmVuZGVyU3RhdGUoY29uc3Qg
WFJSZW5kZXJTdGF0ZUluaXQmKTsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBuZWFy
IHsgMC4xIH07CisgICAgICAgIGRvdWJsZSBmYXIgeyAxMDAwIH07CisgICAgfSBtX2RlcHRoOwor
ICAgIE9wdGlvbmFsPGRvdWJsZT4gbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJl
ZlB0cjxXZWJYUldlYkdMTGF5ZXI+IG1fYmFzZUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUxYWNlNjU1
MmMzNDllODRhMjJhMjU2Y2Q2MGRjMmNjM2NhMDMzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5pZGwKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93
LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJl
bmRlclN0YXRlCitdIGludGVyZmFjZSBXZWJYUlJlbmRlclN0YXRlIHsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgZG91YmxlIGRlcHRoTmVhcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91Ymxl
IGRlcHRoRmFyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGU/IGlubGluZVZlcnRpY2Fs
RmllbGRPZlZpZXc7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSV2ViR0xMYXllcj8gYmFz
ZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJSaWdpZFRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
UmlnaWRUcmFuc2Zvcm0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzZmRjZmI5MGU3MjViMTc5NzgwMDU0YmE2
ZTdiYTU0NjRmZjk4OWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlJpZ2lkVHJhbnNmb3Jt
LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5Lmgi
CisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFdlYlhSUmlnaWRUcmFuc2Zvcm0pOworCitSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gV2ViWFJS
aWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJY
UlJpZ2lkVHJhbnNmb3JtKHsgfSwgeyB9KSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxXZWJYUlJp
Z2lkVHJhbnNmb3JtPj4gV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKGNvbnN0IERPTVBvaW50
SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBvaW50SW5pdCYgb3JpZW50YXRpb24pCit7CisgICAg
Ly8gVGhlIFhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRpb24sIG9yaWVudGF0aW9uKSBjb25zdHJ1Y3Rv
ciBNVVNUIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwcyB3aGVuIGludm9rZWQ6CisgICAgLy8g
ICAxLiBMZXQgdHJhbnNmb3JtIGJlIGEgbmV3IFhSUmlnaWRUcmFuc2Zvcm0uCisKKyAgICAvLyAg
IDIuIElmIHBvc2l0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9y
beKAmXMgcG9zaXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAg
ICAvLyAgIDMuIElmIHBvc2l0aW9u4oCZcyB3IHZhbHVlIGlzIG5vdCAxLjAsIHRocm93IGEgVHlw
ZUVycm9yLgorICAgIC8vICAgNC4gRWxzZSBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRp
b27igJlzIHggdmFsdWUgdG8gcG9zaXRpb27igJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFs
dWUgdG8gcG9zaXRpb27igJlzIHkgZGljdGlvbmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gcG9zaXRp
b27igJlzIHogZGljdGlvbmFyeSBtZW1iZXIgYW5kIHcgdG8gMS4wLgorICAgIGlmIChwb3NpdGlv
bi53ICE9IDEuMCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAg
IERPTVBvaW50SW5pdCBwb3NpdGlvbkluaXQgeyBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBwb3Np
dGlvbi56LCAxIH07CisKKyAgICAvLyAgIDUuIElmIG9yaWVudGF0aW9uIGlzIG5vdCBhIERPTVBv
aW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb24gdG8geyB4OiAwLjAs
IHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDYuIEVsc2UgaW5pdGlhbGl6ZSB0
cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9u4oCZcyB4IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB4
IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB5IGRpY3Rpb25h
cnkgbWVtYmVyLCB6IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVy
IGFuZCB3IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB3IGRpY3Rpb25hcnkgbWVtYmVyLgorICAg
IC8vICAgNy4gTm9ybWFsaXplIHgsIHksIHosIGFuZCB3IGNvbXBvbmVudHMgb2YgdHJhbnNmb3Jt
4oCZcyBvcmllbnRhdGlvbi4KKyAgICBET01Qb2ludEluaXQgb3JpZW50YXRpb25Jbml0IHsgb3Jp
ZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwgb3JpZW50YXRpb24ueiwgb3JpZW50YXRpb24udyB9
OworICAgIHsKKyAgICAgICAgZG91YmxlIGxlbmd0aCA9IHN0ZDo6c3FydChvcmllbnRhdGlvbklu
aXQueCAqIG9yaWVudGF0aW9uSW5pdC54ICsgb3JpZW50YXRpb25Jbml0LnkgKiBvcmllbnRhdGlv
bkluaXQueQorICAgICAgICAgICAgKyBvcmllbnRhdGlvbkluaXQueiAqIG9yaWVudGF0aW9uSW5p
dC56ICsgb3JpZW50YXRpb25Jbml0LncgKiBvcmllbnRhdGlvbkluaXQudyk7CisgICAgICAgIGlm
IChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWw8ZG91YmxlPihsZW5ndGgsIDApKQorICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAgb3Jp
ZW50YXRpb25Jbml0PSB7CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQueCAvIGxlbmd0aCwg
b3JpZW50YXRpb25Jbml0LnkgLyBsZW5ndGgsCisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQu
eiAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LncgLyBsZW5ndGgsCisgICAgICAgIH07CisgICAg
fQorCisgICAgLy8gICA4LiBSZXR1cm4gdHJhbnNmb3JtLgorICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlhSUmlnaWRUcmFuc2Zvcm0ocG9zaXRpb25Jbml0LCBvcmllbnRhdGlvbkluaXQpKTsK
K30KKworV2ViWFJSaWdpZFRyYW5zZm9ybTo6V2ViWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Q
b2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBET01Qb2ludEluaXQmIG9yaWVudGF0aW9uKQorICAg
IDogbV9wb3NpdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVhdGUocG9zaXRpb24pKQorICAgICwg
bV9vcmllbnRhdGlvbihET01Qb2ludFJlYWRPbmx5OjpjcmVhdGUob3JpZW50YXRpb24pKQorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJvcGVybHksIHBlciBzcGVjLgorICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IG1hdHJpeDsKKyAgICBhdXRvIG1hdHJpeERhdGEgPSBtYXRyaXgudG9Db2x1
bW5NYWpvckZsb2F0QXJyYXkoKTsKKyAgICBtX21hdHJpeCA9IEZsb2F0MzJBcnJheTo6Y3JlYXRl
KG1hdHJpeERhdGEuZGF0YSgpLCBtYXRyaXhEYXRhLnNpemUoKSk7Cit9CisKK1dlYlhSUmlnaWRU
cmFuc2Zvcm06On5XZWJYUlJpZ2lkVHJhbnNmb3JtKCkgPSBkZWZhdWx0OworCitjb25zdCBET01Q
b2ludFJlYWRPbmx5JiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcG9zaXRpb247Cit9CisKK2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFdlYlhS
UmlnaWRUcmFuc2Zvcm06Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmll
bnRhdGlvbjsKK30KKworUmVmPEZsb2F0MzJBcnJheT4gIFdlYlhSUmlnaWRUcmFuc2Zvcm06Om1h
dHJpeCgpIGNvbnN0Cit7CisgICAgYXV0byBtYXRyaXggPSBGbG9hdDMyQXJyYXk6OmNyZWF0ZSgx
Nik7CisgICAgbWF0cml4LT56ZXJvRmlsbCgpOworICAgIHJldHVybiBtYXRyaXg7Cit9CisKK1Jl
ZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjppbnZlcnNlKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3Blcmx5LgorICAgIHJldHVybiBXZWJY
UlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjdjYzFlN2FiNzE4ZDA0
ZjEyMDE2ODg0M2JiYjQ2ZjFmODQ1NDE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmgKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1
ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5
Lmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IERPTVBvaW50SW5pdDsKK2NsYXNz
IERPTVBvaW50UmVhZE9ubHk7CisKK2NsYXNzIFdlYlhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJYUlJpZ2lkVHJhbnNmb3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChXZWJYUlJpZ2lkVHJhbnNmb3JtKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlhS
UmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2Vi
WFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Q
b2ludEluaXQmKTsKKyAgICB+V2ViWFJSaWdpZFRyYW5zZm9ybSgpOworCisgICAgY29uc3QgRE9N
UG9pbnRSZWFkT25seSYgcG9zaXRpb24oKSBjb25zdDsKKyAgICBjb25zdCBET01Qb2ludFJlYWRP
bmx5JiBvcmllbnRhdGlvbigpIGNvbnN0OworICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgp
IGNvbnN0OworICAgIFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBpbnZlcnNlKCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgV2ViWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmLCBj
b25zdCBET01Qb2ludEluaXQmKTsKKworICAgIFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX3Bvc2l0
aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX29yaWVudGF0aW9uOworICAgIFJlZlB0
cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTAwY2FkN2YyZTA3
MzM0MWVlNTYzNTNlNzEwOWJiZTJmMTY4MDUyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93
LAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFsIERPTVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9u
YWwgRE9NUG9pbnRJbml0IG9yaWVudGF0aW9uKSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhj
ZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFt
ZT1YUlJpZ2lkVHJhbnNmb3JtCitdIGludGVyZmFjZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVBvaW50UmVhZE9ubHkgcG9zaXRp
b247CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01Qb2ludFJlYWRPbmx5
IG9yaWVudGF0aW9uOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgbWF0cml4
OworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRyYW5zZm9y
bSBpbnZlcnNlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNz
aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZDM1NjJmMmUzZjZjOGQ4ODk0M2IwOTEzOGY3NjY4NzAyMTU3
YTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlNlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlhSU2Vzc2lvbi5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJTZXNzaW9uKTsKKworV2ViWFJT
ZXNzaW9uOjp+V2ViWFJTZXNzaW9uKCkgPSBkZWZhdWx0OworCitYUkVudmlyb25tZW50QmxlbmRN
b2RlIFdlYlhSU2Vzc2lvbjo6ZW52aXJvbm1lbnRCbGVuZE1vZGUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2Vudmlyb25tZW50QmxlbmRNb2RlOworfQorCitYUlZpc2liaWxpdHlTdGF0ZSBXZWJY
UlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJp
bGl0eVN0YXRlOworfQorCitjb25zdCBXZWJYUlJlbmRlclN0YXRlJiBXZWJYUlNlc3Npb246OnJl
bmRlclN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fcmVuZGVyU3RhdGU7Cit9CisKK2Nv
bnN0IFdlYlhSSW5wdXRTb3VyY2VBcnJheSYgV2ViWFJTZXNzaW9uOjppbnB1dFNvdXJjZXMoKSBj
b25zdAoreworICAgIHJldHVybiAqbV9pbnB1dFNvdXJjZXM7Cit9CisKK3ZvaWQgV2ViWFJTZXNz
aW9uOjp1cGRhdGVSZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpCit7Cit9CisK
K3ZvaWQgV2ViWFJTZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVu
Y2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNlJiYpCit7Cit9CisKK2lu
dCBXZWJYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RD
YWxsYmFjaz4mJikKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBXZWJYUlNlc3Npb246OmNh
bmNlbEFuaW1hdGlvbkZyYW1lKGludCkKK3sKK30KKwordm9pZCBXZWJYUlNlc3Npb246OmVuZChF
bmRQcm9taXNlJiYpCit7Cit9CisKK2NvbnN0IGNoYXIqIFdlYlhSU2Vzc2lvbjo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYUlNlc3Npb24iOworfQorCit2b2lk
IFdlYlhSU2Vzc2lvbjo6c3RvcCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4YzIxY2E5YTkzNzRmZThkYjE1NjRmZTFhNjg1NDBh
OWUxNDY5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSU2Vzc2lvbi5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
KyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJjZUFycmF5LmgiCisjaW5jbHVkZSAiV2ViWFJS
ZW5kZXJTdGF0ZS5oIgorI2luY2x1ZGUgIldlYlhSU3BhY2UuaCIKKyNpbmNsdWRlICJYUkVudmly
b25tZW50QmxlbmRNb2RlLmgiCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKKyNp
bmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFJGcmFtZVJl
cXVlc3RDYWxsYmFjazsKK2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2U7CitzdHJ1Y3QgWFJSZW5k
ZXJTdGF0ZUluaXQ7CisKK2NsYXNzIFdlYlhSU2Vzc2lvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlhSU2Vzc2lvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU2Vz
c2lvbik7CitwdWJsaWM6CisgICAgdXNpbmcgUmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViWFJSZWZlcmVuY2VTcGFjZT4+Owor
ICAgIHVzaW5nIEVuZFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD47CisKKyAgICB2
aXJ0dWFsIH5XZWJYUlNlc3Npb24oKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTZXNz
aW9uPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTZXNzaW9uPjo6ZGVyZWY7CisK
KyAgICBYUkVudmlyb25tZW50QmxlbmRNb2RlIGVudmlyb25tZW50QmxlbmRNb2RlKCkgY29uc3Q7
CisgICAgWFJWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgY29u
c3QgV2ViWFJSZW5kZXJTdGF0ZSYgcmVuZGVyU3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBXZWJY
UklucHV0U291cmNlQXJyYXkmIGlucHV0U291cmNlcygpIGNvbnN0OworCisgICAgdm9pZCB1cGRh
dGVSZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpOworICAgIHZvaWQgcmVxdWVz
dFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhSUmVmZXJlbmNlU3BhY2VUeXBlJiwgUmVxdWVzdFJlZmVy
ZW5jZVNwYWNlUHJvbWlzZSYmKTsKKworICAgIGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVm
PFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYpOworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJh
bWUoaW50IGhhbmRsZSk7CisKKyAgICB2b2lkIGVuZChFbmRQcm9taXNlJiYpOworCisgICAgYm9v
bCBlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kZWQ7IH0KKworcHJvdGVjdGVkOgorICAgIC8v
IEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlNlc3Npb25FdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYo
KTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwor
CisgICAgWFJFbnZpcm9ubWVudEJsZW5kTW9kZSBtX2Vudmlyb25tZW50QmxlbmRNb2RlOworICAg
IFhSVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRlOworICAgIFJlZlB0cjxXZWJYUlJl
bmRlclN0YXRlPiBtX3JlbmRlclN0YXRlOworICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlQXJy
YXk+IG1faW5wdXRTb3VyY2VzOworICAgIGJvb2wgbV9lbmRlZCB7IGZhbHNlIH07Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjli
NDMwNzljMDYyMDVmMWVmZTgyZDUwNmM0OGMxZWEwN2ZlZGNmZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmlkbApAQCAtMCwwICsx
LDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJTZXNzaW9uCitd
IGludGVyZmFjZSBXZWJYUlNlc3Npb24gOiBFdmVudFRhcmdldCB7CisgICAgLy8gQXR0cmlidXRl
cworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkVudmlyb25tZW50QmxlbmRNb2RlIGVudmlyb25t
ZW50QmxlbmRNb2RlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUlZpc2liaWxpdHlTdGF0ZSB2
aXNpYmlsaXR5U3RhdGU7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJY
UlJlbmRlclN0YXRlIHJlbmRlclN0YXRlOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgV2ViWFJJbnB1dFNvdXJjZUFycmF5IGlucHV0U291cmNlczsKKworICAgIC8vIE1ldGhv
ZHMKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKG9wdGlvbmFsIFhSUmVuZGVyU3RhdGVJbml0
IHN0YXRlSW5pdCk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZTxXZWJYUlJlZmVyZW5jZVNwYWNl
PiByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoWFJSZWZlcmVuY2VTcGFjZVR5cGUgdHlwZSk7CisKKyAg
ICBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFtZShYUkZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxi
YWNrKTsKKyAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGxvbmcgaGFuZGxlKTsKKworICAg
IFByb21pc2U8dm9pZD4gZW5kKCk7CisKKyAgICAvLyBFdmVudHMKKyAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3Q7Cisg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmlucHV0c291cmNlc2NoYW5nZTsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0c3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbnNlbGVjdGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udmlzaWJpbGl0
eWNoYW5nZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNTU1ZGZlYjA1NTk1NzBjY2MyYzlkNzZmNzYzNGI5Nzc3NDg4ZGVjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNl
LmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlNwYWNlKTsKKworV2ViWFJTcGFjZTo6V2ViWFJT
cGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCit7Cit9CisKK1dlYlhSU3BhY2U6On5XZWJYUlNwYWNl
KCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
U3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJiNGE4YTQwZDNkMzZmMGI4ZTdkNjAyMTAwOGM2ZjUxYTg4YWIxMjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaApAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QlhSKQorCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgV2Vi
WFJTcGFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSU3BhY2U+LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU3BhY2UpOworcHVibGljOgorICAgIHZpcnR1
YWwgfldlYlhSU3BhY2UoKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT46OnJl
ZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYlhSU3BhY2U+OjpkZXJlZjsKKworcHJvdGVjdGVk
OgorICAgIFdlYlhSU3BhY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZl
bnRUYXJnZXQKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCitwcml2YXRlOgorICAgIC8vIEV2ZW50VGFy
Z2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlNwYWNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNzk0ZjE4YjIzMzE3
MDY3NmQxZDU0OTliOWExNzExNmFlZTdjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9
V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbnRl
cmZhY2VOYW1lPVhSU3BhY2UKK10gaW50ZXJmYWNlIFdlYlhSU3BhY2UgOiBFdmVudFRhcmdldCB7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3Rl
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYWM0ZDUyODAzNDRlYTQzNjExMzg0ZTI2MWE1ZmZkYWYyYzEzMTBjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAK
QEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViWFJTeXN0ZW0uaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlBs
YXRmb3JtWFIuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlN5c3RlbSk7
CisKK1JlZjxXZWJYUlN5c3RlbT4gV2ViWFJTeXN0ZW06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlhSU3lzdGVtKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKK30KKworV2ViWFJTeXN0
ZW06OldlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7
Cit9CisKK1dlYlhSU3lzdGVtOjp+V2ViWFJTeXN0ZW0oKSA9IGRlZmF1bHQ7CisKK3ZvaWQgV2Vi
WFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBw
b3J0ZWRQcm9taXNlJiYpCit7CisgICAgLy8gV2hlbiB0aGUgc3VwcG9ydHNTZXNzaW9uKG1vZGUp
IG1ldGhvZCBpcyBpbnZva2VkLCBpdCBNVVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2Ug
YW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gRW5z
dXJlIGFuIFhSIGRldmljZSBpcyBzZWxlY3RlZC4KKyAgICAvLyAgIDIuIElmIHRoZSBYUiBkZXZp
Y2UgaXMgbnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9N
RXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDMuIElmIHRoZSBYUiBk
ZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRlZCBtb2RlcyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJl
amVjdCBwcm9taXNlIHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICA0LiBFbHNlIHJlc29sdmUgcHJvbWlzZS4KK30K
Kwordm9pZCBXZWJYUlN5c3RlbTo6cmVxdWVzdFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3Qg
WFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSYmKQoreworICAgIFBsYXRmb3Jt
WFI6Okluc3RhbmNlOjpzaW5nbGV0b24oKTsKKworICAgIC8vIFdoZW4gdGhlIHJlcXVlc3RTZXNz
aW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2VkLCB0aGUgdXNlciBhZ2VudCBNVVNUIHJldHVybiBh
IG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFs
bGVsOgorICAgIC8vICAgMS4gTGV0IGltbWVyc2l2ZSBiZSB0cnVlIGlmIG1vZGUgaXMgImltbWVy
c2l2ZS12ciIgb3IgImltbWVyc2l2ZS1hciIsIGFuZCBmYWxzZSBvdGhlcndpc2UuCisgICAgLy8g
ICAyLiBJZiBpbW1lcnNpdmUgaXMgdHJ1ZToKKyAgICAvLyAgICAgMS4gSWYgcGVuZGluZyBpbW1l
cnNpdmUgc2Vzc2lvbiBpcyB0cnVlIG9yIGFjdGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBpcyBub3Qg
bnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gICAgIDIuIEVsc2Ugc2V0IHBlbmRp
bmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gYmUgdHJ1ZS4KKyAgICAvLyAgIDMuIEVuc3VyZSBhbiBY
UiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAgLy8gICA0LiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51
bGwsIHJlamVjdCBwcm9taXNlIHdpdGggbnVsbC4KKyAgICAvLyAgIDUuIEVsc2UgaWYgdGhlIFhS
IGRldmljZSdzIGxpc3Qgb2Ygc3VwcG9ydGVkIG1vZGVzIGRvZXMgbm90IGNvbnRhaW4gbW9kZSwg
cmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLgor
ICAgIC8vICAgNi4gRWxzZSBJZiBpbW1lcnNpdmUgaXMgdHJ1ZSBhbmQgdGhlIGFsZ29yaXRobSBp
cyBub3QgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbiwgcmVqZWN0IHByb21pc2Ugd2l0aCBh
ICJTZWN1cml0eUVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IC8vICAgNy4gSWYgcHJvbWlzZSB3YXMgcmVqZWN0ZWQgYW5kIGltbWVyc2l2ZSBpcyB0cnVlLCBz
ZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAgIDguIElmIHBy
b21pc2Ugd2FzIHJlamVjdGVkLCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDkuIExldCBz
ZXNzaW9uIGJlIGEgbmV3IFhSU2Vzc2lvbiBvYmplY3QuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6
ZSB0aGUgc2Vzc2lvbiB3aXRoIHNlc3Npb24gYW5kIG1vZGUuCisgICAgLy8gICAxMS4gSWYgaW1t
ZXJzaXZlIGlzIHRydWUsIHNldCB0aGUgYWN0aXZlIGltbWVyc2l2ZSBzZXNzaW9uIHRvIHNlc3Np
b24sIGFuZCBzZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAg
IDEyLiBFbHNlIGFwcGVuZCBzZXNzaW9uIHRvIHRoZSBsaXN0IG9mIGlubGluZSBzZXNzaW9ucy4K
KyAgICAvLyAgIDEzLiBSZXNvbHZlIHByb21pc2Ugd2l0aCBzZXNzaW9uLgorfQorCitjb25zdCBj
aGFyKiBXZWJYUlN5c3RlbTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJYUlN5c3RlbSI7Cit9CisKK3ZvaWQgV2ViWFJTeXN0ZW06OnN0b3AoKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlhYjE1ZDdh
ZWE0NDVkMTMzMmZjMjEyYTQ1Njg0NWRjZWQ5Y2VlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRl
ICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xh
c3MgV2ViWFJTZXNzaW9uOworc3RydWN0IFhSU2Vzc2lvbkluaXQ7CisKK2NsYXNzIFdlYlhSU3lz
dGVtIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChXZWJYUlN5c3RlbSk7CitwdWJsaWM6CisgICAgdXNpbmcgSXNTZXNz
aW9uU3VwcG9ydGVkUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPjsKKyAg
ICB1c2luZyBSZXF1ZXN0U2Vzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50
ZXJmYWNlPFdlYlhSU2Vzc2lvbj4+OworCisgICAgc3RhdGljIFJlZjxXZWJYUlN5c3RlbT4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5XZWJYUlN5c3RlbSgp
OworCisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJYUlN5c3RlbT46OnJlZjsKKyAgICB1c2luZyBS
ZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6ZGVyZWY7CisKKyAgICB2b2lkIGlzU2Vzc2lvblN1cHBv
cnRlZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlJiYpOworICAgIHZv
aWQgcmVxdWVzdFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJl
cXVlc3RTZXNzaW9uUHJvbWlzZSYmKTsKKworcHJvdGVjdGVkOgorICAgIFdlYlhSU3lzdGVtKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBXZWJYUlN5c3RlbUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAg
IHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBBY3RpdmVET01P
YmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJTeXN0ZW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4YTc2MGNjYTlkNmRmMzM4MjZmZDNl
M2RhZjgyMzIwNTFmMzkwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAor
ICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2lu
ZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJTeXN0ZW0KK10gaW50ZXJmYWNlIFdlYlhSU3lzdGVt
IDogRXZlbnRUYXJnZXQgeworICAgIC8vIE1ldGhvZHMKKyAgICBQcm9taXNlPHZvaWQ+IGlzU2Vz
c2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlIG1vZGUpOworICAgIFtOZXdPYmplY3RdIFByb21p
c2U8V2ViWFJTZXNzaW9uPiByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlIG1vZGUsIG9wdGlv
bmFsIFhSU2Vzc2lvbkluaXQgb3B0aW9ucyk7CisKKyAgICAvLyBFdmVudHMKKyAgICBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uZGV2aWNlY2hhbmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDQwM2I3MGRkYzFkY2Y5OThmMzE4
MzAxY2E2ZDAwNTIzZDBhY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSVmlldy5oIgorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJSaWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoV2ViWFJWaWV3KTsKKworUmVmPFdlYlhSVmlldz4gV2ViWFJWaWV3OjpjcmVhdGUo
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVmlldyk7Cit9CisKK1dlYlhSVmll
dzo6V2ViWFJWaWV3KCkKKyAgICA6IG1fZXllKFhSRXllOjpMZWZ0KQorICAgICwgbV9wcm9qZWN0
aW9uTWF0cml4KEZsb2F0MzJBcnJheTo6Y3JlYXRlKDApKQorICAgICwgbV90cmFuc2Zvcm0oV2Vi
WFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkpCit7Cit9CisKK1dlYlhSVmlldzo6fldlYlhSVmll
dygpID0gZGVmYXVsdDsKKworWFJFeWUgV2ViWFJWaWV3OjpleWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2V5ZTsKK30KKworY29uc3QgRmxvYXQzMkFycmF5JiBXZWJYUlZpZXc6OnByb2plY3Rp
b25NYXRyaXgoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb2plY3Rpb25NYXRyaXg7Cit9CisK
K2NvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIFdlYlhSVmlldzo6dHJhbnNmb3JtKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV90cmFuc2Zvcm07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNTgwYzZjZjdiNTI5YjdiZWU4Yjk5ODhiZmVlOTRlYmU4
ZTM4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSVmlldy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJYUkV5ZS5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlJpZ2lkVHJhbnNmb3JtOworCitjbGFzcyBXZWJY
UlZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlZpZXc+IHsKKyAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFdlYlhSVmlldyk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZpZXc+
IGNyZWF0ZSgpOworICAgIH5XZWJYUlZpZXcoKTsKKworICAgIFhSRXllIGV5ZSgpIGNvbnN0Owor
ICAgIGNvbnN0IEZsb2F0MzJBcnJheSYgcHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0OworICAgIGNv
bnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIFdlYlhSVmlldygpOworCisgICAgWFJFeWUgbV9leWU7CisgICAgUmVmPEZsb2F0MzJBcnJh
eT4gbV9wcm9qZWN0aW9uTWF0cml4OworICAgIFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBtX3Ry
YW5zZm9ybTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJW
aWV3LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMjVmNDI5ODE0NjYyMTczMjE0YzQ3ZDZkNWMxNDJlMzU4ZTIxOTIzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuaWRsCkBA
IC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBv
c2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFj
ZU5hbWU9WFJWaWV3CitdIGludGVyZmFjZSBXZWJYUlZpZXcgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBYUkV5ZSBleWU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBwcm9q
ZWN0aW9uTWF0cml4OworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJS
aWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNjNjOTVmMzY0M2FkYWIw
YTI4MWRhODhiM2NiYWU2NWE3OTdiMDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3ZXJQb3Nl
LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdl
YlhSVmlld2VyUG9zZT4gV2ViWFJWaWV3ZXJQb3NlOjpjcmVhdGUoKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlhSVmlld2VyUG9zZSk7Cit9CisKK1dlYlhSVmlld2VyUG9zZTo6V2Vi
WFJWaWV3ZXJQb3NlKCkgPSBkZWZhdWx0OworV2ViWFJWaWV3ZXJQb3NlOjp+V2ViWFJWaWV3ZXJQ
b3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBWZWN0b3I8UmVmPFdlYlhSVmlldz4+JiBXZWJYUlZp
ZXdlclBvc2U6OnZpZXdzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWV3czsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRl
ZDI1YjEwYzI1MzE5YTZlOTIxODUyODA2NGU1MWM4ZDRkOGYyMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmgKQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikK
KworI2luY2x1ZGUgIldlYlhSUG9zZS5oIgorI2luY2x1ZGUgIldlYlhSVmlldy5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgV2ViWFJWaWV3ZXJQb3NlIDogcHVibGljIFdlYlhSUG9zZSB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZpZXdlclBvc2U+IGNyZWF0ZSgpOworICAgIH5XZWJY
UlZpZXdlclBvc2UoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8V2ViWFJWaWV3Pj4mIHZpZXdz
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJWaWV3ZXJQb3NlKCk7CisKKyAgICBWZWN0
b3I8UmVmPFdlYlhSVmlldz4+IG1fdmlld3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSVmlld2VyUG9zZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFiZWIyYzA4NmY4OWJmYWZk
ZjVlMGJmMWY5NWMwZjQ4YzYwNzYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFs
PVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZhY2VOYW1lPVhSVmlld2VyUG9zZQor
XSBpbnRlcmZhY2UgV2ViWFJWaWV3ZXJQb3NlIDogV2ViWFJQb3NlIHsKKyAgICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFdlYlhSVmlldz4gdmlld3M7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2JhYTNjOGE1YTkzZTZkMWU5ZTY5M2ExOWQ0MTBjZmNkNTNmOWRkYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHAK
QEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViWFJWaWV3cG9ydC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJWaWV3cG9ydCk7CisKK1JlZjxXZWJYUlZpZXdwb3J0
PiBXZWJYUlZpZXdwb3J0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YlhSVmlld3BvcnQpOworfQorCitXZWJYUlZpZXdwb3J0OjpXZWJYUlZpZXdwb3J0KCkgPSBkZWZh
dWx0OworCitpbnQgV2ViWFJWaWV3cG9ydDo6eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK2ludCBXZWJYUlZpZXdwb3J0Ojp5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
aW50IFdlYlhSVmlld3BvcnQ6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
aW50IFdlYlhSVmlld3BvcnQ6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY4
MjQ2YTliMWQ0ZWFhM2EwNDExMTY0YjE2YjVlNDY5YzIwMzAxNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oCkBAIC0wLDAgKzEs
NTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2Vi
WFJWaWV3cG9ydCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSVmlld3BvcnQ+IHsKKyAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSVmlld3BvcnQpOworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8V2ViWFJWaWV3cG9ydD4gY3JlYXRlKCk7CisKKyAgICBpbnQgeCgpIGNvbnN0OworICAgIGlu
dCB5KCkgY29uc3Q7CisgICAgaW50IHdpZHRoKCkgY29uc3Q7CisgICAgaW50IGhlaWdodCgpIGNv
bnN0OworCitwcml2YXRlOgorICAgIFdlYlhSVmlld3BvcnQoKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5YjUxZWNmMTRj
MzYzZjE4MzQ1ODMzNTc4OWQ3ZDBjY2ZmMmM5NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJWaWV3cG9y
dAorXSBpbnRlcmZhY2UgV2ViWFJWaWV3cG9ydCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxv
bmcgeDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB5OworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHdpZHRoOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWE3OGU4YjBiNjdkMDMxODE0YTllZWFkNmQ4MjJjNTZhODdmMDZhNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExh
eWVyLmNwcApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViWFJXZWJHTExheWVyLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgiCisjZW5kaWYKKyNpbmNsdWRlICJXZWJYUlNlc3Npb24uaCIKKyNpbmNsdWRlICJX
ZWJYUlZpZXdwb3J0LmgiCisjaW5jbHVkZSAiWFJXZWJHTExheWVySW5pdC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0V4Y2VwdGlvbk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldl
YkdMTGF5ZXI6OmNyZWF0ZShjb25zdCBXZWJYUlNlc3Npb24mIHNlc3Npb24sIFdlYlhSUmVuZGVy
aW5nQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmIGluaXQpCit7Cisg
ICAgLy8gVGhlIFhSV2ViR0xMYXllcihzZXNzaW9uLCBjb250ZXh0LCBsYXllckluaXQpIGNvbnN0
cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzIHdoZW4gaW52b2tlZDoKKyAg
ICAvLyAgIDEuIExldCBsYXllciBiZSBhIG5ldyBYUldlYkdMTGF5ZXIKKworICAgIC8vICAgMi4g
SWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUgaXMgdHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChzZXNzaW9uLmVuZGVkKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgLy8g
ICAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDQuIElmIGNvbnRleHTigJlzIFhSIGNvbXBhdGli
bGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1FOiBUT0RPCisKKyAgICAvLyAgIDUuIEluaXRpYWxp
emUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29udGV4dC4KKyAgICAvLyAgIDYuIEluaXRpYWxpemUg
bGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXllckluaXTigJlzIGFudGlhbGlhcyB2YWx1ZS4KKyAg
ICAvLyAgIDcuIElmIGxheWVySW5pdOKAmXMgaWdub3JlRGVwdGhWYWx1ZXMgdmFsdWUgaXMgZmFs
c2UgYW5kIHRoZSBYUiBDb21wb3NpdG9yIHdpbGwgbWFrZSB1c2Ugb2YgZGVwdGggdmFsdWVzLCBJ
bml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVEZXB0aFZhbHVlcyB0byBmYWxzZS4KKyAgICAvLyAg
IDguIEVsc2UgSW5pdGlhbGl6ZSBsYXllcuKAmXMgaWdub3JlRGVwdGhWYWx1ZXMgdG8gdHJ1ZQor
ICAgIC8vICAgOS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgZnJhbWVidWZmZXIgdG8gYSBuZXcgb3Bh
cXVlIGZyYW1lYnVmZmVyIGNyZWF0ZWQgd2l0aCBjb250ZXh0LgorICAgIC8vICAgMTAuIEluaXRp
YWxpemUgdGhlIGxheWVy4oCZcyBzd2FwIGNoYWluLgorICAgIC8vICAgMTEuIElmIGxheWVy4oCZ
cyBzd2FwIGNoYWluIHdhcyB1bmFibGUgdG8gYmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhy
b3cgYW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1F
OiBUT0RPCisKKyAgICAvLyAgIDEyLiBSZXR1cm4gbGF5ZXIuCisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViWFJXZWJHTExheWVyKHNlc3Npb24sIFdURk1vdmUoY29udGV4dCksIGluaXQpKTsK
K30KKworV2ViWFJXZWJHTExheWVyOjpXZWJYUldlYkdMTGF5ZXIoY29uc3QgV2ViWFJTZXNzaW9u
JiwgV2ViWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJXZWJHTExheWVySW5p
dCYgaW5pdCkKKyAgICA6IG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQorICAgICwgbV9hbnRp
YWxpYXMoaW5pdC5hbnRpYWxpYXMpCisgICAgLCBtX2lnbm9yZURlcHRoVmFsdWVzKGluaXQuaWdu
b3JlRGVwdGhWYWx1ZXMpCit7CisgICAgbV9mcmFtZWJ1ZmZlci5vYmplY3QgPSBXVEY6OnN3aXRj
aE9uKG1fY29udGV4dCwKKyAgICAgICAgW10oY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJHTEZyYW1l
YnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqY29udGV4dCk7
CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0sCisjaWYgRU5BQkxF
KFdFQkdMMikKKyAgICAgICAgW10oY29uc3QgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+
JiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZl
cj4gZnJhbWVCdWZmZXIgPSBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUoKmNvbnRleHQpOworICAg
ICAgICAgICAgcmV0dXJuIGZyYW1lQnVmZmVyOworICAgICAgICB9LAorI2VuZGlmCisgICAgICAg
IFtdKFdURjo6TW9ub3N0YXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgKTsKK30KKworV2Vi
WFJXZWJHTExheWVyOjp+V2ViWFJXZWJHTExheWVyKCkgPSBkZWZhdWx0OworCitib29sIFdlYlhS
V2ViR0xMYXllcjo6YW50aWFsaWFzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hbnRpYWxpYXM7
Cit9CisKK2Jvb2wgV2ViWFJXZWJHTExheWVyOjppZ25vcmVEZXB0aFZhbHVlcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faWdub3JlRGVwdGhWYWx1ZXM7Cit9CisKK2NvbnN0IFdlYkdMRnJhbWVi
dWZmZXImIFdlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXIoKSBjb25zdAoreworICAgIHJldHVy
biAqbV9mcmFtZWJ1ZmZlci5vYmplY3Q7Cit9CisKK3Vuc2lnbmVkIFdlYlhSV2ViR0xMYXllcjo6
ZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIud2lk
dGg7Cit9CisKK3Vuc2lnbmVkIFdlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lYnVmZmVyLmhlaWdodDsKK30KKworUmVmUHRyPFdl
YlhSVmlld3BvcnQ+IFdlYlhSV2ViR0xMYXllcjo6Z2V0Vmlld3BvcnQoY29uc3QgV2ViWFJWaWV3
JikKK3sKKyAgICByZXR1cm4geyB9OworfQorCitkb3VibGUgV2ViWFJXZWJHTExheWVyOjpnZXRO
YXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKGNvbnN0IFdlYlhSU2Vzc2lvbiYpCit7CisgICAg
cmV0dXJuIDEuMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UldlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExh
eWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTJkMDQ4M2VkNWZiNjFlMjAyM2I0MzllZDFmZjI2MTFiZjFiZmMx
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJX
ZWJHTExheWVyLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFy
aWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMRnJhbWVidWZmZXI7
CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CisjaWYgRU5BQkxFKFdFQkdMMikKK2NsYXNz
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7CisjZW5kaWYKK2NsYXNzIFdlYlhSU2Vzc2lvbjsKK2Ns
YXNzIFdlYlhSVmlldzsKK2NsYXNzIFdlYlhSVmlld3BvcnQ7CitzdHJ1Y3QgWFJXZWJHTExheWVy
SW5pdDsKKworY2xhc3MgV2ViWFJXZWJHTExheWVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJX
ZWJHTExheWVyPiB7CitwdWJsaWM6CisgICAgCisgICAgdXNpbmcgV2ViWFJSZW5kZXJpbmdDb250
ZXh0ID0gV1RGOjpWYXJpYW50PAorICAgICAgICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PiwKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dD4KKyNlbHNlCisgICAgICAgIFdURjo6TW9ub3N0YXRlCisjZW5kaWYKKyAgICA+OworCisg
ICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBjcmVhdGUoY29uc3Qg
V2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJpbmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXll
ckluaXQmKTsKKyAgICB+V2ViWFJXZWJHTExheWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygp
IGNvbnN0OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0
IFdlYkdMRnJhbWVidWZmZXImIGZyYW1lYnVmZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJh
bWVidWZmZXJXaWR0aCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkg
Y29uc3Q7CisKKyAgICBSZWZQdHI8V2ViWFJWaWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgV2Vi
WFJWaWV3Jik7CisKKyAgICBzdGF0aWMgZG91YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVG
YWN0b3IoY29uc3QgV2ViWFJTZXNzaW9uJik7CisKK3ByaXZhdGU6CisgICAgV2ViWFJXZWJHTExh
eWVyKGNvbnN0IFdlYlhSU2Vzc2lvbiYsIFdlYlhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBY
UldlYkdMTGF5ZXJJbml0Jik7CisKKyAgICBXZWJYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0
OworICAgIGJvb2wgbV9hbnRpYWxpYXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0
aFZhbHVlcyB7IGZhbHNlIH07CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xG
cmFtZWJ1ZmZlcj4gb2JqZWN0OworICAgICAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAg
ICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9OworICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOGJhZDM3YmQ3YzJhMzljZTE2OWEwNjY0NGY4YTQ5NTljZWI5NjYxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaWRsCkBA
IC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250
ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIFdlYlhSV2ViR0xSZW5kZXJpbmdDb250ZXh0
OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJY
UiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVj
dG9yKFdlYlhSU2Vzc2lvbiBzZXNzaW9uLCBXZWJYUldlYkdMUmVuZGVyaW5nQ29udGV4dCBjb250
ZXh0LCBvcHRpb25hbCBYUldlYkdMTGF5ZXJJbml0IGxheWVySW5pdCksCisgICAgQ29uc3RydWN0
b3JNYXlUaHJvd0V4Y2VwdGlvbiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAg
IEludGVyZmFjZU5hbWU9WFJXZWJHTExheWVyCitdIGludGVyZmFjZSBXZWJYUldlYkdMTGF5ZXIg
eworICAgIC8vIEF0dHJpYnV0ZXMKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhbnRp
YWxpYXM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaWdub3JlRGVwdGhWYWx1ZXM7
CisKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdMRnJhbWVidWZmZXIg
ZnJhbWVidWZmZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJhbWVi
dWZmZXJXaWR0aDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmcmFtZWJ1
ZmZlckhlaWdodDsKKworICAgIC8vIE1ldGhvZHMKKyAgICBXZWJYUlZpZXdwb3J0PyBnZXRWaWV3
cG9ydChXZWJYUlZpZXcgdmlldyk7CisKKyAgICAvLyBTdGF0aWMgTWV0aG9kcworICAgIHN0YXRp
YyBkb3VibGUgZ2V0TmF0aXZlRnJhbWVidWZmZXJTY2FsZUZhY3RvcihXZWJYUlNlc3Npb24gc2Vz
c2lvbik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVu
dmlyb25tZW50QmxlbmRNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52
aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmY0MDcyYTcxNWNkZjVjYjcxMzNiMzI5
ZjljYjhlYTU3ODc2MGZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1
ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBoYUJsZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lZWZhMDg4Y2ZjZWQ2MTA5ZTljY2IyMWRlZjNjNDExZTg4Y2EzOGY0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2Rl
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisgICAgImFkZGl0aXZlIiwKKyAgICAiYWxwaGEtYmxl
bmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMWVh
N2UxZTdkODIyNjMyNWY2MGM4MjZmZmZiYzBiOWJhNGQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisg
ICAgUmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXll
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlhZDFlNDMwNGE2MmVhNjU5MzcwMzU0NjU5NTQ0MDM5NjIwMzgzOTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJFeWUgeworICAgICJub25lIiwKKyAgICAibGVmdCIs
CisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1MDQ5NzY4ODRlYzE4ZWVm
MzgxZWRhY2MyYTUzNTRmMWNmMjgzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXZWJYUkZyYW1lOworCitjbGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJl
ZkNvdW50ZWQ8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFj
ayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxi
YWNrOworCisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3Vi
bGUgaGlnaFJlc1RpbWVNcywgV2ViWFJGcmFtZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE2YjE1MWEzMWJhZjhlN2I5ODBiMTJmNTI1MDk0ODRmYzU5NDgxN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9N
SGlnaFJlc1RpbWVTdGFtcDsKKworWworICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGNhbGxiYWNr
IFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB2b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUs
IFdlYlhSRnJhbWUgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5k
ZWRuZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMzMzAzNGQwY2Q0OWFjOGRlZTkwMmEwODE2NDQ4MDQzNzhj
YmMyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJI
YW5kZWRuZXNzLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNz
IFhSSGFuZGVkbmVzcyB7CisgICAgTm9uZSwKKyAgICBMZWZ0LAorICAgIFJpZ2h0LAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUz
ZjcwNWE2MDBiZWViYjIxZTgxZDgxMmYyZDdkMGM3MmM1MDZmMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSSGFuZGVkbmVzcyB7CisgICAgIm5vbmUiLAor
ICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNjMxYWI1NTI5
NzA1NmNjMDYzZDc0NDY4OWQzZTAzM2NhMGZhNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1
dFNvdXJjZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUkZy
YW1lLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1JlZjxYUklucHV0U291cmNlRXZlbnQ+IFhSSW5wdXRTb3VyY2VFdmVudDo6Y3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0
ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSSW5wdXRTb3VyY2VF
dmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VF
dmVudDo6WFJJbnB1dFNvdXJjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IElu
aXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwg
aW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZnJhbWUoaW5pdGlhbGl6ZXIuZnJhbWUp
CisgICAgLCBtX2lucHV0U291cmNlKGluaXRpYWxpemVyLmlucHV0U291cmNlKQorICAgICwgbV9i
dXR0b25JbmRleChpbml0aWFsaXplci5idXR0b25JbmRleCkKK3sKKyAgICBBU1NFUlQobV9mcmFt
ZSk7CisgICAgQVNTRVJUKG1faW5wdXRTb3VyY2UpOworfQorCitYUklucHV0U291cmNlRXZlbnQ6
On5YUklucHV0U291cmNlRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFdlYlhSRnJhbWUmIFhS
SW5wdXRTb3VyY2VFdmVudDo6ZnJhbWUoKSBjb25zdAoreworICAgIHJldHVybiAqbV9mcmFtZTsK
K30KKworY29uc3QgV2ViWFJJbnB1dFNvdXJjZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjppbnB1dFNv
dXJjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2lucHV0U291cmNlOworfQorCitPcHRpb25h
bDxpbnQ+IFhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXgoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2J1dHRvbkluZGV4OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UklucHV0U291cmNlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzdmYzA0NzQ3YTJiZjExZWE4YjJmYjdi
NWNhOWY0NTRhYzE1MzAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJGcmFtZTsKK2NsYXNzIFdlYlhSSW5w
dXRTb3VyY2U7CisKK2NsYXNzIFhSSW5wdXRTb3VyY2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQ
dHI8V2ViWFJGcmFtZT4gZnJhbWU7CisgICAgICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlPiBp
bnB1dFNvdXJjZTsKKyAgICAgICAgT3B0aW9uYWw8aW50PiBidXR0b25JbmRleDsKKyAgICB9Owor
CisgICAgc3RhdGljIFJlZjxYUklucHV0U291cmNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3Ry
aW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1
YWwgflhSSW5wdXRTb3VyY2VFdmVudCgpOworCisgICAgY29uc3QgV2ViWFJGcmFtZSYgZnJhbWUo
KSBjb25zdDsKKyAgICBjb25zdCBXZWJYUklucHV0U291cmNlJiBpbnB1dFNvdXJjZSgpIGNvbnN0
OworICAgIE9wdGlvbmFsPGludD4gYnV0dG9uSW5kZXgoKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBYUklucHV0U291cmNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1Ry
dXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhSRnJhbWU+IG1fZnJhbWU7CisgICAgUmVmUHRyPFdl
YlhSSW5wdXRTb3VyY2U+IG1faW5wdXRTb3VyY2U7CisgICAgT3B0aW9uYWw8aW50PiBtX2J1dHRv
bkluZGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0
U291cmNlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNDhhNjAyZjhiMTI1OWZkODg5OWFlMTY3NWFmYWIy
NDQzYmYxNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10g
ZGljdGlvbmFyeSBYUklucHV0U291cmNlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1
aXJlZCBXZWJYUkZyYW1lIGZyYW1lOworICAgIHJlcXVpcmVkIFdlYlhSSW5wdXRTb3VyY2UgaW5w
dXRTb3VyY2U7Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUklucHV0U291cmNlRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QpLAorXSBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgewor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJGcmFtZSBmcmFtZTsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSSW5wdXRTb3VyY2UgaW5wdXRT
b3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA5YzIyZmZlNDU5MDVh
MDZmYTFjODkwMDc4NDMwZDcwMTY4MGEwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVk
ZSAiV2ViWFJJbnB1dFNvdXJjZS5oIgorI2luY2x1ZGUgIldlYlhSU2Vzc2lvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0
U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
SW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwg
aXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3Vy
Y2VzQ2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlh
bGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXpl
ciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAg
ICwgbV9hZGRlZChpbml0aWFsaXplci5hZGRlZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXpl
ci5yZW1vdmVkKQoreworfQorCitYUklucHV0U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgV2ViWFJTZXNzaW9uJiBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
ZXNzaW9uOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiYgWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRkZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2Fk
ZGVkOworfQorCitjb25zdCBWZWN0b3I8UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVt
b3ZlZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTRlY2M3NzRmOThkYjMwYTIyMjgxODBh
OGU2YWI2MzhhMmM0OGExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgKQEAgLTAsMCArMSw2NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUklucHV0U291cmNlOworY2xhc3Mg
V2ViWFJTZXNzaW9uOworCitjbGFzcyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDog
cHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7Cisg
ICAgICAgIFJlZlB0cjxXZWJYUlNlc3Npb24+IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQ
dHI8V2ViWFJJbnB1dFNvdXJjZT4+IGFkZGVkOworICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYlhS
SW5wdXRTb3VyY2U+PiByZW1vdmVkOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYs
IElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQoKTsKKworICAgIGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0
OworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNv
bnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4+JiByZW1vdmVk
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWY8V2ViWFJT
ZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0U291cmNlPj4g
bV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiBtX3JlbW92ZWQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291
cmNlc0NoYW5nZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGE0NjU5MmI5NmNiZDlmMWZmMTY3YmIx
OTEwYTZlMTQ3ZGFlYzA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApAQCAtMCwwICsxLDQ1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlv
bmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnRJbml0IDog
RXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBXZWJYUlNlc3Npb24gc2Vzc2lvbjsKKyAgICByZXF1
aXJlZCBGcm96ZW5BcnJheTxXZWJYUklucHV0U291cmNlPiBhZGRlZDsKKyAgICByZXF1aXJlZCBG
cm96ZW5BcnJheTxXZWJYUklucHV0U291cmNlPiByZW1vdmVkOworfTsKKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29u
dGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVy
ZmFjZSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTZXNzaW9uIHNlc3Npb247CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxXZWJYUklucHV0U291cmNlPiBhZGRl
ZDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFdlYlhS
SW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODk5YjM0
OGI1NWZkMjc5NDM4N2IzZmM4ZjRkMmMwZGYxMTNjZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRl
ICJXZWJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSAiV2ViWFJSaWdpZFRyYW5zZm9ybS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUlJlZmVyZW5jZVNwYWNlRXZlbnQ+IFhS
UmVmZXJlbmNlU3BhY2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0
IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFhSUmVmZXJlbmNlU3BhY2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKSk7Cit9CisKK1hSUmVmZXJlbmNlU3BhY2VFdmVudDo6WFJSZWZlcmVuY2VTcGFjZUV2
ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3Rl
ZCkKKyAgICAsIG1fcmVmZXJlbmNlU3BhY2UoaW5pdGlhbGl6ZXIucmVmZXJlbmNlU3BhY2UpCisg
ICAgLCBtX3RyYW5zZm9ybShpbml0aWFsaXplci50cmFuc2Zvcm0pCit7CisgICAgQVNTRVJUKG1f
cmVmZXJlbmNlU3BhY2UpOworICAgIEFTU0VSVChtX3RyYW5zZm9ybSk7Cit9CisKK1hSUmVmZXJl
bmNlU3BhY2VFdmVudDo6flhSUmVmZXJlbmNlU3BhY2VFdmVudCgpID0gZGVmYXVsdDsKKworY29u
c3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYgWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VT
cGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX3JlZmVyZW5jZVNwYWNlOworfQorCitjb25z
dCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuICptX3RyYW5zZm9ybTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1
MjBhN2NkZjE5MDA5OTE0NDMyZGZiYTllNzU4Yjg4ZjNlZDhmYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlJl
ZmVyZW5jZVNwYWNlOworY2xhc3MgV2ViWFJSaWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJSZWZl
cmVuY2VTcGFjZUV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5p
dCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxXZWJYUlJlZmVyZW5jZVNwYWNlPiByZWZl
cmVuY2VTcGFjZTsKKyAgICAgICAgUmVmUHRyPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IHRyYW5zZm9y
bTsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxYUlJlZmVyZW5jZVNwYWNlRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6
Tm8pOworICAgIHZpcnR1YWwgflhSUmVmZXJlbmNlU3BhY2VFdmVudCgpOworCisgICAgY29uc3Qg
V2ViWFJSZWZlcmVuY2VTcGFjZSYgcmVmZXJlbmNlU3BhY2UoKSBjb25zdDsKKyAgICBjb25zdCBX
ZWJYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBY
UlJlZmVyZW5jZVNwYWNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1Ry
dXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhSUmVmZXJlbmNlU3BhY2U+IG1fcmVmZXJlbmNlU3Bh
Y2U7CisgICAgUmVmUHRyPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE2OWMxNGMzNTgzZjEzZWY4ZDdjYWI0YzhjOTMxM2Q5NzEyYzJkNTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJl
bmNlU3BhY2VFdmVudC5pZGwKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlv
bmFyeSBYUlJlZmVyZW5jZVNwYWNlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJl
ZCBXZWJYUlJlZmVyZW5jZVNwYWNlIHJlZmVyZW5jZVNwYWNlOworICAgIFdlYlhSUmlnaWRUcmFu
c2Zvcm0gdHJhbnNmb3JtOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJSZWZlcmVuY2VTcGFjZUV2
ZW50SW5pdCBldmVudEluaXREaWN0KSwKK10gaW50ZXJmYWNlIFhSUmVmZXJlbmNlU3BhY2VFdmVu
dCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSUmVm
ZXJlbmNlU3BhY2UgcmVmZXJlbmNlU3BhY2U7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDQzNTg5NmFiOWMyNDA2NTAyMjUyYmQwMjkxYzU1MGIwZDkzNThkMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUu
aApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJSZWZlcmVu
Y2VTcGFjZVR5cGUgeworICAgIFZpZXdlciwKKyAgICBMb2NhbCwKKyAgICBMb2NhbEZsb29yLAor
ICAgIEJvdW5kZWRGbG9vciwKKyAgICBVbmJvdW5kZWQKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI5
OTZiYmU5MGVmNGRjM2VlZmY5YzNjNWZiZjc5ZGM5MGNlNTQ1MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7
CisgICAgInZpZXdlciIsCisgICAgImxvY2FsIiwKKyAgICAibG9jYWwtZmxvb3IiLAorICAgICJi
b3VuZGVkLWZsb29yIiwKKyAgICAidW5ib3VuZGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDcxODBiMGUw
Zjc4MmMyMTc2Nzk5MzdiMTRjOTg3YjNiNGYxMjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlICJXZWJYUldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3Vi
bGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBkZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVy
dGljYWxGaWVsZE9mVmlldzsKKyAgICBSZWZQdHI8V2ViWFJXZWJHTExheWVyPiBiYXNlTGF5ZXI7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJ
bml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2MGVhZTRiMmE5ZDQxZjk0ZGE3Y2IyNWNiMDk5YmE1ZTJhZWMxMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVy
U3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5
IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBk
ZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBXZWJY
UldlYkdMTGF5ZXI/IGJhc2VMYXllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmODc0OGM4YTAxYTI4ZGViNmI1
NDgxZmNjNTRhN2MxZDg3ZTZkY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYUlNlc3Npb25FdmVudC5oIgor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVmPFhSU2Vzc2lvbkV2ZW50PiBYUlNlc3Npb25FdmVudDo6Y3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSU2Vzc2lvbkV2
ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJTZXNzaW9uRXZlbnQ6
OlhSU2Vzc2lvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6
ZXIsIGlzVHJ1c3RlZCkKKyAgICAsIG1fc2Vzc2lvbihpbml0aWFsaXplci5zZXNzaW9uKQorewor
ICAgIEFTU0VSVChtX3Nlc3Npb24pOworfQorCitYUlNlc3Npb25FdmVudDo6flhSU2Vzc2lvbkV2
ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBXZWJYUlNlc3Npb24mIFhSU2Vzc2lvbkV2ZW50Ojpz
ZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fc2Vzc2lvbjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOGNlYjQwNzJk
NWVjZjY5YWYwZWZiZTcwYjNmOWY4NjQ0YWY5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmgKQEAgLTAsMCArMSw1NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1
ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJTZXNzaW9u
OworCitjbGFzcyBYUlNlc3Npb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6
CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQdHI8V2ViWFJTZXNz
aW9uPiBzZXNzaW9uOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSU2Vzc2lvbkV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0
ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUlNlc3Npb25FdmVudCgpOworCisgICAgY29uc3QgV2Vi
WFJTZXNzaW9uJiBzZXNzaW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgWFJTZXNzaW9uRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVm
UHRyPFdlYlhSU2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzE5MzNmMjk1ZTU0NDEwZWQ2
MGY2MzkwYWU1YzI4NGYyYmM5MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5pZGwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1X
RUJYUiwKK10gZGljdGlvbmFyeSBYUlNlc3Npb25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAg
IHJlcXVpcmVkIFdlYlhSU2Vzc2lvbiBzZXNzaW9uOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwK
KyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJT
ZXNzaW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorXSBpbnRlcmZhY2UgWFJTZXNzaW9uRXZl
bnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNl
c3Npb24gc2Vzc2lvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSU2Vzc2lvbkluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNz
aW9uSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MmEyNjgyMjk2ZTJlZDQ5MWE3N2I0MmQ4NzQwMDBhMmNl
YjY5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkluaXQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25n
Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBK
U1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBYUlNlc3Npb25Jbml0
IHsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVlPiByZXF1aXJlZEZlYXR1cmVzOworICAgIFZlY3Rv
cjxKU0M6OkpTVmFsdWU+IG9wdGlvbmFsRmVhdHVyZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDVjMGQ1MDcyNDVkNWE4
Mzc5Y2M2MjU5NWFjNTUxOWY5YTBkZGExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbApAQCAtMCwwICsxLDMyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFs
PVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkluaXQgeworICAgIHNlcXVlbmNlPGFueT4g
cmVxdWlyZWRGZWF0dXJlczsKKyAgICBzZXF1ZW5jZTxhbnk+IG9wdGlvbmFsRmVhdHVyZXM7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NzFhOWRhNTg0YmMwYTJkZjRkODFkYjA5ODQxMmQxZjI5NWIxZjk5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBYUlNlc3Npb25Nb2RlID0gUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGU7CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NWY2
MDZiNDY5NzlhMTJkN2MxNGMzNmIzMTU3NzEyOGQyYjFjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsCkBAIC0wLDAgKzEs
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
Q29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBYUlNlc3Npb25Nb2RlIHsKKyAgICAiaW5saW5lIiwK
KyAgICAiaW1tZXJzaXZlLXZyIiwKKyAgICAiaW1tZXJzaXZlLWFyIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmY2E0
NGU0NTFiOTdjNTYwMjZlMTQ1YjUyMjMzMWY4MTY1YmFlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBYUlRhcmdldFJheU1vZGUgeworICAg
IEdhemUsCisgICAgVHJhY2tlZFBvaW50ZXIsCisgICAgU2NyZWVuLAorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZTU0
NjNkMzRjZjY2ZTY4YzNjMjFiMzQ2YmJiOTc3M2FiZDhhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgImdhemUi
LAorICAgICJ0cmFja2VkLXBvaW50ZXIiLAorICAgICJzY3JlZW4iCit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
ZGQ4NTk3OGQ5ZDAxZmY3OTM2MmM3YzBiYjg1OGQ3NzdmYjI5MWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJY
UikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVmlzaWJpbGl0eVN0YXRl
IHsKKyAgICBWaXNpYmxlLAorICAgIFZpc2libGVCbHVycmVkLAorICAgIEhpZGRlbgorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMWVmMjc1ODBmYzE5OGYzNjc5NzFjMzg4YzBmOThmZmM5ZDZmZThlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0
ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSVmlzaWJpbGl0eVN0
YXRlIHsKKyAgICAidmlzaWJsZSIsCisgICAgInZpc2libGUtYmx1cnJlZCIsCisgICAgImhpZGRl
biIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xM
YXllckluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJhNDRkNTEwYTBlZjRlYzFkYzg5OTFmNTRmMmIwMDdkZDAzOGU3ZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xM
YXllckluaXQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBYUldl
YkdMTGF5ZXJJbml0IHsKKyAgICBib29sIGFudGlhbGlhcyB7IHRydWUgfTsKKyAgICBib29sIGRl
cHRoIHsgdHJ1ZSB9OworICAgIGJvb2wgc3RlbmNpbCB7IGZhbHNlIH07CisgICAgYm9vbCBhbHBo
YSB7IHRydWUgfTsKKyAgICBib29sIGlnbm9yZURlcHRoVmFsdWVzIHsgdHJ1ZSB9OworICAgIGRv
dWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yIHsgMS4wIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTQzNmQy
YjU0MzJjY2Y5ODUyYWNhZGViNzBkNDMyZTVhNTUzYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbApAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSV2ViR0xMYXllckluaXQgeworICAg
IGJvb2xlYW4gYW50aWFsaWFzID0gdHJ1ZTsKKyAgICBib29sZWFuIGRlcHRoID0gdHJ1ZTsKKyAg
ICBib29sZWFuIHN0ZW5jaWwgPSBmYWxzZTsKKyAgICBib29sZWFuIGFscGhhID0gdHJ1ZTsKKyAg
ICBib29sZWFuIGlnbm9yZURlcHRoVmFsdWVzID0gZmFsc2U7CisgICAgZG91YmxlIGZyYW1lYnVm
ZmVyU2NhbGVGYWN0b3IgPSAxLjA7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5
YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLmZkMGM5OWE0YzJkNzM1ZmMxMTBlMWI1
ZTdmNDcyZmQ1ZDFiNWFiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQxNCw0ICs0MTQsNiBA
QCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExF
X1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElD
QVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhU
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElO
R19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JU
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJF
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9D
T0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FN
UExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxF
X05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JL
X0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZF
UikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNP
Tk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VS
KSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVT
U0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVS
X01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJM
RV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRU5BQkxFX1dFQlhSID0gRU5BQkxFX1dFQlhSOwor
CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkg
JChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAk
KEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5U
KSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFC
TEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJM
RV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFC
TEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFC
TEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VS
U09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykg
JChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9B
TFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5B
QkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZ
X0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRS
T0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNF
KSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5B
QkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRB
TE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQo
RU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1df
U0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJ
VF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9M
SVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVf
UkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJM
RV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVO
QUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJM
RV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVf
U0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChF
TkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVf
VklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVO
QUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZ
Qk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05T
KSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5B
QkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJf
QVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfV0VCWFIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAwZDU5ODJlMWRjNjllYjY4MGYwOGRlYmQ4ZTZm
MjZhNzI0N2Q5ZGE1Li5lNzVlY2VmMTQwYWI1Y2VlZjFkMGQ2ZGJjMDY2ZTM1YzkyZDNmNTkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtNzAsMyArNzAsOCBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtVUE9XRVJHTElCX0lOQ0xV
REVfRElSU30KICAgICAke1dQRUJBQ0tFTkRfRkRPX0lOQ0xVREVfRElSU30KICkKKworaWYgKFVT
RV9PUEVOWFIpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgJHtPUEVOWFJfTElC
UkFSSUVTfSkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9S
SUVTICR7T1BFTlhSX0lOQ0xVREVfRElSU30pCitlbmRpZiAoKQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjA3NmMyMzQwMDE3OTc4NjYwNGZhYWY2MGM2ZmZm
N2VmZDNkNDhkNS4uZTQ2MGIzNDM2OWYwZGI1YzI4ZDgzNmRjYzdjNGFiOGFhMjI1MDRlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTQxMSw2ICs0MTEsMzEgQEAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4
dHVyZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmVWaWV3LmNwcAogTW9kdWxlcy93
ZWJncHUvV29ya2VyTmF2aWdhdG9yR1BVLmNwcAogCisjaWYgRU5BQkxFX1dFQlhSCisKK01vZHVs
ZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhS
RnJhbWUuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXku
Y3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmNwcCBAbm8tdW5p
ZnkKK01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIv
V2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSUmVu
ZGVyU3RhdGUuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3Jt
LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcCBAbm8tdW5pZnkK
K01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dl
YlhSU3lzdGVtLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmNwcCBAbm8t
dW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcCBAbm8tdW5pZnkKK01vZHVs
ZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhS
V2ViR0xMYXllci5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVu
dC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQu
Y3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIEBu
by11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVuaWZ5CisKKyNl
bmRpZgorCiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5jcHAKQEAgLTIwNzcsNiArMjEwMiw5IEBAIHBsYXRmb3JtL3RleHQvVGV4dEVuY29k
aW5nLmNwcAogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKIHBsYXRm
b3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCiAKK3BsYXRmb3JtL3hyL1BsYXRmb3Jt
WFIuY3BwIEBuby11bmlmeQorcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3BwIEBuby11
bmlmeQorCiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAogcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5
LmNwcAogcGx1Z2lucy9ET01QbHVnaW4uY3BwCkBAIC0zNTI1LDYgKzM1NTMsNDEgQEAgSlNYUGF0
aE5TUmVzb2x2ZXIuY3BwCiBKU1hQYXRoUmVzdWx0LmNwcAogSlNYU0xUUHJvY2Vzc29yLmNwcAog
CisjaWYgRU5BQkxFX1dFQkdMCisKK0pTV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwCitK
U1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuY3BwCitKU1hSRXllLmNwcAorSlNXZWJYUkZyYW1lLmNw
cAorSlNYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmNwcAorSlNYUkhhbmRlZG5lc3MuY3BwCitKU1dl
YlhSSW5wdXRTb3VyY2UuY3BwCitKU1dlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHAKK0pTWFJJbnB1
dFNvdXJjZUV2ZW50LmNwcAorSlNYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcAorSlNXZWJY
UlBvc2UuY3BwCitKU1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwCitKU1hSUmVmZXJlbmNlU3BhY2VF
dmVudC5jcHAKK0pTWFJSZWZlcmVuY2VTcGFjZVR5cGUuY3BwCitKU1dlYlhSUmVuZGVyU3RhdGUu
Y3BwCitKU1hSUmVuZGVyU3RhdGVJbml0LmNwcAorSlNXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcAor
SlNXZWJYUlNlc3Npb24uY3BwCitKU1hSU2Vzc2lvbkV2ZW50LmNwcAorSlNYUlNlc3Npb25Jbml0
LmNwcAorSlNYUlNlc3Npb25Nb2RlLmNwcAorSlNXZWJYUlNwYWNlLmNwcAorSlNXZWJYUlN5c3Rl
bS5jcHAKK0pTWFJUYXJnZXRSYXlNb2RlLmNwcAorSlNXZWJYUlZpZXcuY3BwCitKU1dlYlhSVmll
d2VyUG9zZS5jcHAKK0pTV2ViWFJWaWV3cG9ydC5jcHAKK0pTWFJWaXNpYmlsaXR5U3RhdGUuY3Bw
CitKU1dlYlhSV2ViR0xMYXllci5jcHAKK0pTWFJXZWJHTExheWVySW5pdC5jcHAKKworI2VuZGlm
CisKICNpZiBFTkFCTEVfR0FNRVBBRAogCiBKU0dhbWVwYWQuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmUxOTcxYjVlMmZl
NzliOWQ1MmEyZDRjZWE1NGJhYTJiMWM3NTg1ZC4uMDg0MjUzYWFmMDIxMmE1ZWY0YWNmZGY1YTRl
ZmUzMWM5OTM0MzVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNDgxNiw2ICs0ODE2LDYwIEBACiAJCUUxRTZFRUE4MEI2MjhE
QjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUU2RUVBNzBCNjI4REIzMDA1RjJGNzAgLyogSlNI
VE1MU2VsZWN0RWxlbWVudC5oICovOyB9OwogCQlFMUVDMjlBMDBCQjA0QzZCMDBFQTE4N0IgLyog
WFBhdGhOb2RlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVDMjk5RTBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFFRDhBQzMwQ0M0OUJF
MDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAv
KiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTFFRThCNzAyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRm
b3JtWFIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovOyB9OworCQlFMUVF
OEI3MTI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEI2RTI0MTJCMkE3MDBFNzk0RDYgLyog
UGxhdGZvcm1YUi5jcHAgKi87IH07CisJCUUxRUU4QjcyMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0
Zm9ybVhSLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEI2RjI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oICovOyB9OworCQlFMUVFOEI3
NjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDNzI0MTJCMTZGMDBFNzk0RDYgLyog
V2ViWFJWaWV3ZXJQb3NlLmggKi87IH07CisJCUUxRUU4Qjc3MjQxMzE5MUYwMEU3OTRENiAvKiBY
UlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRThBQzkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VU
eXBlLmggKi87IH07CisJCUUxRUU4Qjc4MjQxMzE5MUYwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJY
Ui5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThB
Q0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi87IH07CisJCUUxRUU4Qjc5
MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0IyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUmVuZGVyU3RhdGVJbml0LmggKi87IH07CisJCUUxRUU4QjdBMjQxMzE5MUYwMEU3OTRENiAv
KiBYUklucHV0U291cmNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThBQ0MyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VF
dmVudC5jcHAgKi87IH07CisJCUUxRUU4QjdCMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJpZ2lk
VHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCAq
LzsgfTsKKwkJRTFFRThCN0MyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0Uy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuY3BwICovOyB9OworCQlFMUVFOEI3
RDI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
U3BhY2UuaCAqLzsgfTsKKwkJRTFFRThCN0UyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaCAqLzsgfTsKKwkJRTFFRThCN0YyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJl
bmNlU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwICov
OyB9OworCQlFMUVFOEI4MDI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNw
cCAqLzsgfTsKKwkJRTFFRThCODEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ1
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmggKi87IH07CisJCUUxRUU4Qjgy
MjQxMzE5MUYwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSVmlzaWJpbGl0eVN0YXRlLmggKi87IH07CisJCUUxRUU4QjgzMjQxMzE5MUYwMEU3OTRENiAv
KiBXZWJYUldlYkdMTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRThBRDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5j
cHAgKi87IH07CisJCUUxRUU4Qjg0MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNl
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCAqLzsgfTsK
KwkJRTFFRThCODUyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QURDMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgKi87IH07CisJCUUxRUU4Qjg2MjQxMzE5MUYw
MEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UklucHV0U291cmNlQXJyYXkuaCAqLzsgfTsKKwkJRTFFRThCODcyNDEzMTkxRjAwRTc5NEQ2IC8q
IFdlYlhSVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRThBRTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5oICovOyB9OworCQlFMUVF
OEI4ODI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFMTI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJQb3NlLmggKi87IH07CisJCUUxRUU4Qjg5MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlN5c3Rl
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThB
RTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmggKi87IH07CisJCUUxRUU4QjhBMjQx
MzE5MUYwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFt
ZS5oICovOyB9OworCQlFMUVFOEI4QjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJQb3NlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU1MjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlBvc2UuY3BwICovOyB9OworCQlFMUVFOEI4QzI0MTMxOTFG
MDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU2MjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUklucHV0U291cmNlQXJyYXkuY3BwICovOyB9OworCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0
RDYgLyogWFJTZXNzaW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5o
ICovOyB9OworCQlFMUVFOEI4RTI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTgyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNwcCAqLzsgfTsKKwkJRTFFRThCOEYyNDEzMTk1
MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU5MjQxMkIxNzAwMEU3OTRENiAvKiBY
UkZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi87IH07CisJCUUxRUU4QjkwMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUlRhcmdldFJheU1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUu
aCAqLzsgfTsKKwkJRTFFRThCOTEyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRUIy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwICovOyB9OworCQlFMUVFOEI5MjI0
MTMxOTUwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5k
ZWRuZXNzLmggKi87IH07CisJCUUxRUU4QjkzMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUkZyYW1l
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4
QUYwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmNwcCAqLzsgfTsKKwkJRTFFRThCOTQy
NDEzMTk1MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUYxMjQxMkIxNzAwMEU3OTRENiAvKiBO
YXZpZ2F0b3JXZWJYUi5jcHAgKi87IH07CisJCUUxRUU4Qjk1MjQxMzE5NTAwMEU3OTRENiAvKiBY
UlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThBRjMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3Bh
Y2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4Qjk2MjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZp
ZXdwb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oICovOyB9OworCQlFMUVF
OEI5NzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFeWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUY1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5o
ICovOyB9OworCQlFMUVFOEI5ODI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGODI0MTJC
MTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgKi87IH07CisJCUUxRUU4Qjk5MjQxMzE5NTAw
MEU3OTRENiAvKiBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUY5MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLzsgfTsKKwkJRTFFRThCOUEy
NDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUZFMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlNlc3Npb25Nb2RlLmggKi87IH07CisJCUUxRUU4QjlCMjQxMzE5NTAwMEU3OTRENiAvKiBY
UldlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCAqLzsgfTsKKwkJ
RTFFRThCOUMyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA1MjQxMkIx
NzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi87IH07CisJCUUxRUU4QjlE
MjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJSaWdpZFRyYW5zZm9ybS5oICovOyB9OworCQlFMUVFOEI5RTI0MTMxOTUwMDBFNzk0
RDYgLyogWFJXZWJHTExheWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThCMDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllcklu
aXQuaCAqLzsgfTsKKwkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oICovOyB9OworCQlF
MUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjBCMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3BwICovOyB9OworCQlFMUVFOEJBMTI0MTMxOTYzMDBF
Nzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1
dFNvdXJjZS5jcHAgKi87IH07CisJCUUxRUU4QkEyMjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgKi87IH07CisJCUUxRUU4QkEz
MjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Np
b24uaCAqLzsgfTsKKwkJRTFFRThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxMjI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3LmNwcCAqLzsgfTsKKwkJRTFFRThCQTUyNDEzMTk2
MzAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbkluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjEzMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNl
c3Npb25Jbml0LmggKi87IH07CisJCUUxRUU4QkE2MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUlJl
ZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oICov
OyB9OworCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyogWFJXZWJYUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QjE1MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQuY3BwICovOyB9OworCQlFMUVFOEJBODI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJJbnB1
dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuaCAqLzsgfTsKIAkJ
RTFGMUU4MzAwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIz
OTEgLyogWFNMVEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMz
IC8qIENyeXB0b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGODBCOEUx
ODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpT
Q3J5cHRvS2V5UGFpci5oICovOyB9OwpAQCAtMTUxNTQsNiArMTUyMDgsOTEgQEAKIAkJRTFFQzI5
OUQwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBYUGF0aE5vZGVTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUVDMjk5RTBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQYXRoTm9kZVNldC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUM3MjQxMkIxNkYwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJWaWV3ZXJQb3NlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUM4MjQxMkIxNkYwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb25Nb2RlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNl
U3BhY2VUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUmVmZXJlbmNl
U3BhY2VUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNBMjQxMkIx
NzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOYXZpZ2F0b3JXZWJYUi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEFDQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZW5kZXJTdGF0ZUluaXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0MyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUklucHV0
U291cmNlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDRDI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQ0UyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVu
ZGVyU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJS
ZW5kZXJTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNGMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlhSU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThB
RDAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFENDI0MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUQ1MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSUmVuZGVyU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlz
aWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSVmlzaWJp
bGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ3MjQxMkIx
NzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBY
UlNlc3Npb25Jbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDgy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUldlYkdMTGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3Rh
dGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlzaWJpbGl0eVN0YXRlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBREEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
RW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFE
QjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9u
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFJTZXNzaW9u
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFERDI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlhSSW5wdXRTb3VyY2VBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFERTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFERjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBYUlZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEFFMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlhSVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFFMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSUG9zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJGcmFtZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFFNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU1MjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlBvc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViWFJQb3NlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUklucHV0U291cmNlQXJyYXku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFNzI0MTJCMTcwMDBFNzk0
RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFJTZXNzaW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTgy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlhSU3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRTkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJGcmFtZVJlcXVlc3RDYWxsYmFj
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFQTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhSVGFyZ2V0UmF5TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFF
QjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlZpZXdwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBRUMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlbmRlclN0YXRlSW5pdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
ZXdlclBvc2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlld2VyUG9zZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVFMjQxMkIxNzAwMEU3OTRENiAvKiBY
UkhhbmRlZG5lc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJIYW5kZWRu
ZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVGMjQxMkIxNzAwMEU3
OTRENiAvKiBYUklucHV0U291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0
U291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjAyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViWFJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUYxMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JXZWJYUi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUYyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0
YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlbmRlclN0YXRlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVm
ZXJlbmNlU3BhY2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlZpZXdwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUY1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkV5ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFGNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY3MjQxMkIxNzAwMEU3OTRENiAvKiBYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGODI0MTJC
MTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJYUlNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUldlYlhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkEyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUZCMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkMyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSV2ViR0xMYXllci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJXZWJHTExheWVyLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkQyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSU2Vzc2lvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb25F
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZFMjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUlNlc3Npb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlhSU2Vzc2lvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRkYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gWFJUYXJnZXRSYXlNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThCMDAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmln
aWRUcmFuc2Zvcm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmlnaWRUcmFuc2Zvcm0u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwMjI0MTJCMTcwMDBFNzk0
RDYgLyogWFJTeXN0ZW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU3lzdGVtLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDMyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSRXllLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkV5ZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJXZWJHTExheWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBY
UkVudmlyb25tZW50QmxlbmRNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThCMDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJSaWdpZFRyYW5zZm9ybS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5k
ZWRuZXNzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkhhbmRlZG5lc3MuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJX
ZWJHTExheWVySW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUldlYkdM
TGF5ZXJJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA5MjQxMkIx
NzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJJbnB1dFNvdXJjZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjBBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBYUlZpZXdwb3J0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlZpZXdlclBvc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwQzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJGcmFtZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJGcmFtZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklu
cHV0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhS
SW5wdXRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwRTI0
MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5hdmlnYXRvcldlYlhSLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBYUlNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEIxMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJXZWJHTExheWVySW5pdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJTZXNzaW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZp
ZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJWaWV3LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTMyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSU2Vzc2lvbkluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViWFJTZXNzaW9uSW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIx
NDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlJlZmVyZW5jZVNwYWNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QjE1MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYlhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gWFJXZWJYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gWFJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxODI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZUFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlQXJyYXku
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEI2QzI0MTJCMkE3MDBFNzk0
RDYgLyogUGxhdGZvcm1YUi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQbGF0Zm9ybVhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCNkUy
NDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGxhdGZvcm1YUi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtWFIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFGMUU4MkQwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8q
IFhTTFRFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRF
eHRlbnNpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRjgwQjg0MTgzMTcy
NDcwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcnlwdG9LZXlQYWlyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzk0LDYgKzIyNTMzLDcgQEAKIAkJCQk5
OTZFNTlEQTFERjAwRDQ1MDA2NjEyQjkgLyogd2ViZHJpdmVyICovLAogCQkJCUQwMEY1OTNFMjE2
RUNDNDMwMDBENzFEQiAvKiB3ZWJncHUgKi8sCiAJCQkJOTdBQUJDRjcxNEZBMDlCNTAwNzQ1N0FF
IC8qIHdlYnNvY2tldHMgKi8sCisJCQkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhy
ICovLAogCQkJKTsKIAkJCXBhdGggPSBNb2R1bGVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTI1OTQ0LDYgKzI2MDg0LDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQg
LyogbmV0d29yayAqLywKIAkJCQkxQTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICovLAog
CQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAorCQkJCUUxRUU4QjZCMjQx
MkIyQTcwMEU3OTRENiAvKiB4ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYgLyog
QWJvcnRhYmxlVGFza1F1ZXVlLmggKi8sCiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBBIC8q
IENhbGN1bGF0aW9uVmFsdWUuY3BwICovLAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIwQSAv
KiBDYWxjdWxhdGlvblZhbHVlLmggKi8sCkBAIC0yNzAzNiw2ICsyNzE3NywxMTMgQEAKIAkJCW5h
bWUgPSBUaHJlYWRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFFRThB
QzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9y
V2ViWFIuY3BwICovLAorCQkJCUUxRUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JX
ZWJYUi5oICovLAorCQkJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJY
Ui5pZGwgKi8sCisJCQkJRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLywKKwkJCQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8sCisJCQkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSRnJhbWUuaCAqLywKKwkJCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJ
bnB1dFNvdXJjZS5jcHAgKi8sCisJCQkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
SW5wdXRTb3VyY2UuaCAqLywKKwkJCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJ
bnB1dFNvdXJjZUFycmF5LmNwcCAqLywKKwkJCQlFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJJbnB1dFNvdXJjZUFycmF5LmggKi8sCisJCQkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSUG9zZS5jcHAgKi8sCisJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSUG9zZS5oICovLAorCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVy
ZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJS
ZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlJlbmRlclN0YXRlLmNwcCAqLywKKwkJCQlFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJSZW5kZXJTdGF0ZS5oICovLAorCQkJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlJpZ2lkVHJhbnNmb3JtLmNwcCAqLywKKwkJCQlFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJSaWdpZFRyYW5zZm9ybS5oICovLAorCQkJCUUxRUU4QjEzMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlNlc3Npb25Jbml0LmggKi8sCisJCQkJRTFFRThBRkUyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSU2Vzc2lvbk1vZGUuaCAqLywKKwkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJTcGFjZS5jcHAgKi8sCisJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
U3BhY2UuaCAqLywKKwkJCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0u
Y3BwICovLAorCQkJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5oICov
LAorCQkJCUUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovLAorCQkJ
CUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLywKKwkJCQlFMUVFOEIw
QjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCAqLywKKwkJCQlFMUVFOEFD
NzI0MTJCMTZGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi8sCisJCQkJRTFFRThBRUIy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwICovLAorCQkJCUUxRUU4QUY0MjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmggKi8sCisJCQkJRTFFRThBRDgyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgKi8sCisJCQkJRTFFRThBRjcyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLywKKwkJCQlFMUVFOEIw
NTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oICovLAorCQkJCUUx
RUU4QURBMjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCAqLywK
KwkJCQlFMUVFOEFGNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaCAqLywKKwkJCQlFMUVFOEIw
MzI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaWRsICovLAorCQkJCUUxRUU4QjBDMjQxMkIxNzAw
MEU3OTRENiAvKiBYUkZyYW1lLmlkbCAqLywKKwkJCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oICovLAorCQkJCUUxRUU4QUZCMjQxMkIxNzAwMEU3
OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbCAqLywKKwkJCQlFMUVFOEFFRTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggKi8sCisJCQkJRTFFRThCMDcyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5pZGwgKi8sCisJCQkJRTFFRThBRUYyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaWRsICovLAorCQkJCUUxRUU4QjE4MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUklucHV0U291cmNlQXJyYXkuaWRsICovLAorCQkJCUUxRUU4QUNDMjQxMkIxNzAwMEU3
OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QjA5MjQxMkIxNzAw
MEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEIwMDI0MTJCMTcw
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEFFNDI0MTJC
MTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgKi8sCisJCQkJRTFF
RThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8sCisJCQkJRTFFRThBRjYyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuaWRsICovLAorCQkJCUUxRUU4QUYzMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4
QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCAqLywKKwkJCQlF
MUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCAqLywK
KwkJCQlFMUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAq
LywKKwkJCQlFMUVFOEFGQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUu
aWRsICovLAorCQkJCUUxRUU4QUYyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlLmlk
bCAqLywKKwkJCQlFMUVFOEFDQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQu
aCAqLywKKwkJCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQu
aWRsICovLAorCQkJCUUxRUU4QjAxMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNmb3Jt
LmlkbCAqLywKKwkJCQlFMUVFOEIwRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmNwcCAq
LywKKwkJCQlFMUVFOEIxMTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmggKi8sCisJCQkJ
RTFFRThBREUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5pZGwgKi8sCisJCQkJRTFFRThB
REMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmNwcCAqLywKKwkJCQlFMUVFOEFF
NzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAqLywKKwkJCQlFMUVFOEFGRDI0
MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaWRsICovLAorCQkJCUUxRUU4QUQ3MjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAqLywKKwkJCQlFMUVFOEFDODI0MTJC
MTZGMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5pZGwgKi8sCisJCQkJRTFFRThBRDQyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU3BhY2UuaWRsICovLAorCQkJCUUxRUU4QjAyMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlN5c3RlbS5pZGwgKi8sCisJCQkJRTFFRThBRUEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
VGFyZ2V0UmF5TW9kZS5oICovLAorCQkJCUUxRUU4QUZGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRh
cmdldFJheU1vZGUuaWRsICovLAorCQkJCUUxRUU4QURGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
ZXcuaWRsICovLAorCQkJCUUxRUU4QUVEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdlclBvc2Uu
aWRsICovLAorCQkJCUUxRUU4QjBBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmlkbCAq
LywKKwkJCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAq
LywKKwkJCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaWRs
ICovLAorCQkJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCAqLywK
KwkJCQlFMUVFOEFGQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmlkbCAqLywKKwkJ
CQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oICovLAorCQkJ
CUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmlkbCAqLywKKwkJ
CQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmNwcCAqLywKKwkJCQlFMUVFOEFGOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJYUklucHV0
U291cmNlc0NoYW5nZUV2ZW50LmggKi8sCisJCQkpOworCQkJcGF0aCA9IHdlYnhyOworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJRTFFRThCNkIyNDEyQjJBNzAwRTc5NEQ2IC8q
IHhyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUVF
OEI2RDI0MTJCMkE3MDBFNzk0RDYgLyogb3BlbnhyICovLAorCQkJCUUxRUU4QjZDMjQxMkIyQTcw
MEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLywKKwkJCQlFMUVFOEI2RjI0MTJCMkE3MDBFNzk0
RDYgLyogUGxhdGZvcm1YUi5oICovLAorCQkJKTsKKwkJCXBhdGggPSB4cjsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUUxRUU4QjZEMjQxMkIyQTcwMEU3OTRENiAvKiBvcGVu
eHIgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRUU4
QjZFMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLywKKwkJCSk7CisJCQlwYXRo
ID0gb3BlbnhyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTFGMDQyNDMw
OTgzOTM4OTAwNjY5NEVBIC8qIHhtbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC0zMTE3OCw3ICszMTQyNiw2IEBACiAJCQkJQjJGQTNENTcwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHQW5pbWF0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJG
QTNENTkwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ2lyY2xlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJGQTNENUIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ2xpcFBhdGhFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDVBNkM3NzI0MTdCQTU5MDA2RTRDRDUgLyogUHNldWRv
Q2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDVGMEFC
NzVBNkYwMDBFNUFDNCAvKiBKU1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q2MTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdDdXJz
b3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q2MzBBQjc1QTZGMDAwRTVBQzQg
LyogSlNTVkdEZWZzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTcxNCw2ICszMTk2MSw3
IEBACiAJCQkJNkI1MDdBMjQyMzRCRjM0MTAwQkU3QzYyIC8qIE5hdmlnYXRvcklzTG9nZ2VkSW4u
aCBpbiBIZWFkZXJzICovLAogCQkJCTVFQTcyNUQ2MUFDQUJENTcwMEVBRDE3QiAvKiBOYXZpZ2F0
b3JNZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkU1OURGMURGMDEyOEQwMDY2
MTJCOSAvKiBOYXZpZ2F0b3JXZWJEcml2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc4
MjQxMzE5MUYwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExOUQ5MzRCMUFBMTFCMUUwMEI0
NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMTkyOCw2ICszMjE3Niw3IEBACiAJCQkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBs
YXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QkUxQzU3RkQxRTAw
NzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NkIwOUFD
NEQ0RjAwQTZBQUI0IC8qIFBsYXRmb3JtV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTFFRThCNzIyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMkJFNDgwMUZFODY0QTcwMDIwMzFDQyAvKiBQbGF5YmFja0RpcmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RBMjlBMDkxQ0JEOTlGNDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBMjlBMzIxQ0MwMUE5NTAwOTAxQ0NG
IC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggaW4gSGVhZGVycyAqLywKQEAgLTMx
OTg3LDYgKzMyMjM2LDcgQEAKIAkJCQkzNzJBREEzODE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVj
dGlvblNwYWNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTA1MjU2MTA1ODg3NDAwMEND
OUU5NSAvKiBQcm90ZWN0aW9uU3BhY2VIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4RTEx
QTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0
NUE2Qzc3MjQxN0JBNTkwMDZFNENENSAvKiBQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkY5NDVFQ0MxNjFGN0YzNjAwOTcxQkM4IC8qIFBzZXVkb0Vs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RDg0NjJFMUZFQUY2OTkwMENBMzY4MiAvKiBQ
dWJsaWNLZXlDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFOTIwMDk3NDhE
MDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMzE3Miw2ICszMzQyMiwyMSBAQAogCQkJCTVEMjFBODAzMTNFQ0U1REYwMEJC
NzA2NCAvKiBXZWJWVFRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIxMEI2OTgwMTQwQzE3
NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjEwQjY5ODIx
NDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTFFRThCN0UyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4QTI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJGcmFt
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCQTgyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhS
SW5wdXRTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg2MjQxMzE5MUYwMEU3OTRE
NiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg4
MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlBvc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4
QkE2MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUVFOEI4MTI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUQyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRU
cmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE1MjQxMzE5NjMwMEU3OTRENiAv
KiBXZWJYUlNlc3Npb25Jbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QTI0MTMxOTUw
MDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
N0QyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
RUU4Qjg5MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCODcyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSVmlldy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTFFRThCNzYyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTFFRThCOTYyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI1MTBBNDRFRkM3MDBGOTkyRTAgLyog
V2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVCQkMzRDgxQjY1OTg4MzAwRjUyNTNE
IC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzI2OCw2ICsz
MzUzMywyMSBAQAogCQkJCTFBQjdGQzg0MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFV0aWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjdGQzg2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3RkM4ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhW
YXJpYWJsZVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUMyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
RUU4Qjk3MjQxMzE5NTAwMEU3OTRENiAvKiBYUkV5ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCOEYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUxRUU4QjkyMjQxMzE5NTAwMEU3OTRENiAvKiBYUkhhbmRlZG5lc3MuaCBp
biBIZWFkZXJzICovLAorCQkJCUUxRUU4QjlGMjQxMzE5NTAwMEU3OTRENiAvKiBYUklucHV0U291
cmNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg0MjQxMzE5MUYwMEU3OTRENiAv
KiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc3MjQx
MzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUVFOEJBMzI0MTMxOTYzMDBFNzk0RDYgLyogWFJTZXNzaW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjkwMjQxMzE5NTAwMEU3OTRENiAvKiBYUlRh
cmdldFJheU1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjgyMjQxMzE5MUYwMEU3OTRE
NiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUIyNDEz
MTk1MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
OUUyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUxRUU4Qjk5MjQxMzE5NTAwMEU3OTRENiAvKiBYUldlYlhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MjE3RTAzMEE1RUNENDcwMERCOEQwMCAvKiBY
U0xJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlFQzA4MjQ1RTU5MDAxRTlB
QkMgLyogWFNMU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGMUU4MzAwQzNDMkJC
OTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTMzODAxLDYg
KzM0MDgxLDcgQEAKIAkJCQlDREYyQjAxNjE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDIxREJGREMyNzAwN0E3
RDk5IC8qIE5hdmlnYXRvckVNRS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE0QkIxMDE5NTRE
NjI3MDBGQTVDMkUgLyogTmF2aWdhdG9yR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MUVFOEI5NDI0MTMxOTUwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE1NjlEMTMwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfY2xhc3MubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTU2OUQxNjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19pbnN0YW5jZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDE4MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX3J1
bnRpbWUubW0gaW4gU291cmNlcyAqLywKQEAgLTMzODA4LDYgKzM0MDg5LDggQEAKIAkJCQlFMTY5
ODI2MDExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDRUEyODQ2NjIxNDFFODQ5MDBFNDA3RTggLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjcx
MjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUx
RUU4QjcwMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDI0
OTIxMjdCOTNFMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0g
aW4gU291cmNlcyAqLywKQEAgLTM0NDY4LDEwICszNDc1MSwyOSBAQAogCQkJCUYxMjE3MUY1MTZB
OENFRDIwMDAwNTNDQSAvKiBXZWJWVFRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVE
MjFBODAyMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjEwQjY5ODExNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMUVFOEI4MDI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCOTMyNDEzMTk1MDAw
RTc5NEQ2IC8qIFdlYlhSRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCQTEyNDEz
MTk2MzAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTFFRThCOEMyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMUVFOEI4QjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJQb3NlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjdGMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJl
ZmVyZW5jZVNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjdDMjQxMzE5MUYwMEU3
OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjdC
MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUUxRUU4Qjk4MjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxRUU4QjhFMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBNDI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJWaWV3
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QkEwMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJY
UlZpZXdlclBvc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCOTEyNDEzMTk1MDAwRTc5
NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCODMyNDEz
MTkxRjAwRTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAog
CQkJCUE4MzNDN0NDMEEyQ0YwNzQwMEQ1NzY2NCAvKiBYTGlua05hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4MzNDODBDMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMTVBMzZEOTExMDQ1NzI3MDBCN0I2MzkgLyogWE1MTlNOYW1lcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI3QTI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjk1MjQxMzE5NTAwMEU3OTRE
NiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThC
QTIyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MUVFOEI4NTI0MTMxOTFGMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRTFFRThCQTcyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSV2ViWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5o
CmluZGV4IDMwNWJjZjUxNDRlMDJlMzYxZTVkMzJmMDQ3NTQxNWU1OGI4NjVmZjMuLjk0ZjMxNjVl
MWYyN2JhMDJjYTlkNmIzMjI0MmNkMzEzNGViMTMyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURM
VHlwZXMuaApAQCAtNjIsNiArNjIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IElE
TFR5cGUgewogICAgIHVzaW5nIEltcGxlbWVudGF0aW9uVHlwZSA9IFQ7CiAgICAgdXNpbmcgU3Rv
cmFnZVR5cGUgPSBUOworICAgIHVzaW5nIFNlcXVlbmNlU3RvcmFnZVR5cGUgPSBUOwogCiAgICAg
dXNpbmcgUGFyYW1ldGVyVHlwZSA9IFQ7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBl
ID0gT3B0aW9uYWw8SW1wbGVtZW50YXRpb25UeXBlPjsKQEAgLTgyLDYgKzgzLDcgQEAgc3RydWN0
IElETFVuc3VwcG9ydGVkVHlwZSA6IElETFR5cGU8dm9pZD4geyB9Owogc3RydWN0IElETE51bGwg
OiBJRExUeXBlPHN0ZDo6bnVsbHB0cl90PiB7IH07CiAKIHN0cnVjdCBJRExBbnkgOiBJRExUeXBl
PEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+IHsKKyAgICB1c2luZyBTZXF1ZW5jZVN0b3JhZ2VU
eXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBKU0M6OkpTVmFs
dWU7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5j
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5o
CmluZGV4IGM0OWRkOTM4ZmNlMjcxNjVmNzQ3ZTU4ZmUwOGE1NTNkYmJmZGY1YzIuLjg2ZjdmMjc2
ZmMwOGFlMDdjMDEwMDAyMjJkMzU5ZjBlZmViNWFlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCkBAIC00MCw3ICs0MCw3IEBA
IG5hbWVzcGFjZSBEZXRhaWwgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgogc3RydWN0
IEdlbmVyaWNTZXF1ZW5jZUNvbnZlcnRlciB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IFZlY3Rv
cjx0eXBlbmFtZSBJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+OworICAgIHVzaW5nIFJldHVy
blR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6U2VxdWVuY2VTdG9yYWdlVHlwZT47CiAK
ICAgICBzdGF0aWMgUmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QqIG9iamVjdCkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNDRkNTBi
MjA3YzUzOGExOTc5MmI0ZjMyMjZhZmU2NTI4Nzc4NzIwOS4uMTg4MmE5ZWZmZTI0MGM0NTliZDVk
MzQyNjE3YTBjZDkzM2MyZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM1LDYgKzIzNSwyNSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oV29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oV3JpdGFi
bGVTdHJlYW0pIFwKICAgICBtYWNybyhYTUxIdHRwUmVxdWVzdCkgXAorICAgIG1hY3JvKFhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlKSBcCisgICAgbWFjcm8oWFJGcmFtZSkgXAorICAgIG1hY3JvKFhS
SW5wdXRTb3VyY2UpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlQXJyYXkpIFwKKyAgICBtYWNy
byhYUklucHV0U291cmNlRXZlbnQpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50KSBcCisgICAgbWFjcm8oWFJQb3NlKSBcCisgICAgbWFjcm8oWFJSZWZlcmVuY2VTcGFjZSkg
XAorICAgIG1hY3JvKFhSUmVmZXJlbmNlU3BhY2VFdmVudCkgXAorICAgIG1hY3JvKFhSUmVuZGVy
U3RhdGUpIFwKKyAgICBtYWNybyhYUlJpZ2lkVHJhbnNmb3JtKSBcCisgICAgbWFjcm8oWFJTZXNz
aW9uKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uRXZlbnQpIFwKKyAgICBtYWNybyhYUlNwYWNlKSBc
CisgICAgbWFjcm8oWFJTeXN0ZW0pIFwKKyAgICBtYWNybyhYUlZpZXcpIFwKKyAgICBtYWNybyhY
UlZpZXdlclBvc2UpIFwKKyAgICBtYWNybyhYUlZpZXdwb3J0KSBcCisgICAgbWFjcm8oWFJXZWJH
TExheWVyKSBcCiAgICAgbWFjcm8oYXBwZW5kRnJvbUpTKSBcCiAgICAgbWFjcm8oYXNzb2NpYXRl
ZFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIpIFwKICAgICBtYWNybyhhdXRvQWxsb2NhdGVD
aHVua1NpemUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGQ0OTYwYjljZjc1MWY0MTE0
MjJiNjcwODQxYTA1YjhiZDJjNzFjMjguLjVjZWVlNmY2ODE2ZGVlOWQ3OTljYjE1MGUxNzVhYzVk
N2VkNGFjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSkgXAog
ICAgIG1hY3JvKGluYWN0aXZlKSBcCiAgICAgbWFjcm8oaW5wdXQpIFwKKyAgICBtYWNybyhpbnB1
dHNvdXJjZXNjaGFuZ2UpIFwKICAgICBtYWNybyhpbnN0YWxsKSBcCiAgICAgbWFjcm8oaW52YWxp
ZCkgXAogICAgIG1hY3JvKGtleWRvd24pIFwKQEAgLTIzMSw2ICsyMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oc2Vla2VkKSBcCiAgICAgbWFjcm8oc2Vla2luZykgXAogICAg
IG1hY3JvKHNlbGVjdCkgXAorICAgIG1hY3JvKHNlbGVjdGVuZCkgXAogICAgIG1hY3JvKHNlbGVj
dGlvbmNoYW5nZSkgXAogICAgIG1hY3JvKHNlbGVjdHN0YXJ0KSBcCiAgICAgbWFjcm8oc2hpcHBp
bmdhZGRyZXNzY2hhbmdlKSBcCkBAIC0yODUsMTMgKzI4Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyh2ZXJzaW9uY2hhbmdlKSBcCiAgICAgbWFjcm8odmlzaWJpbGl0eWNoYW5n
ZSkgXAogICAgIG1hY3JvKHZvbHVtZWNoYW5nZSkgXAotICAgIG1hY3JvKHZyZGlzcGxheWFjdGl2
YXRlKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5Ymx1cikgXAotICAgIG1hY3JvKHZyZGlzcGxheWNv
bm5lY3QpIFwKLSAgICBtYWNybyh2cmRpc3BsYXlkZWFjdGl2YXRlKSBcCi0gICAgbWFjcm8odnJk
aXNwbGF5ZGlzY29ubmVjdCkgXAotICAgIG1hY3JvKHZyZGlzcGxheWZvY3VzKSBcCi0gICAgbWFj
cm8odnJkaXNwbGF5cHJlc2VudGNoYW5nZSkgXAogICAgIG1hY3JvKHdhaXRpbmcpIFwKICAgICBt
YWNybyh3YWl0aW5nZm9ya2V5KSBcCiAgICAgbWFjcm8od2ViZ2xjb250ZXh0Y2hhbmdlZCkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBhNTkwODYxMDY4ZjVlMzc2NjcxMzJmZDFhYTQy
ZTY3OTE4MTdkOGEwLi5hZWIyMzRhYTNlNDY3YzNhZWM5YjQ4ZTliMDA4Y2UxYTBlNjM2MDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtODUsMyArODUsNyBAQCBNZWRpYUtleU1lc3Nh
Z2VFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIFBvaW50ZXJFdmVudAogR1BVVW5j
YXB0dXJlZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9V0VCR1BVCiBFbnRlclBpY3R1cmVJblBpY3R1
cmVFdmVudCBjb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJCitYUklucHV0U291cmNl
RXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgY29uZGl0
aW9uYWw9V0VCWFIKK1hSUmVmZXJlbmNlU3BhY2VFdmVudCBjb25kaXRpb25hbD1XRUJYUgorWFJT
ZXNzaW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCmluZGV4IDgxZTdjYzlmMGI3NjUwNTYyYWFiZmVmZTA1YTVhM2FkMWJiYmI4
ZmYuLjgzN2ViNWRjZDBlOTk1Y2EwMjI0ZWNmZWJlNzBiY2UxZWI4MzNiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNTgsNCArNTgsNiBAQCBXb3JrZXIK
IFdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJCiBYTUxIdHRw
UmVxdWVzdAogWE1MSHR0cFJlcXVlc3RVcGxvYWQKLQorV2ViWFJTZXNzaW9uIGNvbmRpdGlvbmFs
PVdFQlhSCitXZWJYUlNwYWNlIGNvbmRpdGlvbmFsPVdFQlhSCitXZWJYUlN5c3RlbSBjb25kaXRp
b25hbD1XRUJYUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aAppbmRleCA1ZDFhZmRiZWQ1NWUzNmZlYjEwZjRlMzUwMzcxMDI2OWYzN2VlOWFlLi5kZTdlMzhk
MjVlYjIzM2M4ODVhODE0ZmRjYzIyYzZiYzM4YzQ1MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTM4LDYgKzEzOCwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgaW5z
cGVjdG9yQWRkaXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yQWRkaXRp
b25zRW5hYmxlZDsgfQogCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIHZvaWQgc2V0V2ViWFJFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fd2ViWFJFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAg
Ym9vbCB3ZWJYUkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYlhSRW5hYmxlZDsgfQorI2Vu
ZGlmCisKICAgICB2b2lkIHNldEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQoYm9vbCBp
c0VuYWJsZWQpIHsgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkID0gaXNFbmFibGVk
OyB9CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOyB9CiAKQEAgLTQ0Niw2ICs0
NTEsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1dlYlNvY2tldEVuYWJsZWQgeyB0cnVlIH07
CiAgICAgYm9vbCBtX2ZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIEVOQUJMRShXRUJY
UikKKyAgICBib29sIG1fd2ViWFJFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wg
bV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
YXJpYVJlZmxlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZv
cm1YUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNzI2OGVlNjc3YTM3OWE2YmY1NTE3MGI5OTA0ZjMzYmJlNzcxYWY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAKQEAg
LTAsMCArMSwyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvUGxhdGZvcm1YUi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwODgzYmQ1MmRiZjc1ODFhODU4Yzky
MWZkMjVhYjAwYjk4NmI3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS94ci9QbGF0Zm9ybVhSLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCitlbnVtIGNs
YXNzIFNlc3Npb25Nb2RlIHsKKyAgICBJbmxpbmUsCisgICAgSW1tZXJzaXZlVnIsCisgICAgSW1t
ZXJzaXZlQXIsCit9OworCisjaWYgRU5BQkxFKFdFQlhSKQorCitjbGFzcyBEZXZpY2UgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8RGV2aWNlPiB7CitwdWJsaWM6Cit9OworCitjbGFzcyBJbnN0YW5j
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIEluc3RhbmNlJiBzaW5nbGV0b24oKTsKKworcHJpdmF0
ZToKKyAgICBJbnN0YW5jZSgpOworICAgIH5JbnN0YW5jZSgpOworCisgICAgc3RydWN0IEltcGw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEltcGw+IG1faW1wbDsKK307CisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCisKK30gLy8gbmFtZXNwYWNlIFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTRmNGMy
YzE4ZjNhM2RlMTMxYjg3NDkzMTFhNDFhZWZlYmJlZDViCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEs
MTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpZiBVU0VfT1BFTlhSCisjaW5jbHVkZSA8b3BlbnhyL29wZW54ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorI2VuZGlmIC8vIFVTRV9PUEVOWFIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCisjaWYgVVNFX09QRU5YUgorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBYclN0cnVjdHVyZVR5cGUgU3RydWN0dXJlVHlwZT4KK1QgY3Jl
YXRlU3RydWN0dXJlKCkKK3sKKyAgICBUIG9iamVjdDsKKyAgICBzdGQ6Om1lbXNldCgmb2JqZWN0
LCAwLCBzaXplb2YoVCkpOworICAgIG9iamVjdC50eXBlID0gU3RydWN0dXJlVHlwZTsKKyAgICBv
YmplY3QubmV4dCA9IG51bGxwdHI7CisgICAgcmV0dXJuIG9iamVjdDsKK30KKworU3RyaW5nIHJl
c3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGluc3RhbmNlKQoreworICAg
IGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOworICAgIFhyUmVzdWx0IHJl
c3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZmZXIpOworICAgIGlm
IChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOwor
ICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOworfQor
CisjZGVmaW5lIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCBjYWxsLCBpbnN0YW5jZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAo
WFJfRkFJTEVEKHJlc3VsdCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBXVEZMb2dBbHdh
eXMoIiVzICVzOiAlc1xuIiwgX19mdW5jX18sIGNhbGwsIHJlc3VsdFRvU3RyaW5nKHJlc3VsdCwg
aW5zdGFuY2UpLnV0ZjgoKS5kYXRhKCkpOyBcCisgICAgICAgIHJldHVybjsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorCisjZW5kaWYgLy8gVVNFX09QRU5YUgorCitzdHJ1Y3QgSW5zdGFuY2U6OkltcGwg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEltcGwoKTsKKyAg
ICB+SW1wbCgpOworCisjaWYgVVNFX09QRU5YUgorICAgIFhySW5zdGFuY2UgbV9pbnN0YW5jZSB7
IFhSX05VTExfSEFORExFIH07CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfTsKKworSW5zdGFuY2U6
OkltcGw6OkltcGwoKQoreworI2lmIFVTRV9PUEVOWFIKKyAgICBXVEZMb2dBbHdheXMoIk9wZW5Y
UjogaW5pdGlhbGl6aW5nXG4iKTsKKworICAgIFsmXSB7CisgICAgICAgIHVpbnQzMl90IHByb3Bl
cnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAgICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyRW51bWVy
YXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKDAsICZwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyKTsK
KyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUFwaUxheWVyUHJv
cGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0
cHV0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9w
ZXJ0aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgVmVjdG9yPFhyQXBpTGF5ZXJQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHBy
b3BlcnR5Q291bnRPdXRwdXQpOworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVy
UHJvcGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyLCBwcm9wZXJ0aWVzLmRhdGEo
KSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXll
clByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygieHJF
bnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTogJXp1IHByb3BlcnRpZXNcbiIsIHByb3BlcnRp
ZXMuc2l6ZSgpKTsKKyAgICB9KCk7CisKKyAgICBbJl0geworICAgICAgICB1aW50MzJfdCBwcm9w
ZXJ0eUNvdW50T3V0cHV0IHsgMCB9OworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckVudW1l
cmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCAwLCAmcHJvcGVydHlDb3Vu
dE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJF
bnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisg
ICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1dCkgeworICAgICAgICAgICAgV1RGTG9nQWx3
YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpOiBubyBwcm9wZXJ0
aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3Rv
cjxYckV4dGVuc2lvblByb3BlcnRpZXM+IHByb3BlcnRpZXMocHJvcGVydHlDb3VudE91dHB1dCwK
KyAgICAgICAgICAgIFtdIHsKKyAgICAgICAgICAgICAgICBYckV4dGVuc2lvblByb3BlcnRpZXMg
b2JqZWN0OworICAgICAgICAgICAgICAgIHN0ZDo6bWVtc2V0KCZvYmplY3QsIDAsIHNpemVvZihY
ckV4dGVuc2lvblByb3BlcnRpZXMpKTsKKyAgICAgICAgICAgICAgICBvYmplY3QudHlwZSA9IFhS
X1RZUEVfRVhURU5TSU9OX1BST1BFUlRJRVM7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVj
dDsKKyAgICAgICAgICAgIH0oKSk7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRXcml0
dGVuIHsgMCB9OworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9u
UHJvcGVydGllcyhudWxscHRyLCBwcm9wZXJ0eUNvdW50T3V0cHV0LCAmcHJvcGVydHlDb3VudFdy
aXR0ZW4sIHByb3BlcnRpZXMuZGF0YSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1
bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpIiwgbV9pbnN0YW5j
ZSk7CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9u
UHJvcGVydGllcygpOiAlenUgZXh0ZW5zaW9uIHByb3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6
ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IHByb3BlcnRpZXMpIHsKKyAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiICBleHRlbnNpb24gJyVzJywgdmVyc2lvbiAldVxuIiwKKyAg
ICAgICAgICAgICAgICBwcm9wZXJ0eS5leHRlbnNpb25OYW1lLCBwcm9wZXJ0eS5leHRlbnNpb25W
ZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0oKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBz
X2FwcGxpY2F0aW9uTmFtZSA9ICJXZWJYUiAoV2ViS2l0KSI7CisgICAgc3RhdGljIGNvbnN0IHVp
bnQzMl90IHNfYXBwbGljYXRpb25WZXJzaW9uID0gMTsKKworICAgIHsKKyAgICAgICAgYXV0byBj
cmVhdGVJbmZvID0gY3JlYXRlU3RydWN0dXJlPFhySW5zdGFuY2VDcmVhdGVJbmZvLCBYUl9UWVBF
X0lOU1RBTkNFX0NSRUFURV9JTkZPPigpOworICAgICAgICBjcmVhdGVJbmZvLmNyZWF0ZUZsYWdz
ID0gMDsKKyAgICAgICAgc3RkOjptZW1jcHkoY3JlYXRlSW5mby5hcHBsaWNhdGlvbkluZm8uYXBw
bGljYXRpb25OYW1lLCBzX2FwcGxpY2F0aW9uTmFtZSwgWFJfTUFYX0FQUExJQ0FUSU9OX05BTUVf
U0laRSk7CisgICAgICAgIGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwaVZlcnNpb24gPSBY
Ul9DVVJSRU5UX0FQSV9WRVJTSU9OOworICAgICAgICBjcmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5m
by5hcHBsaWNhdGlvblZlcnNpb24gPSBzX2FwcGxpY2F0aW9uVmVyc2lvbjsKKyAgICAgICAgY3Jl
YXRlSW5mby5lbmFibGVkQXBpTGF5ZXJDb3VudCA9IDA7CisgICAgICAgIGNyZWF0ZUluZm8uZW5h
YmxlZEV4dGVuc2lvbkNvdW50ID0gMDsKKworICAgICAgICBYckluc3RhbmNlIGluc3RhbmNlOwor
ICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckNyZWF0ZUluc3RhbmNlKCZjcmVhdGVJbmZvLCAm
aW5zdGFuY2UpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyQ3JlYXRlSW5z
dGFuY2UoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIG1faW5zdGFuY2UgPSBpbnN0YW5jZTsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckNyZWF0ZUluc3RhbmNlKCk6IHVzaW5nIGluc3RhbmNl
ICVwXG4iLCBtX2luc3RhbmNlKTsKKyAgICB9CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfQorCitJ
bnN0YW5jZTo6SW1wbDo6fkltcGwoKQoreworfQorCitJbnN0YW5jZSYgSW5zdGFuY2U6OnNpbmds
ZXRvbigpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxJbnN0YW5jZT4gc19pbnN0
YW5jZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAgICBzdGQ6OmNh
bGxfb25jZShzX29uY2VGbGFnLAorICAgICAgICBbJl0geworICAgICAgICAgICAgc19pbnN0YW5j
ZS0+bV9pbXBsID0gbWFrZVVuaXF1ZTxJbXBsPigpOworICAgICAgICB9KTsKKyAgICByZXR1cm4g
c19pbnN0YW5jZS5nZXQoKTsKK30KKworSW5zdGFuY2U6Okluc3RhbmNlKCkgPSBkZWZhdWx0Owor
SW5zdGFuY2U6On5JbnN0YW5jZSgpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3BhY2UgUGxhdGZv
cm1YUgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFk
ZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uZmQwYzk5YTRjMmQ3MzVmYzExMGUxYjVlN2Y0
NzJmZDVkMWI1YWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MTQsNCArNDE0LDYgQEAgRU5BQkxFX1dJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAK
IEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChF
TkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNU
KSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChF
TkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVO
QUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxF
X0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFC
TEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19M
T09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJ
TFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVf
SU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFC
TEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAk
KEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQo
RU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVO
QUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9T
RVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxF
X01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NB
TEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hF
X1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9X
SElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JF
RU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9M
T0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JF
U09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykg
JChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJM
RV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJM
RV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hB
UkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJF
QU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RF
VEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMp
ICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9f
VVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFD
VElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxF
X1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykg
JChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVO
QUJMRV9YU0xUKTsKK0VOQUJMRV9XRUJYUiA9IEVOQUJMRV9XRUJYUjsKKworRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExF
X1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElD
QVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhU
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElO
R19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JU
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJF
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9D
T0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FN
UExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxF
X05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JL
X0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZF
UikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNP
Tk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VS
KSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVT
U0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVS
X01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJM
RV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX1dFQlhSKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDBiM2NlOTQzYWMzMDUwOGUwNGNkYjBjNzEx
MDIxZmM1Zjc0N2I0ZjguLjQ3MWIxOTNlZjUwYzU4MWQzMzQzMGI4ODY3NTE1ZmJjN2UyZjcxNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTk4Miw2ICsx
OTgyLDE1IEBAIEluY3JlbWVudGFsUERGTG9hZGluZ0VuYWJsZWQ6CiAgIGNvbmRpdGlvbjogSEFW
RShJTkNSRU1FTlRBTF9QREZfQVBJUykKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMKIAorV2ViWFJFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTog
ZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJYUiBEZXZpY2UgQVBJIgorICBodW1hblJl
YWRhYmxlRGVzY3JpcHRpb246ICJBZGRzIHN1cHBvcnQgZm9yIGFjY2Vzc2luZyB2aXJ0dWFsIHJl
YWxpdHkgKFZSKSBhbmQgYXVnbWVudGVkIHJlYWxpdHkgKEFSKSBkZXZpY2VzLCBpbmNsdWRpbmcg
c2Vuc29ycyBhbmQgaGVhZC1tb3VudGVkIGRpc3BsYXlzLCBvbiB0aGUgV2ViIgorICBjYXRlZ29y
eTogZXhwZXJpbWVudGFsCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
CisgIGNvbmRpdGlvbjogRU5BQkxFKFdFQlhSKQorCiAjIERlcHJlY2F0ZWQKIAogSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4IGZmMDQ0MjQxNzYzYzMwYzUwOWY5ODJh
N2QyZDZkZjZmNzA3ZTljZmYuLmVjN2MwNmQ1Y2I2NzcwMjFhNGE1OTc4MjQyZTIxMTAxNGNjNzAw
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVs
dFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLmNwcApAQCAtMjI4LDQgKzIyOCwxOCBAQCBib29sIGRlZmF1bHRJbmNyZW1lbnRh
bFBERkVuYWJsZWQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCWFIpCisKK2Jvb2wgZGVm
YXVsdFdlYlhSRW5hYmxlZCgpCit7CisjaWYgSEFWRShIQVZFX1NZU1RFTV9GRUFUVVJFX0ZMQUdT
KQorICAgIHJldHVybiBvc19mZWF0dXJlX2VuYWJsZWQoV2ViS2l0LCBXZWJYUik7CisjZW5kaWYK
KworICAgIHJldHVybiBmYWxzZTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKKworCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgKaW5kZXggNzE3Y2YyNDY1ZjQ0NTZkMmI1MGJmNzI3MGZk
YTFmYWY2ZDU0MDhiNS4uMjk1NWEwOTRkNjQzNmJmYzk2YmZkNjVkZjQ2ZmNlYTkxMTY5OWMxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmgKQEAgLTMzMiw0ICszMzIsOCBAQCBib29sIGRlZmF1bHRJbkFwcEJyb3dzZXJQcml2YWN5
KCk7CiBib29sIGRlZmF1bHRJbmNyZW1lbnRhbFBERkVuYWJsZWQoKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFdFQlhSKQorYm9vbCBkZWZhdWx0V2ViWFJFbmFibGVkKCk7CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA1NjE1Yjk5MWIzM2Zi
ZGQyYjA2NTkxZTc5YjU5MDZjODM0ZjNmMmQwLi5mM2U2YWI3NTViNzJjNzM5M2RmZGFhNWQyOGYx
MDk1M2NmYzViZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI4OSw2ICsyODksMTEgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIo
V2ViUGFnZUdyb3VwUHJveHkqIHBhZ2UKICAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRPZmZzY3JlZW5DYW52YXNFbmFibGVkKGVuYWJsZWQpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdFdl
YlhSRW5hYmxlZCIpCisgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0V2ViWFJFbmFibGVkKGVuYWJsZWQpOworI2VuZGlmCisKICAgICAvLyBNYXAgdGhl
IG5hbWVzIHVzZWQgaW4gTGF5b3V0VGVzdHMgd2l0aCB0aGUgbmFtZXMgdXNlZCBpbiBXZWJDb3Jl
OjpTZXR0aW5ncyBhbmQgV2ViUHJlZmVyZW5jZXNTdG9yZS4KICNkZWZpbmUgRk9SX0VBQ0hfT1ZF
UlJJREVfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oV2ViS2l0SmF2YUVuYWJs
ZWQsIEphdmFFbmFibGVkLCBqYXZhRW5hYmxlZCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwppbmRleCBlNmEzMDAyOWEwMWRmMTgwMmViZjcyZjU4ZmE4NDExNTgxZTgwMWI0Li5mZDBjOTlh
NGMyZDczNWZjMTEwZTFiNWU3ZjQ3MmZkNWQxYjVhYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwpAQCAtNDE0LDQgKzQxNCw2IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVO
QUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lP
Tl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNI
TUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJ
VElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9C
UkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElF
TlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5H
X0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xF
VkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkg
JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFS
S19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxF
TUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAk
KEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NF
U1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChF
TkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVf
RVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVf
TUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9T
VFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZB
TElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkg
JChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFC
TEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVC
TElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RP
UikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FV
RVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNF
X1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJ
T05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9M
UykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkg
JChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxF
X1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VM
RUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJ
T05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9E
RSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxM
U0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9X
RUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hf
SU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9X
RUJHUFUpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAk
KEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMp
ICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFC
TEVfV0VCWFIgPSBFTkFCTEVfV0VCWFI7CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJM
RV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
Q1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09Q
KSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5f
UElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVf
SU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVO
QUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQ
VFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNT
SU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElM
RV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5f
Q0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NL
KSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09M
VVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChF
TkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9T
QU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVB
QkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQo
RU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNF
U19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJH
TDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChF
TkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJM
RV9YU0xUKSAkKEVOQUJMRV9XRUJYUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZE9w
ZW5YUi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
ZmRmMDRjMTFlZGQwMzkwMGZjNGMxNDJjZTc2YTY2MTQ4MzBmNmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5
IHRvIGZpbmQgT3BlblhSLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIE9Q
RU5YUl9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLgorIyAgT1BFTlhSX0lOQ0xVREVfRElSUyAtIHRo
ZSBXUEUgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgT1BFTlhSX0xJQlJBUklFUyAtIGxpbmsgdGhl
c2UgdG8gdXNlIFdQRS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMg
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX09QRU5Y
UiBRVUlFVCBvcGVueHIpCisKK2ZpbmRfcGF0aChPUEVOWFJfSU5DTFVERV9ESVJTCisgICAgTkFN
RVMgb3BlbnhyL29wZW54ci5oCisgICAgSElOVFMgJHtQQ19PUEVOWFJfSU5DTFVERURJUn0gJHtQ
Q19PUEVOWFJfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoT1BFTlhSX0xJQlJBUklF
UworICAgIE5BTUVTIG9wZW54cl9sb2FkZXIKKyAgICBISU5UUyAke1BDX09QRU5YUl9MSUJESVJ9
ICR7UENfT1BFTlhSX0xJQlJBUllfRElSU30KKykKKworbWFya19hc19hZHZhbmNlZChPUEVOWFJf
SU5DTFVERV9ESVJTIE9QRU5YUl9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBhY2thZ2VIYW5k
bGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoT3BlblhS
IFJFUVVJUkVEX1ZBUlMgT1BFTlhSX0lOQ0xVREVfRElSUyBPUEVOWFJfTElCUkFSSUVTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0
aW9uc1dQRS5jbWFrZQppbmRleCBkZmY2NDkxYTczNDBmMWIzNWNlMGNjMjgxMjdkMmM3NDE2NTY1
NjYwLi4xMTUzNWU1NTIyYWFiYzFhOWE4OTRjNDM4Y2EyNjBmYWJmMjk2OTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQpAQCAtNDksNiArNDksOSBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfWFNMVCBQVUJMSUMgT04pCiAjIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMg
Y29tcGxldGVseSB1bnN1cHBvcnRlZC4KIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSBQUklWQVRFIE9OKQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgUFJJVkFU
RSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUEFJTlRJ
TkdfQVBJIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfVFlQRURfT00gUFJJVkFURSAke0VO
QUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQgUFJJ
VkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NUUkVBTSBQUklWQVRFICR7RU5BQkxFX0VYUEVS
SU1FTlRBTF9GRUFUVVJFU30pCkBAIC02Miw5ICs2NSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIFBSSVZBVEUgT0ZGKQogV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1RPVUNIX0VWRU5UUyBQUklWQVRFIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMMiBQUklWQVRF
ICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCX1JUQyBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9G
RUFUVVJFU30pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1BB
SU5USU5HX0FQSSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCi1XRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1RZUEVEX09NIFBSSVZBVEUg
JHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKLVdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTIFBSSVZBVEUgT04pCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCWFIgUFJJVkFURSAke0VOQUJMRV9F
WFBFUklNRU5UQUxfRkVBVFVSRVN9KQogCiAjIFB1YmxpYyBvcHRpb25zIHNwZWNpZmljIHRvIHRo
ZSBXUEUgcG9ydC4gRG8gbm90IGFkZCBhbnkgb3B0aW9ucyBoZXJlIHVubGVzcwogIyB0aGVyZSBp
cyBhIHN0cm9uZyByZWFzb24gd2Ugc2hvdWxkIHN1cHBvcnQgY2hhbmdpbmcgdGhlIHZhbHVlIG9m
IHRoZSBvcHRpb24sCkBAIC0xNzEsNiArMTcyLDExIEBAIGlmIChFTkFCTEVfV1BFX1FUX0FQSSBP
UiBVU0VfV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIGZpbmRfcGFja2FnZShX
UEVCYWNrZW5kX2ZkbyAxLjUuMCBSRVFVSVJFRCkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfV0VC
WFIpCisgICAgZmluZF9wYWNrYWdlKE9wZW5YUiAxLjAgUkVRVUlSRUQpCisgICAgU0VUX0FORF9F
WFBPU0VfVE9fQlVJTEQoVVNFX09QRU5YUiAke09wZW5YUl9GT1VORH0pCitlbmRpZiAoKQorCiBh
ZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQogYWRkX2RlZmluaXRpb25zKC1ER0VU
VEVYVF9QQUNLQUdFPSJXUEUiKQogYWRkX2RlZmluaXRpb25zKC1ESlNDX0dMSUJfQVBJX0VOQUJM
RUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKaW5kZXggZmY3ZDZkMWM3MGY5ZDEzMDA3YmRm
N2Q0NmU2NGQwN2Q3NzU2ZjBmOC4uYjU5MTk2NTExOThmMmUzODI1ZGNhOWI4M2VmNmRiN2UzNWEy
OGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtMjMwLDYgKzIzMCw3IEBAIG1h
Y3JvKFdFQktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X1dFQl9BVVRITiAiVG9nZ2xlIFdlYiBBdXRoTiBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCX0NSWVBUTyAiVG9nZ2xlIFdlYkNyeXB0byBT
dWJ0bGUtQ3J5cHRvIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJ
TkUoRU5BQkxFX1dFQl9SVEMgIlRvZ2dsZSBXZWJSVEMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCisg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQlhSICJUb2dnbGUgV2ViWFIgc3VwcG9y
dCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCAiVG9nZ2xlIHdpcmVsZXNzIHBsYXliYWNrIHRhcmdldCBzdXBwb3J0
IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfWFNMVCAiVG9n
Z2xlIFhTTFQgc3VwcG9ydCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShV
U0VfU1lTVEVNX01BTExPQyAiVG9nZ2xlIHN5c3RlbSBhbGxvY2F0b3IgaW5zdGVhZCBvZiBXZWJL
aXQncyBjdXN0b20gYWxsb2NhdG9yIiBQUklWQVRFICR7VVNFX1NZU1RFTV9NQUxMT0NfREVGQVVM
VH0pCkBAIC0yNTcsNiArMjU4LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBX
RUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfVklERU9fVFJBQ0sgRU5BQkxFX1ZJREVPKQogICAg
IFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVF
TiBFTkFCTEVfVklERU8pCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1RPVUNIX1NM
SURFUiBFTkFCTEVfVE9VQ0hfRVZFTlRTKQorICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJM
RV9XRUJYUiBFTkFCTEVfV0VCR0wpCiBlbmRtYWNybygpCiAKIG1hY3JvKF9XRUJLSVRfT1BUSU9O
X0VORk9SQ0VfREVQRU5EUyBfbmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBiZjUyOTliOGU3NDRlNDZjZjAzMDQwMTg1OTAzZjY2Y2QyOTcy
OWMxLi4xMmYzMWI1Njk2Y2YyOTAzNDEwNWNiZTllOWZiYjI2MzczYjE1M2RhIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMjAtMDMtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3Ig
V1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06IEFkZGVkIFdlYlhSLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZGVk
IEVOQUJMRV9XRUJYUi4KKwogMjAyMC0wMy0xMyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlPUyBhbmQgTWFjIHdrMiBdIGh0dHAvdGVzdHMv
aW4tYXBwLWJyb3dzZXItcHJpdmFjeS8gdGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDFjODQwMTVjYWZiYzUyZWM5ZWI1YjcyMjZmNjk4Mzk4
Y2M1ZTVmMGIuLjc2M2FhMmU4MzI5MTcwZWNiYzY4NzBmNGNjOTZiOTMwYTYxNzM5YWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTE4OSw2ICsxODksNyBAQCBt
eSAoCiAgICAgJHdlYmdsMlN1cHBvcnQsCiAgICAgJHdlYmdsU3VwcG9ydCwKICAgICAkd2ViZ3B1
U3VwcG9ydCwKKyAgICAkd2ViWFJTdXBwb3J0LAogICAgICR3aXJlbGVzc1BsYXliYWNrVGFyZ2V0
U3VwcG9ydCwKICAgICAkeHNsdFN1cHBvcnQsCiApOwpAQCAtNTk1LDYgKzU5Niw5IEBAIG15IEBm
ZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAid2ViZ3B1IiwgZGVzYyA9PiAiVG9nZ2xlIFdl
YkdQVSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdQVSIsIHZhbHVlID0+
IFwkd2ViZ3B1U3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gIndlYnhyIiwgZGVzYyA9PiAi
VG9nZ2xlIFdlYlhSIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCWFIiLCB2
YWx1ZSA9PiBcJHdlYlhSU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gIndlYi1hcGktc3Rh
dGlzdGljcyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQVBJIHN0YXRpc3RpY3Mgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MiLCB2YWx1ZSA9PiBcJHdl
YkFQSVN0YXRpc3RpY3NTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMw
MDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLmZkMGM5OWE0YzJkNzM1ZmMxMTBl
MWI1ZTdmNDcyZmQ1ZDFiNWFiMTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDE0LDQgKzQx
NCw2IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVf
QVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9B
UFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJM
RV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1Mz
X1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1B
R0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1ND
Uk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RS
QUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lC
SUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVf
REFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9J
TlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NV
UFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZF
QVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1F
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVf
RElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVS
U0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9J
T1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVO
QUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9Q
Uk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQ
VCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9S
WV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFC
TEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChF
TkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05F
VFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4p
ICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVO
QUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09C
U0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJC
RVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJf
UFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9X
T1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRI
RVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChF
TkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNF
Ul9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJB
Q0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJE
UklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5U
RVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9B
UElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQo
RU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfV0VCWFIgPSBFTkFCTEVfV0VC
WFI7CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAk
KEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05f
VjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VM
RU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5H
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAk
KEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQo
RU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAk
KEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAk
KEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVf
Q1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9F
WFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxF
X0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JL
RVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVD
VE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkg
JChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVO
VFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMp
ICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9T
T1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkg
JChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxF
X01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9T
VEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElP
TikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJM
RV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVS
RkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVf
UERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VG
RklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVO
QUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQo
RU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0Up
ICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQo
RU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVO
QUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZP
TlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9B
VVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxM
KSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05U
UykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVO
QUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4p
ICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZF
Ul9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFD
VElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkg
JChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9XRUJY
Uik7CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMzM0ZmRhZDg4YmQ2
YTdmNjA1NTg3YjcxNjMwZmMxZmUzOWUwMDdkOC4uZmZiNGUwZWI5YmVhMTNjMmQwMjA4M2I2MDQ4
MmY2Mzk2ZDdiNmVmZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZp
Z3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisg
ICAgICAgIEFkZGVkIGEgbmV3IGNvbXBpbGUgZmxhZyBmb3IgV0VCWFIgd2hpY2ggZGVwZW5kcyBv
biBXRUJHTC4KKworICAgICAgICBGb3IgdGhlIFdQRSBwb3J0LCBhZGRlZCBPcGVuWFIgZGV0ZWN0
aW9uIGFuZCBVU0VfT1BFTlhSIGRlZmluZSB0byBiZQorICAgICAgICB1c2VkIGluIHRoZSBzb3Vy
Y2VzLiBJdCBhbHNvIGFkZHMgYSBkZXBlbmRlbmN5IGJldHdlZW4gVVNFX09QRU5YUiBhbmQKKyAg
ICAgICAgRU5BQkxFX1dFQlhSLgorCisgICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMg
d29yayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kT3Bl
blhSLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFr
ZTogQWRkZWQgbWFuZGF0b3J5IE9wZW5YUiBkZXBlbmRlbmN5IGlmCisgICAgICAgIFdFQlhSIGlz
IGVuYWJsZWQgZXhwb3NpbmcgVVNFX09QRU5YUiB0byB0aGUgYnVpbGQuCisgICAgICAgICogU291
cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOiBBZGRlZCBFTkFCTEVfV0VCWFIuCisKIDIw
MjAtMDMtMTMgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAg
ICAgIFtDTWFrZV0gRWxlbWluYXRlIG1pc21hdGNoZXMgYmV0d2VlbiBGaW5kKiBtb2R1bGUgbmFt
ZXMgYW5kIHZhcmlhYmxlcyB0aGV5IHNldAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393612</attachid>
            <date>2020-03-15 04:18:26 -0700</date>
            <delta_ts>2020-03-15 04:22:23 -0700</delta_ts>
            <desc>Patch for landing v2</desc>
            <filename>bug-208702-20200315121821.patch</filename>
            <type>text/plain</type>
            <size>337729</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZGQ2MzIxMmQyOTJiNWQ3ODdkMjE4NzI1OTU5MjQ1YTRmMzQxZGVjLi43YmM1Mzg3YmFhYmY5MDc3
Y2MxNzhkMjQ2ZGE5MGNlYjA0ZDI3ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1
cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFC
TEVfV0VCWFIuCisKIDIwMjAtMDMtMTQgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHdpbmRvd3MgYnVpbGQgYnkgbWFraW5nIGNvbmZp
Z1NpemVUb1Byb3RlY3Qgc3RheSA0S0IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQwM2I4OWEwZDdjYzhlZDM2
Yjg4ODNhODc1YjA2NmY0ODliZmVmYi4uZDhjNWIxZTMyOTFkZDNlZDI1NjUwNTczMDgxZjk4YzU4
NzJiMjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxNiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElE
THMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmll
d2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBBZGRlZCB0aGUgSURMcyBkZWZpbmVkIGJ5
IHRoZSBzcGVjIHdpdGggdmVyeSBiYXNpYyBlbXB0eSBpbXBsZW1lbnRhdGlvbnMgdG8gZ2V0IHRo
ZW0KKyAgICAgICAgYnVpbHQuIEFwYXJ0IGZyb20gdGhhdCBhIHZlcnkgYmFzaWMgaW1wbGVtZW50
YXRpb24gb2YgdGhlIHJlcXVpcmVkIHBsYXRmb3JtIGNvZGUgdXNpbmcKKyAgICAgICAgT3BlblhS
IEFQSSB3YXMgYWxzbyBhZGRlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgbm8gbmV3IGZ1
bmN0aW9uYWxpdHkgd2FzIHJlYWxseSBhZGRlZCAoZW1wdHkgaW1wbGVtZW50YXRpb25zKS4gSG93
ZXZlcgorICAgICAgICBmb2xsb3cgdXAgcGF0Y2hlcyB3aWxsIGltcG9ydCB0aGUgYWxyZWFkeSBh
dmFpbGFibGUgV1BUIHRlc3RzIGZvciBXZWJYUi4KKworICAgICAgICBMYXJnZWx5IGJhc2VkIG9u
IHByZXZpb3VzIHdvcmsgYnkgxb1hbiBEb2JlcsWhZWsuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
TmF2aWdhdG9yV2ViWFIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcldl
YlhSOjp4cik6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJYUjo6ZnJvbSk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6OmJvdW5kc0dlb21ldHJ5IGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUkZyYW1lOjpXZWJYUkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhS
RnJhbWU6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJGcmFtZTo6Z2V0
Vmlld2VyUG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZyYW1lOjpnZXRQb3NlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9XZWJYUklucHV0U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUklu
cHV0U291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJjZTo6
V2ViWFJJbnB1dFNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjpo
YW5kZWRuZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OnRh
cmdldFJheU1vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJjZTo6
dGFyZ2V0UmF5U3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJj
ZTo6Z3JpcFNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6
OnByb2ZpbGVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3Vy
Y2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2VBcnJheTo6bGVu
Z3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2VBcnJheTo6aXRl
bSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXku
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXku
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJQb3NlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJQb3NlOjpXZWJYUlBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJQb3NlOjp0
cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJQb3NlOjplbXVsYXRlZFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVuY2VTcGFjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJYUlJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VT
cGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OldlYlhSUmVuZGVyU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJSZW5kZXJTdGF0ZTo6ZGVwdGhOZWFyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSUmVuZGVyU3RhdGU6OmlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJSaWdpZFRyYW5zZm9ybTo6V2ViWFJSaWdpZFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlJpZ2lkVHJhbnNmb3JtOjpwb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlJpZ2lkVHJhbnNmb3JtOjpvcmllbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlJpZ2lkVHJhbnNmb3JtOjptYXRyaXggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6aW52ZXJzZSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJY
UlNlc3Npb246OmVudmlyb25tZW50QmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSU2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSU2Vzc2lvbjo6cmVuZGVyU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJTZXNzaW9uOjppbnB1dFNvdXJjZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
ZXNzaW9uOjp1cGRhdGVSZW5kZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Np
b246OnJlcXVlc3RSZWZlcmVuY2VTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Np
b246OnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Np
b246OmNhbmNlbEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lv
bjo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0
TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OnN0b3ApOgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUlNwYWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNwYWNl
OjpXZWJYUlNwYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJTeXN0ZW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3Rl
bTo6V2ViWFJTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OmlzU2Vzc2lv
blN1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3RlbTo6cmVxdWVzdFNlc3Np
b24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OmFjdGl2ZURPTU9iamVjdE5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OnN0b3ApOgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUlN5c3RlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2Vi
WFJWaWV3LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXc6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXc6OldlYlhSVmlldyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlZpZXc6OmV5ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXc6
OnByb2plY3Rpb25NYXRyaXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3Ojp0
cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSVmlld2VyUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSVmlld2VyUG9zZTo6dmlld3MgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2Vi
WFJWaWV3ZXJQb3NlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3
ZXJQb3NlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdwb3J0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3cG9ydDo6eCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlZpZXdwb3J0Ojp5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmll
d3BvcnQ6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmlld3BvcnQ6Omhl
aWdodCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUldlYkdMTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUldlYkdMTGF5ZXI6OldlYlhSV2ViR0xMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUldlYkdMTGF5ZXI6OmFudGlhbGlhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UldlYkdMTGF5ZXI6Omlnbm9yZURlcHRoVmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUldlYkdMTGF5ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IpOgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJFeWUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9Y
UkV5ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RD
YWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0
Q2FsbGJhY2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVz
cy5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OlhSSW5wdXRTb3VyY2VFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmZyYW1lIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6aW5wdXRTb3VyY2UgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpidXR0b25JbmRleCBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQ6OnNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudDo6YWRkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudDo6cmVtb3ZlZCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQ6OlhSUmVmZXJlbmNlU3BhY2VFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnJlZmVyZW5jZVNwYWNlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSUmVmZXJlbmNlU3BhY2VFdmVudDo6dHJhbnNmb3JtIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlhSU2Vzc2lvbkV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJTZXNz
aW9uRXZlbnQ6OlhSU2Vzc2lvbkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lvbkV2
ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvWFJUYXJnZXRSYXlNb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJUYXJnZXRSYXlNb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZp
c2liaWxpdHlTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSVmlzaWJp
bGl0eVN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXJJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZCBPcGVuWFIg
bGlicmFyaWVzIGFuZCBpbmNsdWRlIHBhdGhzLgorICAgICAgICAqIFNvdXJjZXMudHh0OiBBZGRl
ZCBuZXcgY3BwIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6IEFk
ZGVkIFNlcXVlbmNlU3RvcmFnZVR5cGUuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252
ZXJ0U2VxdWVuY2VzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFt
ZXMuaW46IEFkZGVkIFdlYlhSIGV2ZW50cy4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluOiBBZGRlZCBXZWJYUiBldmVudCB0YXJnZXRzLgorICAgICAgICAqIHBhZ2UvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oOiBBZGRlZCBuZXcgcnVudGltZSBmZWF0dXJlIGZvciBXZWJYUi4K
KyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhSRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJYUkVuYWJs
ZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisgICAgICAgIChQbGF0Zm9y
bVhSOjpjcmVhdGVTdHJ1Y3R1cmUpOiBVdGlsaXR5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBPcGVuWFIg
c3RydWN0cy4KKyAgICAgICAgKFBsYXRmb3JtWFI6OnJlc3VsdFRvU3RyaW5nKTogVHJhbnNsYXRl
cyBPcGVuWFIgZXJyb3IgY29kZXMgdG8gc3RyaW5ncy4KKyAgICAgICAgKFBsYXRmb3JtWFI6Oklu
c3RhbmNlOjpJbXBsOjpJbXBsKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Okluc3RhbmNlOjpJbXBs
Ojp+SW1wbCk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6c2luZ2xldG9uKToKKwog
MjAyMC0wMy0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtU
cmVlIGJ1aWxkaW5nXSBSZXNldCB0aGUgZnJhZ21lbnRlZCBmbG93IHN0YXR1cyBiZWZvcmUgY2Fs
bGluZyBjaGlsZC53aWxsQmVSZW1vdmVkRnJvbVRyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAw
ZmNhMWY3ZmRlMzUwNzZlYWJhNjY4NWNkNTFjNzllZmUyNGI2OTBmLi4wOTQzOTNlOTliNDBmN2Fh
MDNjMzYwNWE2ZmVjMjQyZjgzZDUzMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9u
IGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFCTEVfV0VC
WFIuCisKIDIwMjAtMDMtMTIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU10gX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQgc2hv
dWxkIG5vdCBiZSBjYWxsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNThmNGVmMDQ1YTFmY2MzN2Y4ZWNlYThiOTA3
MTQwMDIyOGE5YTE1MS4uYzMxMGM4ZWI3OTdjZTBkMDQ4ZGQ1ODQ2Y2VmOTk2OTVmNWZmYWRmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFu
ZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBBZGRlZCBXZWJYUiB0byB0aGUgbGlzdCBvZiBleHBlcmltZW50
YWwgZmVhdHVyZXMuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sOiBBZGRlZCBXZWJYUiBmZWF0dXJlLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJF
bmFibGVkKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNl
Rm9yVGVzdFJ1bm5lcik6CisKIDIwMjAtMDMtMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXS1dlYlZpZXcuX25lZ290aWF0ZWRMZWdhY3lU
TFMgc2hvdWxkIGJlIGNvcnJlY3QgYWZ0ZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb25zCkBAIC04
MjMsNiArODQwLDIyIEBACiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
ICAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKIAorMjAy
MC0wMy0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBE
cm9wIHVudXNlZCBFbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIC8gRGlzYWJs
ZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgSVBDIG1lc3NhZ2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg5NzMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU5NjgzOTQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgUmVtb3ZlIHR3byB1bnVzZWQgSVBDIG1lc3NhZ2VzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MjAtMDMtMTEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIGVuY29kZU5hdGl2ZUltYWdlKCkgc2hvdWxkIHBhc3MgaW1h
Z2VTaXplIHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBjMWFlODdjMThhN2VlYWYwMzUzZWM4MzMxMDY0OWViMjFhMTYz
ZWEzLi5lZThiZGNmODZjNWI2Yzc2OGEyZjYxZDEzZGQzNjQxMzQxNTQ3MThiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExz
LCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLgorCiAyMDIwLTAzLTEyICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3QgcHJlZmVyZW5j
ZSBoYW5kbGluZyBhbmQgbmFtaW5nIGNvbnZlbnRpb25zIGluIEFwcEJvdW5kIGJyb3dzaW5nIHBy
ZWZlcmVuY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJl
YmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uODFkYWZlNTliNTEwODY2MzhjZTY2NGQyMDcxNDRkNDBi
ZTI4MTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzk0LDYgKzM5NCw4IEBAIEVO
QUJMRV9XRUJHUFVfYXBwbGV0dm9zID0gRU5BQkxFX1dFQkdQVTsKIEVOQUJMRV9XRUJHUFVfbWFj
b3N4ID0gJChFTkFCTEVfV0VCR1BVJChXS19NQUNPU18xMDE0KSk7CiBFTkFCTEVfV0VCR1BVX01B
Q09TX1NJTkNFXzEwMTQgPSBFTkFCTEVfV0VCR1BVOwogCitFTkFCTEVfV0VCWFIgPSBFTkFCTEVf
V0VCWFI7CisKIEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MgPSA7CiAKIEVOQUJMRV9XRUJfQVVE
SU8gPSBFTkFCTEVfV0VCX0FVRElPOwpAQCAtNDE0LDQgKzQxNiw0IEBAIEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBF
TkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkg
JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5B
QkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9D
U1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxF
X0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9P
UCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lO
X1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxF
X0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChF
TkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVO
QUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVO
QUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NB
UFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VT
U0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9N
RVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9T
UEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJ
TEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNP
TFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVf
U0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJF
QUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFN
U19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAk
KEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VT
RVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJ
T05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9X
RUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VC
R0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQo
RU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFC
TEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9W
MykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNT
SU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVO
VF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElP
TklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVS
SU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRT
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQ
SSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVM
NCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19N
T0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1Mp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5f
V09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVU
UlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVf
RVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFU
VElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01F
RElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVE
SUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJF
QU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVO
QUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElE
QVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVf
T1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5B
QkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElD
X1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikg
JChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZ
KSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VT
QUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05T
KSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykg
JChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNU
X0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NS
RUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJE
UklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5U
RVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJH
UFUpICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVO
QUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxF
X1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZGVkZmExNGQ1YTVkZGRhODRlMzM1YmZkNDg1ZTc1NTA5
N2ZhZWM1Ny4uNjgwMmNjOGNjYjE1YTg0ZjExZDBkM2YwNzdmY2U5MjdiNjQ0MDY5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCkBAIC0xODAsNiArMTgwLDcgQEAKICNpZiAoVVNFX0FOR0xFICYmIChVU0VfT1BFTkdM
IHx8IFVTRV9PUEVOR0xfRVMgfHwgKGRlZmluZWQoVVNFX0VHTCkgJiYgVVNFX0VHTCkpKSAmJiAh
VVNFKFRFWFRVUkVfTUFQUEVSKQogI2Vycm9yIFVTRV9BTkdMRSBpcyBpbmNvbXBhdGlibGUgd2l0
aCBVU0VfT1BFTkdMLCBVU0VfT1BFTkdMX0VTIGFuZCBVU0VfRUdMCiAjZW5kaWYKKwogI2VuZGlm
CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dM
KSAmJiAhZGVmaW5lZChVU0VfVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xOTAsMyArMTkxLDQgQEAK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpCiAjZGVmaW5lIFVT
RV9BQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggMmVmY2UwZDNkOTQ1MWM1MTQwZjdjZmJlNjIyM2UyZmYzOTI4N2Y1My4uMTI3NmZj
ZTFkN2E0ZDJmMGVkYmIyMjZhZDE3NzNiYjlmNDQyMmFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTY0LDYgKzY0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvd2ViZ3B1L1dITFNMIgogICAgICIke1dFQkNP
UkVfRElSfS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvd2Vic29ja2V0cyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJ4ciIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eSIKICAgICAiJHtXRUJDT1JFX0RJUn0vYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FuaW1hdGlvbiIK
QEAgLTE0MSw3ICsxNDIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yayIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vc3FsIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0Igot
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS92ciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0veHIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsdWdpbnMiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3JlbmRlcmluZyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcmVuZGVyaW5nL2xpbmUiCkBAIC0x
MTc5LDYgKzExODAsNDIgQEAgaWYgKEVOQUJMRV9HQU1FUEFEKQogICAgICkKIGVuZGlmICgpCiAK
K2lmIChFTkFCTEVfV0VCR0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUworICAgICAgICBNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbAorICAgICAgICBNb2R1
bGVzL3dlYnhyL1dlYlhSRnJhbWUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1
dFNvdXJjZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXku
aWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmlkbAorICAgICAgICBNb2R1bGVz
L3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2Vi
WFJSZW5kZXJTdGF0ZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNm
b3JtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhS
U3lzdGVtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
V2ViWFJWaWV3cG9ydC5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIu
aWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwKKyAg
ICAgICAgTW9kdWxlcy93ZWJ4ci9YUkV5ZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUkZy
YW1lUmVxdWVzdENhbGxiYWNrLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVz
cy5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsCisgICAg
ICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwKKyAgICAgICAg
TW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsCisgICAgICAgIE1vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJS
ZW5kZXJTdGF0ZUluaXQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQu
aWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSVGFy
Z2V0UmF5TW9kZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5p
ZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5ZXJJbml0LmlkbAorICAgICkKK2Vu
ZGlmICgpCisKIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgICR7V2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFU30KICAgICAke1dlYkNvcmVfU1ZHX0lETF9GSUxFU30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZh
MzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uODFkYWZlNTliNTEwODY2Mzhj
ZTY2NGQyMDcxNDRkNDBiZTI4MTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM5NCw2ICszOTQsOCBAQCBF
TkFCTEVfV0VCR1BVX2FwcGxldHZvcyA9IEVOQUJMRV9XRUJHUFU7CiBFTkFCTEVfV0VCR1BVX21h
Y29zeCA9ICQoRU5BQkxFX1dFQkdQVSQoV0tfTUFDT1NfMTAxNCkpOwogRU5BQkxFX1dFQkdQVV9N
QUNPU19TSU5DRV8xMDE0ID0gRU5BQkxFX1dFQkdQVTsKIAorRU5BQkxFX1dFQlhSID0gRU5BQkxF
X1dFQlhSOworCiBFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTID0gOwogCiBFTkFCTEVfV0VCX0FV
RElPID0gRU5BQkxFX1dFQl9BVURJTzsKQEAgLTQxNCw0ICs0MTYsNCBAQCBFTkFCTEVfV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAog
RU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9B
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVf
QVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVO
QUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1Qp
ICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVO
QUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVf
Q1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVf
Q1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJM
RV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xP
T1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklM
VEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9J
Tl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJM
RV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChF
TkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5B
QkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9D
QVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NF
U1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVf
U1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dI
SUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVF
Tl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVT
T0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxF
X1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxF
X1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFS
RUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVU
RUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykg
JChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9f
UFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19V
U0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVf
V0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
QkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAk
KEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5B
QkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xB
VEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05f
VjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VT
U0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1F
TlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJ
T05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRF
UklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5U
UykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19B
UEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktf
TU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1F
TlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVO
QUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChF
TkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNT
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lO
X1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5B
QkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9J
TlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1F
VFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9N
RURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01F
RElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RS
RUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChF
TkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdB
VE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJ
REFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxF
X09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJ
Q19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ip
ICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVS
WSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9V
U0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9O
UykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMp
ICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9U
RVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVD
VF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9O
X0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUp
ICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFND
UkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
RFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lO
VEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VC
R1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChF
TkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJM
RV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRkOWVkYWYxYTY2YjZk
YWQ5NTcxNTBhYmM2NDlkM2VlZDIxZjc2NDEuLjRlOTI1NjhmMDcyMjkxNmFlYTkyODU4NmM2NDk3
NjMyODcwNWZlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNjQsNiArNjQs
NyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZHJpdmVyIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29j
a2V0cyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyIFwKICAgICAkKFdlYkNvcmUpL2Fj
Y2Vzc2liaWxpdHkgXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uIFwKICAgICAkKFdlYkNvcmUp
L2JpbmRpbmdzL2pzIFwKQEAgLTQ2MCw2ICs0NjEsMzcgQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJncHUvV29ya2VyTmF2aWdhdG9yR1BVLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YnhyL1dlYlhSUG9zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlJl
ZmVyZW5jZVNwYWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVu
ZGVyU3RhdGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRy
YW5zZm9ybS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24u
aWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhy
L1dlYlhSVmlld3BvcnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJX
ZWJHTExheWVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1l
bnRCbGVuZE1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJFeWUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
eHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIv
WFJXZWJHTExheWVySW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Um9sZS5pZGwgXAogICAgICQoV2ViQ29yZSkvYWNjZXNzaWJpbGl0eS9BcmlhQXR0
cmlidXRlcy5pZGwgXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0FuaW1hdGFibGUuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDZhNGM1ZDc4Mzg5MDA0NWMxM2I3MTlkMzlmYjFkMmJmMjM4MTI1NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIu
Y3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk5hdmlnYXRvcldlYlhSLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dlYlhSU3lzdGVtJiBOYXZpZ2F0b3JXZWJYUjo6eHIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTmF2aWdhdG9yJiBuYXZpZ2F0b3JP
YmplY3QpCit7CisgICAgYXV0byYgbmF2aWdhdG9yID0gTmF2aWdhdG9yV2ViWFI6OmZyb20obmF2
aWdhdG9yT2JqZWN0KTsKKyAgICBpZiAoIW5hdmlnYXRvci5tX3hyKQorICAgICAgICBuYXZpZ2F0
b3IubV94ciA9IFdlYlhSU3lzdGVtOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cisg
ICAgcmV0dXJuICpuYXZpZ2F0b3IubV94cjsKK30KKworTmF2aWdhdG9yV2ViWFImIE5hdmlnYXRv
cldlYlhSOjpmcm9tKE5hdmlnYXRvciYgbmF2aWdhdG9yKQoreworICAgIGF1dG8qIHN1cHBsZW1l
bnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JXZWJYUio+KFN1cHBsZW1lbnQ8TmF2aWdhdG9yPjo6
ZnJvbSgmbmF2aWdhdG9yLCAiTmF2aWdhdG9yV2ViWFIiKSk7CisgICAgaWYgKCFzdXBwbGVtZW50
KSB7CisgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IG1ha2VVbmlxdWU8TmF2aWdhdG9yV2Vi
WFI+KCk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOworICAgICAg
ICBwcm92aWRlVG8oJm5hdmlnYXRvciwgIk5hdmlnYXRvcldlYlhSIiwgV1RGTW92ZShuZXdTdXBw
bGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiAqc3VwcGxlbWVudDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMzRlNGU1OWYz
OWM4OWRiMmE5MmE0MTYwYjg4MDNlZTA3ZjQyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgKQEAgLTAsMCArMSw1MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE5hdmlnYXRvcjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CitjbGFzcyBXZWJYUlN5c3RlbTsKKworY2xhc3MgTmF2aWdhdG9yV2ViWFIgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudDxOYXZpZ2F0b3I+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViWFJTeXN0ZW0mIHhyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBOYXZpZ2F0b3ImKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgTmF2aWdhdG9y
V2ViWFImIGZyb20oTmF2aWdhdG9yJik7CisKKyAgICBSZWZQdHI8V2ViWFJTeXN0ZW0+IG1feHI7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhS
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ5YmJmNWRkMTM5OTQzNGEzYzYzNjZkNTBkZWYwNjc1MzZlOGQxM2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhS
LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIHBhcnRpYWwgaW50ZXJmYWNlIE5h
dmlnYXRvciB7CisgICAgW1NlY3VyZUNvbnRleHQsIFNhbWVPYmplY3QsIENhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlN5c3RlbSB4cjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiZGVkYTM1MjMwZWI3MzBkN2U1NmJk
ZTViZDUyYWEyYjMyNjFmM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMCwwICsxLDQwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NvbnN0IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+JiBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZTo6Ym91bmRzR2VvbWV0cnkoKSBjb25zdAoreworICAgIHJldHVybiBt
X2JvdW5kc0dlb21ldHJ5OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIzYjc0ZjNlMmFk
NDM3ODVjZWUwMzZkYjhlMzJhZTYyZDlkNDhkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViWFJS
ZWZlcmVuY2VTcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRE9NUG9pbnRSZWFkT25seTsKKworY2xhc3MgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Ug
OiBwdWJsaWMgV2ViWFJSZWZlcmVuY2VTcGFjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UoKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWY8RE9NUG9p
bnRSZWFkT25seT4+JiBib3VuZHNHZW9tZXRyeSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFZl
Y3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+IG1fYm91bmRzR2VvbWV0cnk7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1Yjg4MzM3NDIzZDA2YWE5ZmE0ZDU1NDFiNmM1MTA0ZjBl
NDdlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhS
LAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW50ZXJmYWNl
TmFtZT1YUkJvdW5kZWRSZWZlcmVuY2VTcGFjZQorXSBpbnRlcmZhY2UgV2ViWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2UgOiBXZWJYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgRnJvemVuQXJyYXk8RE9NUG9pbnRSZWFkT25seT4gYm91bmRzR2VvbWV0cnk7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTM1
ZGMxMjdjOWQwN2E3YzhkMjM4NDE1NDU4N2Q1MTM1ODg3YWUxYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5jcHAKQEAgLTAsMCArMSw2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJG
cmFtZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgi
CisjaW5jbHVkZSAiV2ViWFJWaWV3ZXJQb3NlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoV2ViWFJGcmFtZSk7CisKK1JlZjxXZWJYUkZyYW1lPiBXZWJYUkZyYW1lOjpjcmVhdGUo
UmVmPFdlYlhSU2Vzc2lvbj4mJiBzZXNzaW9uKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYlhSRnJhbWUoV1RGTW92ZShzZXNzaW9uKSkpOworfQorCitXZWJYUkZyYW1lOjpXZWJYUkZy
YW1lKFJlZjxXZWJYUlNlc3Npb24+JiYgc2Vzc2lvbikKKyAgICA6IG1fc2Vzc2lvbihXVEZNb3Zl
KHNlc3Npb24pKQoreworfQorCitXZWJYUkZyYW1lOjp+V2ViWFJGcmFtZSgpID0gZGVmYXVsdDsK
KworY29uc3QgV2ViWFJTZXNzaW9uJiBXZWJYUkZyYW1lOjpzZXNzaW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zZXNzaW9uOworfQorCitSZWZQdHI8V2ViWFJWaWV3ZXJQb3NlPiBXZWJYUkZy
YW1lOjpnZXRWaWV3ZXJQb3NlKGNvbnN0IFdlYlhSUmVmZXJlbmNlU3BhY2UmKQoreworICAgIHJl
dHVybiB7IH07Cit9CisKK1JlZlB0cjxXZWJYUlBvc2U+IFdlYlhSRnJhbWU6OmdldFBvc2UoY29u
c3QgV2ViWFJTcGFjZSYsIGNvbnN0IFdlYlhSU3BhY2UmKQoreworICAgIHJldHVybiB7IH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA4YTY3
NjRmMGQyYzVhZTYxZTRkNjU4YzI4MjUwNTc5ZmU1YjYyNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdlYlhSUG9zZTsKK2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2U7Citj
bGFzcyBXZWJYUlNlc3Npb247CitjbGFzcyBXZWJYUlNwYWNlOworY2xhc3MgV2ViWFJWaWV3ZXJQ
b3NlOworCitjbGFzcyBXZWJYUkZyYW1lIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJGcmFtZT4g
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJGcmFtZSk7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxXZWJYUkZyYW1lPiBjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJik7CisgICAg
fldlYlhSRnJhbWUoKTsKKworICAgIGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0
OworCisgICAgUmVmUHRyPFdlYlhSVmlld2VyUG9zZT4gZ2V0Vmlld2VyUG9zZShjb25zdCBXZWJY
UlJlZmVyZW5jZVNwYWNlJik7CisgICAgUmVmUHRyPFdlYlhSUG9zZT4gZ2V0UG9zZShjb25zdCBX
ZWJYUlNwYWNlJiwgY29uc3QgV2ViWFJTcGFjZSYpOworCitwcml2YXRlOgorICAgIFdlYlhSRnJh
bWUoUmVmPFdlYlhSU2Vzc2lvbj4mJik7CisKKyAgICBSZWY8V2ViWFJTZXNzaW9uPiBtX3Nlc3Np
b247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMWZjZjNjZmU0ZDljNzVmZDdmNDY4ZTQ5N2RiOGU4MDA3YjhhZGYyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhS
LAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3Nl
ZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZhY2VO
YW1lPVhSRnJhbWUKK10gaW50ZXJmYWNlIFdlYlhSRnJhbWUgeworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTZXNzaW9uIHNlc3Npb247CisKKyAgICBXZWJYUlZpZXdl
clBvc2U/IGdldFZpZXdlclBvc2UoV2ViWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZSk7
CisgICAgV2ViWFJQb3NlPyBnZXRQb3NlKFdlYlhSU3BhY2Ugc3BhY2UsIFdlYlhSU3BhY2UgYmFz
ZVNwYWNlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSSW5wdXRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklu
cHV0U291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzA3Njc1MTE5OGRiYmMzNzZjYjk3MTliOGE4N2Ix
MmM2MjAxOGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUklucHV0U291cmNlLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlLmgiCisKKyNpZiBF
TkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoV2ViWFJJbnB1dFNvdXJjZSk7CisKK1JlZjxXZWJYUklucHV0U291cmNl
PiBXZWJYUklucHV0U291cmNlOjpjcmVhdGUoUmVmPFdlYlhSU3BhY2U+JiYgdGFyZ2V0UmF5U3Bh
Y2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJJbnB1dFNvdXJjZShXVEZNb3Zl
KHRhcmdldFJheVNwYWNlKSkpOworfQorCitXZWJYUklucHV0U291cmNlOjpXZWJYUklucHV0U291
cmNlKFJlZjxXZWJYUlNwYWNlPiYmIHRhcmdldFJheVNwYWNlKQorICAgIDogbV9oYW5kZWRuZXNz
KFhSSGFuZGVkbmVzczo6Tm9uZSkKKyAgICAsIG1fdGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1v
ZGU6OkdhemUpCisgICAgLCBtX3RhcmdldFJheVNwYWNlKFdURk1vdmUodGFyZ2V0UmF5U3BhY2Up
KQoreworfQorCitXZWJYUklucHV0U291cmNlOjp+V2ViWFJJbnB1dFNvdXJjZSgpID0gZGVmYXVs
dDsKKworWFJIYW5kZWRuZXNzIFdlYlhSSW5wdXRTb3VyY2U6OmhhbmRlZG5lc3MoKSBjb25zdAor
eworICAgIHJldHVybiBtX2hhbmRlZG5lc3M7Cit9CisKK1hSVGFyZ2V0UmF5TW9kZSBXZWJYUklu
cHV0U291cmNlOjp0YXJnZXRSYXlNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90YXJnZXRS
YXlNb2RlOworfQorCitjb25zdCBXZWJYUlNwYWNlJiBXZWJYUklucHV0U291cmNlOjp0YXJnZXRS
YXlTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGFyZ2V0UmF5U3BhY2U7Cit9CisKK1Jl
ZlB0cjxXZWJYUlNwYWNlPiBXZWJYUklucHV0U291cmNlOjpncmlwU3BhY2UoKSBjb25zdAorewor
ICAgIHJldHVybiB7IH07Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBXZWJYUklucHV0U291
cmNlOjpwcm9maWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvZmlsZXM7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjhjMjlhYjFjZGI5MDZkYmUxNGJiOTQ5MmFiMmZkODhiNDFkNDExMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
WFIpCisKKyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNsdWRlICJYUlRhcmdldFJheU1v
ZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlNwYWNlOworCitjbGFzcyBXZWJYUklu
cHV0U291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJJbnB1dFNvdXJjZT4geworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJJbnB1dFNvdXJjZSk7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxXZWJYUklucHV0U291cmNlPiBjcmVhdGUoUmVmPFdlYlhSU3BhY2U+JiYpOworICAg
IH5XZWJYUklucHV0U291cmNlKCk7CisKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzcygpIGNv
bnN0OworICAgIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKCkgY29uc3Q7CisgICAgY29u
c3QgV2ViWFJTcGFjZSYgdGFyZ2V0UmF5U3BhY2UoKSBjb25zdDsKKyAgICBSZWZQdHI8V2ViWFJT
cGFjZT4gZ3JpcFNwYWNlKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb2Zp
bGVzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJJbnB1dFNvdXJjZShSZWY8V2ViWFJT
cGFjZT4mJik7CisKKyAgICBYUkhhbmRlZG5lc3MgbV9oYW5kZWRuZXNzOworICAgIFhSVGFyZ2V0
UmF5TW9kZSBtX3RhcmdldFJheU1vZGU7CisgICAgUmVmPFdlYlhSU3BhY2U+IG1fdGFyZ2V0UmF5
U3BhY2U7CisgICAgVmVjdG9yPFN0cmluZz4gbV9wcm9maWxlczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NTlm
M2ZlNDcwNzUyMTEzN2JmNTNmMWEzNDRlZGRkOThlYmQzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9
WFJJbnB1dFNvdXJjZQorXSBpbnRlcmZhY2UgV2ViWFJJbnB1dFNvdXJjZSB7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSA7CisgICAgW1NhbWVPYmplY3RdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNwYWNlIHRhcmdldFJheVNwYWNlOworICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTcGFjZT8gZ3JpcFNwYWNlIDsKKyAgICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gcHJvZmls
ZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklu
cHV0U291cmNlQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklu
cHV0U291cmNlQXJyYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0YzA4NTUzMmJjZDlhYWMyNzM4MDkwYmZh
M2ZkZGZlYTQzMzU1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChXZWJYUklucHV0U291cmNlQXJyYXkpOworCit1bnNpZ25lZCBXZWJYUklucHV0U291cmNl
QXJyYXk6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1dlYlhSSW5wdXRT
b3VyY2UqIFdlYlhSSW5wdXRTb3VyY2VBcnJheTo6aXRlbSh1bnNpZ25lZCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUklucHV0U291cmNlQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDIxZjAyOWU2NGNiMDhhMmJi
OWI2YTY1Njg1ZGEwZDU5ODdkMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaApAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJJbnB1dFNvdXJjZTsKKworY2xhc3MgV2ViWFJJ
bnB1dFNvdXJjZUFycmF5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJJbnB1dFNvdXJjZUFycmF5
PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUklucHV0U291cmNlQXJyYXkpOwor
cHVibGljOgorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAgIFdlYlhSSW5wdXRTb3Vy
Y2UqIGl0ZW0odW5zaWduZWQpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYWQ4NGFj
MDU1ZmU2MDUxMDE5YWU3Yzc3MmMwNDJjOWUwMmM3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwKQEAgLTAs
MCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9
V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFt
ZT1YUklucHV0U291cmNlQXJyYXkKK10gaW50ZXJmYWNlIFdlYlhSSW5wdXRTb3VyY2VBcnJheSB7
CisgICAgaXRlcmFibGU8V2ViWFJJbnB1dFNvdXJjZT47CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBXZWJYUklucHV0U291cmNlKHVuc2ln
bmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJQb3NlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQ
b3NlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYzVmODBhNTQ0NTVjYmU4ZmNiMDcyZDU0N2IzMTk2YTk4ODc4
NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlBvc2UuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYlhSUG9zZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5j
bHVkZSAiV2ViWFJSaWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFdlYlhSUG9zZSk7CisKK1JlZjxXZWJYUlBvc2U+IFdlYlhSUG9zZTo6Y3JlYXRlKCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUlBvc2UpOworfQorCitXZWJYUlBvc2U6Oldl
YlhSUG9zZSgpCisgICAgOiBtX3RyYW5zZm9ybShXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUo
KSkKK3sKK30KKworV2ViWFJQb3NlOjp+V2ViWFJQb3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBX
ZWJYUlJpZ2lkVHJhbnNmb3JtJiBXZWJYUlBvc2U6OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdHJhbnNmb3JtOworfQorCitib29sIFdlYlhSUG9zZTo6ZW11bGF0ZWRQb3NpdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW11bGF0ZWRQb3NpdGlvbjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5MTlkMjRjMzk1M2FhMzlh
MmM0ODk0YmM3Y2NlNWMyOWMxN2U2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlJpZ2lkVHJhbnNmb3JtOwor
CitjbGFzcyBXZWJYUlBvc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlBvc2U+IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSUG9zZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJYUlBvc2U+IGNyZWF0ZSgpOworICAgIH5XZWJYUlBvc2UoKTsKKworICAgIGNvbnN0IFdl
YlhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworICAgIGJvb2wgZW11bGF0ZWRQ
b3NpdGlvbigpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgV2ViWFJQb3NlKCk7CisKKyAgICBS
ZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gbV90cmFuc2Zvcm07CisgICAgYm9vbCBtX2VtdWxhdGVk
UG9zaXRpb24geyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlBvc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlBv
c2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRjNGU5ZGFkYzhlYTBhZjMxNTE4Njk0MTkzYjkyNDk2NDQ3ODgw
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
UG9zZS5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0
LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisg
ICAgSW50ZXJmYWNlTmFtZT1YUlBvc2UKK10gaW50ZXJmYWNlIFdlYlhSUG9zZSB7CisgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9y
bTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VT
cGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3Bh
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIzM2JmNzA4Y2M0MjdjODE5MDZiMDNlNThlY2Q5MjhhMzBmZjBj
ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
UmVmZXJlbmNlU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2UuaCIKKworI2lmIEVO
QUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJYUlJlZmVyZW5jZVNwYWNl
OjpXZWJYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisg
ICAgOiBXZWJYUlNwYWNlKGNvbnRleHQpCit7Cit9CisKK1dlYlhSUmVmZXJlbmNlU3BhY2U6On5X
ZWJYUlJlZmVyZW5jZVNwYWNlKCkgPSBkZWZhdWx0OworCitSZWY8V2ViWFJSZWZlcmVuY2VTcGFj
ZT4gV2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2Vi
WFJSaWdpZFRyYW5zZm9ybSYpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJSZWZl
cmVuY2VTcGFjZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZi
YjQ4Y2JmNjkwMzhmZWEyYmQzMTQ4MjYzOTZiOTNkMjEzNTNjZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
WFIpCisKKyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJSaWdpZFRyYW5zZm9ybTsKKworY2xh
c3MgV2ViWFJSZWZlcmVuY2VTcGFjZSA6IHB1YmxpYyBXZWJYUlNwYWNlIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5XZWJYUlJlZmVyZW5jZVNwYWNlKCk7CisKKyAgICBSZWY8V2ViWFJSZWZlcmVu
Y2VTcGFjZT4gZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9y
bSYpOworCitwcml2YXRlOgorICAgIFdlYlhSUmVmZXJlbmNlU3BhY2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlJlZmVyZW5jZVNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
ZWZlcmVuY2VTcGFjZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzNTA3ZjQ0NWE1MmZlMmUxNzE5NjZmNTA3
M2JjMTNiNDlmYzUzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJY
UiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEpTR2VuZXJh
dGVUb0pTT2JqZWN0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBJbnRlcmZh
Y2VOYW1lPVhSUmVmZXJlbmNlU3BhY2UKK10gaW50ZXJmYWNlIFdlYlhSUmVmZXJlbmNlU3BhY2Ug
OiBXZWJYUlNwYWNlIHsKKyAgICBbTmV3T2JqZWN0XSBXZWJYUlJlZmVyZW5jZVNwYWNlIGdldE9m
ZnNldFJlZmVyZW5jZVNwYWNlKFdlYlhSUmlnaWRUcmFuc2Zvcm0gb3JpZ2luT2Zmc2V0KTsKKwor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXNldDsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjc4
OWY4MTkyNzFlOTE1NjUyNjlkYTNmM2I5NjFkMzNkOTk3NmFlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcApAQCAtMCww
ICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJYUlJlbmRlclN0YXRlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJY
UldlYkdMTGF5ZXIuaCIKKyNpbmNsdWRlICJYUlJlbmRlclN0YXRlSW5pdC5oIgorI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJS
ZW5kZXJTdGF0ZSk7CisKK1JlZjxXZWJYUlJlbmRlclN0YXRlPiBXZWJYUlJlbmRlclN0YXRlOjpj
cmVhdGUoY29uc3QgV2ViWFJTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIC8vIFdoZW4gYW4gWFJS
ZW5kZXJTdGF0ZSBvYmplY3QgaXMgY3JlYXRlZCBmb3IgYW4gWFJTZXNzaW9uIHNlc3Npb24sIHRo
ZSB1c2VyIGFnZW50IE1VU1QgaW5pdGlhbGl6ZSB0aGUgcmVuZGVyIHN0YXRlIGJ5IHJ1bm5pbmcg
dGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyAgIDEuIExldCBzdGF0ZSBiZSB0aGUgbmV3bHkg
Y3JlYXRlZCBYUlJlbmRlclN0YXRlIG9iamVjdC4KKworICAgIC8vICAgMi4gSW5pdGlhbGl6ZSBz
dGF0ZeKAmXMgZGVwdGhOZWFyIHRvIDAuMS4KKyAgICAvLyAgIDMuIEluaXRpYWxpemUgc3RhdGXi
gJlzIGRlcHRoRmFyIHRvIDEwMDAuMC4KKyAgICAvLyAoRGVmYXVsdC1pbml0aWFsaXplZCBpbiB0
aGUgWFJSZW5kZXJTdGF0ZSBjbGFzcyBkZWZpbml0aW9uLikKKworICAgIC8vICAgNC4gSWYgc2Vz
c2lvbiBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5l
VmVydGljYWxGaWVsZE9mVmlldyB0byBudWxsLgorICAgIC8vICAgNS4gRWxzZSBpbml0aWFsaXpl
IHN0YXRl4oCZcyBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHRvIFBJICogMC41LgorICAgIC8v
IEZJWE1FOiAiaW1tZXJzaXZlIHNlc3Npb24iIHN1cHBvcnQKKyAgICBVTlVTRURfUEFSQU0oc2Vz
c2lvbik7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IHsg
cGlPdmVyVHdvRG91YmxlIH07CisKKyAgICAvLyAgIDYuIEluaXRpYWxpemUgc3RhdGXigJlzIGJh
c2VMYXllciB0byBudWxsLgorICAgIC8vICAgNy4gSW5pdGlhbGl6ZSBzdGF0ZeKAmXMgb3V0cHV0
Q29udGV4dCB0byBudWxsLgorICAgIC8vIChJbml0aWFsaXplZCB0byBudWxsIGJ5IGRlZmF1bHQu
KQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJSZW5kZXJTdGF0ZShXVEZNb3ZlKGlu
bGluZVZlcnRpY2FsRmllbGRPZlZpZXcpKSk7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6OldlYlhS
UmVuZGVyU3RhdGUoT3B0aW9uYWw8ZG91YmxlPiYmIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcp
CisgICAgOiBtX2lubGluZVZlcnRpY2FsRmllbGRPZlZpZXcoV1RGTW92ZShpbmxpbmVWZXJ0aWNh
bEZpZWxkT2ZWaWV3KSkKK3sKK30KKworV2ViWFJSZW5kZXJTdGF0ZTo6V2ViWFJSZW5kZXJTdGF0
ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpCit7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6On5X
ZWJYUlJlbmRlclN0YXRlKCkgPSBkZWZhdWx0OworCitkb3VibGUgV2ViWFJSZW5kZXJTdGF0ZTo6
ZGVwdGhOZWFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZXB0aC5uZWFyOworfQorCitkb3Vi
bGUgV2ViWFJSZW5kZXJTdGF0ZTo6ZGVwdGhGYXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2Rl
cHRoLmZhcjsKK30KKworT3B0aW9uYWw8ZG91YmxlPiBXZWJYUlJlbmRlclN0YXRlOjppbmxpbmVW
ZXJ0aWNhbEZpZWxkT2ZWaWV3KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmxpbmVWZXJ0aWNh
bEZpZWxkT2ZWaWV3OworfQorCitSZWZQdHI8V2ViWFJXZWJHTExheWVyPiBXZWJYUlJlbmRlclN0
YXRlOjpiYXNlTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2Jhc2VMYXllcjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZjI5MmFjMWQ2ODFhNDY5ODc2MDE4MTg5YTg3YTk2ZjFlZGJhYzdkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViWFJXZWJHTExheWVyOworc3RydWN0IFhSUmVuZGVyU3RhdGVJbml0OworY2xhc3MgV2ViWFJT
ZXNzaW9uOworCitjbGFzcyBXZWJYUlJlbmRlclN0YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
WFJSZW5kZXJTdGF0ZT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJSZW5kZXJT
dGF0ZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlJlbmRlclN0YXRlPiBjcmVhdGUo
Y29uc3QgV2ViWFJTZXNzaW9uJik7CisgICAgfldlYlhSUmVuZGVyU3RhdGUoKTsKKworICAgIGRv
dWJsZSBkZXB0aE5lYXIoKSBjb25zdDsKKyAgICBkb3VibGUgZGVwdGhGYXIoKSBjb25zdDsKKyAg
ICBPcHRpb25hbDxkb3VibGU+IGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcoKSBjb25zdDsKKyAg
ICBSZWZQdHI8V2ViWFJXZWJHTExheWVyPiBiYXNlTGF5ZXIoKSBjb25zdDsKKworcHJpdmF0ZToK
KyAgICBXZWJYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJik7CisgICAgV2ViWFJSZW5k
ZXJTdGF0ZShjb25zdCBYUlJlbmRlclN0YXRlSW5pdCYpOworCisgICAgc3RydWN0IHsKKyAgICAg
ICAgZG91YmxlIG5lYXIgeyAwLjEgfTsKKyAgICAgICAgZG91YmxlIGZhciB7IDEwMDAgfTsKKyAg
ICB9IG1fZGVwdGg7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBtX2lubGluZVZlcnRpY2FsRmllbGRP
ZlZpZXc7CisgICAgUmVmUHRyPFdlYlhSV2ViR0xMYXllcj4gbV9iYXNlTGF5ZXI7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZTFhY2U2NTUyYzM0OWU4NGEyMmEyNTZjZDYwZGMyY2MzY2EwMzM1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlk
bApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAg
RXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRl
cmZhY2VOYW1lPVhSUmVuZGVyU3RhdGUKK10gaW50ZXJmYWNlIFdlYlhSUmVuZGVyU3RhdGUgewor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGVwdGhOZWFyOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBkb3VibGUgZGVwdGhGYXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZT8g
aW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJX
ZWJHTExheWVyPyBiYXNlTGF5ZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNmZGNmYjkwZTcy
NWIxNzk3ODAwNTRiYTZlN2JhNTQ2NGZmOTg5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKQEAgLTAsMCArMSwx
MTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhS
UmlnaWRUcmFuc2Zvcm0uaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkRPTVBv
aW50UmVhZE9ubHkuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoV2ViWFJSaWdpZFRyYW5zZm9ybSk7CisKK1JlZjxXZWJYUlJpZ2lkVHJh
bnNmb3JtPiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlhSUmlnaWRUcmFuc2Zvcm0oeyB9LCB7IH0pKTsKK30KKworRXhjZXB0aW9u
T3I8UmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+PiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUo
Y29uc3QgRE9NUG9pbnRJbml0JiBwb3NpdGlvbiwgY29uc3QgRE9NUG9pbnRJbml0JiBvcmllbnRh
dGlvbikKK3sKKyAgICAvLyBUaGUgWFJSaWdpZFRyYW5zZm9ybShwb3NpdGlvbiwgb3JpZW50YXRp
b24pIGNvbnN0cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzIHdoZW4gaW52
b2tlZDoKKyAgICAvLyAgIDEuIExldCB0cmFuc2Zvcm0gYmUgYSBuZXcgWFJSaWdpZFRyYW5zZm9y
bS4KKworICAgIC8vICAgMi4gSWYgcG9zaXRpb24gaXMgbm90IGEgRE9NUG9pbnRJbml0IGluaXRp
YWxpemUgdHJhbnNmb3Jt4oCZcyBwb3NpdGlvbiB0byB7IHg6IDAuMCwgeTogMC4wLCB6OiAwLjAs
IHc6IDEuMCB9LgorICAgIC8vICAgMy4gSWYgcG9zaXRpb27igJlzIHcgdmFsdWUgaXMgbm90IDEu
MCwgdGhyb3cgYSBUeXBlRXJyb3IuCisgICAgLy8gICA0LiBFbHNlIGluaXRpYWxpemUgdHJhbnNm
b3Jt4oCZcyBwb3NpdGlvbuKAmXMgeCB2YWx1ZSB0byBwb3NpdGlvbuKAmXMgeCBkaWN0aW9uYXJ5
IG1lbWJlciwgeSB2YWx1ZSB0byBwb3NpdGlvbuKAmXMgeSBkaWN0aW9uYXJ5IG1lbWJlciwgeiB2
YWx1ZSB0byBwb3NpdGlvbuKAmXMgeiBkaWN0aW9uYXJ5IG1lbWJlciBhbmQgdyB0byAxLjAuCisg
ICAgaWYgKHBvc2l0aW9uLncgIT0gMS4wKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yIH07CisgICAgRE9NUG9pbnRJbml0IHBvc2l0aW9uSW5pdCB7IHBvc2l0aW9uLngsIHBv
c2l0aW9uLnksIHBvc2l0aW9uLnosIDEgfTsKKworICAgIC8vICAgNS4gSWYgb3JpZW50YXRpb24g
aXMgbm90IGEgRE9NUG9pbnRJbml0IGluaXRpYWxpemUgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlv
biB0byB7IHg6IDAuMCwgeTogMC4wLCB6OiAwLjAsIHc6IDEuMCB9LgorICAgIC8vICAgNi4gRWxz
ZSBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgb3JpZW50YXRpb27igJlzIHggdmFsdWUgdG8gb3Jp
ZW50YXRpb27igJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFsdWUgdG8gb3JpZW50YXRpb27i
gJlzIHkgZGljdGlvbmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gb3JpZW50YXRpb27igJlzIHogZGlj
dGlvbmFyeSBtZW1iZXIgYW5kIHcgdmFsdWUgdG8gb3JpZW50YXRpb27igJlzIHcgZGljdGlvbmFy
eSBtZW1iZXIuCisgICAgLy8gICA3LiBOb3JtYWxpemUgeCwgeSwgeiwgYW5kIHcgY29tcG9uZW50
cyBvZiB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9uLgorICAgIERPTVBvaW50SW5pdCBvcmllbnRh
dGlvbkluaXQgeyBvcmllbnRhdGlvbi54LCBvcmllbnRhdGlvbi55LCBvcmllbnRhdGlvbi56LCBv
cmllbnRhdGlvbi53IH07CisgICAgeworICAgICAgICBkb3VibGUgbGVuZ3RoID0gc3RkOjpzcXJ0
KG9yaWVudGF0aW9uSW5pdC54ICogb3JpZW50YXRpb25Jbml0LnggKyBvcmllbnRhdGlvbkluaXQu
eSAqIG9yaWVudGF0aW9uSW5pdC55CisgICAgICAgICAgICArIG9yaWVudGF0aW9uSW5pdC56ICog
b3JpZW50YXRpb25Jbml0LnogKyBvcmllbnRhdGlvbkluaXQudyAqIG9yaWVudGF0aW9uSW5pdC53
KTsKKyAgICAgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbDxkb3VibGU+KGxlbmd0aCwg
MCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsK
KworICAgICAgICBvcmllbnRhdGlvbkluaXQ9IHsKKyAgICAgICAgICAgIG9yaWVudGF0aW9uSW5p
dC54IC8gbGVuZ3RoLCBvcmllbnRhdGlvbkluaXQueSAvIGxlbmd0aCwKKyAgICAgICAgICAgIG9y
aWVudGF0aW9uSW5pdC56IC8gbGVuZ3RoLCBvcmllbnRhdGlvbkluaXQudyAvIGxlbmd0aCwKKyAg
ICAgICAgfTsKKyAgICB9CisKKyAgICAvLyAgIDguIFJldHVybiB0cmFuc2Zvcm0uCisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJSaWdpZFRyYW5zZm9ybShwb3NpdGlvbkluaXQsIG9yaWVu
dGF0aW9uSW5pdCkpOworfQorCitXZWJYUlJpZ2lkVHJhbnNmb3JtOjpXZWJYUlJpZ2lkVHJhbnNm
b3JtKGNvbnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBvaW50SW5pdCYgb3Jp
ZW50YXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKERPTVBvaW50UmVhZE9ubHk6OmNyZWF0ZShwb3Np
dGlvbikpCisgICAgLCBtX29yaWVudGF0aW9uKERPTVBvaW50UmVhZE9ubHk6OmNyZWF0ZShvcmll
bnRhdGlvbikpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCBwcm9wZXJseSwgcGVyIHNwZWMu
CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4OworICAgIGF1dG8gbWF0cml4RGF0YSA9
IG1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheSgpOworICAgIG1fbWF0cml4ID0gRmxvYXQz
MkFycmF5OjpjcmVhdGUobWF0cml4RGF0YS5kYXRhKCksIG1hdHJpeERhdGEuc2l6ZSgpKTsKK30K
KworV2ViWFJSaWdpZFRyYW5zZm9ybTo6fldlYlhSUmlnaWRUcmFuc2Zvcm0oKSA9IGRlZmF1bHQ7
CisKK2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFdlYlhSUmlnaWRUcmFuc2Zvcm06OnBvc2l0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wb3NpdGlvbjsKK30KKworY29uc3QgRE9NUG9pbnRS
ZWFkT25seSYgV2ViWFJSaWdpZFRyYW5zZm9ybTo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX29yaWVudGF0aW9uOworfQorCitSZWY8RmxvYXQzMkFycmF5PiAgV2ViWFJSaWdp
ZFRyYW5zZm9ybTo6bWF0cml4KCkgY29uc3QKK3sKKyAgICBhdXRvIG1hdHJpeCA9IEZsb2F0MzJB
cnJheTo6Y3JlYXRlKDE2KTsKKyAgICBtYXRyaXgtPnplcm9GaWxsKCk7CisgICAgcmV0dXJuIG1h
dHJpeDsKK30KKworUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IFdlYlhSUmlnaWRUcmFuc2Zvcm06
OmludmVyc2UoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJvcGVybHkuCisg
ICAgcmV0dXJuIFdlYlhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
N2NjMWU3YWI3MThkMDRmMTIwMTY4ODQzYmJiNDZmMWY4NDU0MTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QlhSKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRE9NUG9p
bnRJbml0OworY2xhc3MgRE9NUG9pbnRSZWFkT25seTsKKworY2xhc3MgV2ViWFJSaWdpZFRyYW5z
Zm9ybSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IHsKKyAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSUmlnaWRUcmFuc2Zvcm0pOworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gY3JlYXRlKCk7CisgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPj4gY3JlYXRlKGNvbnN0IERPTVBvaW50SW5p
dCYsIGNvbnN0IERPTVBvaW50SW5pdCYpOworICAgIH5XZWJYUlJpZ2lkVHJhbnNmb3JtKCk7CisK
KyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBwb3NpdGlvbigpIGNvbnN0OworICAgIGNvbnN0
IERPTVBvaW50UmVhZE9ubHkmIG9yaWVudGF0aW9uKCkgY29uc3Q7CisgICAgUmVmPEZsb2F0MzJB
cnJheT4gbWF0cml4KCkgY29uc3Q7CisgICAgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IGludmVy
c2UoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJYUlJpZ2lkVHJhbnNmb3JtKGNvbnN0IERP
TVBvaW50SW5pdCYsIGNvbnN0IERPTVBvaW50SW5pdCYpOworCisgICAgUmVmPERPTVBvaW50UmVh
ZE9ubHk+IG1fcG9zaXRpb247CisgICAgUmVmPERPTVBvaW50UmVhZE9ubHk+IG1fb3JpZW50YXRp
b247CisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gbV9tYXRyaXg7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMDBjYWQ3ZjJlMDczMzQxZWU1NjM1M2U3MTA5YmJlMmYxNjgwNTIzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmlk
bApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAg
RXhwb3NlZD1XaW5kb3csCisgICAgQ29uc3RydWN0b3Iob3B0aW9uYWwgRE9NUG9pbnRJbml0IHBv
c2l0aW9uLCBvcHRpb25hbCBET01Qb2ludEluaXQgb3JpZW50YXRpb24pLAorICAgIENvbnN0cnVj
dG9yTWF5VGhyb3dFeGNlcHRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBJbnRlcmZhY2VOYW1lPVhSUmlnaWRUcmFuc2Zvcm0KK10gaW50ZXJmYWNlIFdlYlhSUmlnaWRU
cmFuc2Zvcm0geworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRS
ZWFkT25seSBwb3NpdGlvbjsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERP
TVBvaW50UmVhZE9ubHkgb3JpZW50YXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZsb2F0
MzJBcnJheSBtYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJY
UlJpZ2lkVHJhbnNmb3JtIGludmVyc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMzU2MmYyZTNmNmM4ZDg4OTQzYjA5
MTM4Zjc2Njg3MDIxNTdhMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJTZXNzaW9uLmgiCisKKyNpZiBF
TkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlNlc3Np
b24pOworCitXZWJYUlNlc3Npb246On5XZWJYUlNlc3Npb24oKSA9IGRlZmF1bHQ7CisKK1hSRW52
aXJvbm1lbnRCbGVuZE1vZGUgV2ViWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZW52aXJvbm1lbnRCbGVuZE1vZGU7Cit9CisKK1hSVmlzaWJp
bGl0eVN0YXRlIFdlYlhSU2Vzc2lvbjo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisKK2NvbnN0IFdlYlhSUmVuZGVyU3RhdGUmIFdl
YlhSU2Vzc2lvbjo6cmVuZGVyU3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiAqbV9yZW5kZXJT
dGF0ZTsKK30KKworY29uc3QgV2ViWFJJbnB1dFNvdXJjZUFycmF5JiBXZWJYUlNlc3Npb246Omlu
cHV0U291cmNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX2lucHV0U291cmNlczsKK30KKwor
dm9pZCBXZWJYUlNlc3Npb246OnVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJ
bml0JikKK3sKK30KKwordm9pZCBXZWJYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VTcGFjZShj
b25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYsIFJlcXVlc3RSZWZlcmVuY2VTcGFjZVByb21pc2Um
JikKK3sKK30KKworaW50IFdlYlhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFJlZjxY
UkZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKQoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFdl
YlhSU2Vzc2lvbjo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50KQoreworfQorCit2b2lkIFdlYlhS
U2Vzc2lvbjo6ZW5kKEVuZFByb21pc2UmJikKK3sKK30KKworY29uc3QgY2hhciogV2ViWFJTZXNz
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlhSU2Vzc2lv
biI7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjpzdG9wKCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhjMjFjYTlhOTM3NGZlOGRi
MTU2NGZlMWE2ODU0MGE5ZTE0NjlmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlQXJyYXkuaCIKKyNp
bmNsdWRlICJXZWJYUlJlbmRlclN0YXRlLmgiCisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgorI2lu
Y2x1ZGUgIlhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCIKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNw
YWNlVHlwZS5oIgorI2luY2x1ZGUgIlhSVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBYUkZyYW1lUmVxdWVzdENhbGxiYWNrOworY2xhc3MgV2ViWFJSZWZlcmVuY2VTcGFjZTsK
K3N0cnVjdCBYUlJlbmRlclN0YXRlSW5pdDsKKworY2xhc3MgV2ViWFJTZXNzaW9uIGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTZXNzaW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoV2ViWFJTZXNzaW9uKTsKK3B1YmxpYzoKKyAgICB1c2luZyBSZXF1ZXN0UmVmZXJlbmNl
U3BhY2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJYUlJlZmVy
ZW5jZVNwYWNlPj47CisgICAgdXNpbmcgRW5kUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPjsKKworICAgIHZpcnR1YWwgfldlYlhSU2Vzc2lvbigpOworCisgICAgdXNpbmcgUmVmQ291
bnRlZDxXZWJYUlNlc3Npb24+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJYUlNlc3Np
b24+OjpkZXJlZjsKKworICAgIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUgZW52aXJvbm1lbnRCbGVu
ZE1vZGUoKSBjb25zdDsKKyAgICBYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBj
b25zdDsKKyAgICBjb25zdCBXZWJYUlJlbmRlclN0YXRlJiByZW5kZXJTdGF0ZSgpIGNvbnN0Owor
ICAgIGNvbnN0IFdlYlhSSW5wdXRTb3VyY2VBcnJheSYgaW5wdXRTb3VyY2VzKCkgY29uc3Q7CisK
KyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0YXRlKGNvbnN0IFhSUmVuZGVyU3RhdGVJbml0Jik7Cisg
ICAgdm9pZCByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUm
LCBSZXF1ZXN0UmVmZXJlbmNlU3BhY2VQcm9taXNlJiYpOworCisgICAgaW50IHJlcXVlc3RBbmlt
YXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJik7CisgICAgdm9pZCBjYW5j
ZWxBbmltYXRpb25GcmFtZShpbnQgaGFuZGxlKTsKKworICAgIHZvaWQgZW5kKEVuZFByb21pc2Um
Jik7CisKKyAgICBib29sIGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmRlZDsgfQorCitwcm90
ZWN0ZWQ6CisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU2Vzc2lvbkV2
ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01P
YmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CisKKyAgICBYUkVudmlyb25tZW50QmxlbmRNb2RlIG1fZW52aXJvbm1lbnRC
bGVuZE1vZGU7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7CisgICAg
UmVmUHRyPFdlYlhSUmVuZGVyU3RhdGU+IG1fcmVuZGVyU3RhdGU7CisgICAgUmVmUHRyPFdlYlhS
SW5wdXRTb3VyY2VBcnJheT4gbV9pbnB1dFNvdXJjZXM7CisgICAgYm9vbCBtX2VuZGVkIHsgZmFs
c2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNz
aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mOWI0MzA3OWMwNjIwNWYxZWZlODJkNTA2YzQ4YzFlYTA3ZmVkY2ZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24u
aWRsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgQWN0aXZlRE9NT2JqZWN0LAor
ICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW50ZXJmYWNlTmFt
ZT1YUlNlc3Npb24KK10gaW50ZXJmYWNlIFdlYlhSU2Vzc2lvbiA6IEV2ZW50VGFyZ2V0IHsKKyAg
ICAvLyBBdHRyaWJ1dGVzCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSRW52aXJvbm1lbnRCbGVu
ZE1vZGUgZW52aXJvbm1lbnRCbGVuZE1vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFhSVmlz
aWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFdlYlhSUmVuZGVyU3RhdGUgcmVuZGVyU3RhdGU7CisgICAgW1NhbWVPYmplY3Rd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUklucHV0U291cmNlQXJyYXkgaW5wdXRTb3VyY2VzOwor
CisgICAgLy8gTWV0aG9kcworICAgIHZvaWQgdXBkYXRlUmVuZGVyU3RhdGUob3B0aW9uYWwgWFJS
ZW5kZXJTdGF0ZUluaXQgc3RhdGVJbml0KTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFdlYlhS
UmVmZXJlbmNlU3BhY2U+IHJlcXVlc3RSZWZlcmVuY2VTcGFjZShYUlJlZmVyZW5jZVNwYWNlVHlw
ZSB0eXBlKTsKKworICAgIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFhSRnJhbWVSZXF1ZXN0
Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUobG9uZyBo
YW5kbGUpOworCisgICAgUHJvbWlzZTx2b2lkPiBlbmQoKTsKKworICAgIC8vIEV2ZW50cworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnNlbGVjdDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uaW5wdXRzb3VyY2VzY2hh
bmdlOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3RzdGFydDsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb252aXNpYmlsaXR5Y2hhbmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSU3BhY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NTVkZmViMDU1OTU3MGNjYzJjOWQ3NmY3NjM0
Yjk3Nzc0ODhkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSU3BhY2UuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSU3BhY2UuaCIKKworI2lmIEVOQUJMRShXRUJY
UikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSU3BhY2UpOworCitXZWJY
UlNwYWNlOjpXZWJYUlNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAg
OiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKK3sKK30KKworV2ViWFJTcGFj
ZTo6fldlYlhSU3BhY2UoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlNwYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI0YThhNDBkM2QzNmYwYjhlN2Q2MDIxMDA4YzZmNTFhODhh
YjEyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTcGFjZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworCitjbGFzcyBXZWJYUlNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT4sIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJTcGFjZSk7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+V2ViWFJTcGFjZSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxX
ZWJYUlNwYWNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT46OmRlcmVm
OworCitwcm90ZWN0ZWQ6CisgICAgV2ViWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7
CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKK3ByaXZhdGU6Cisg
ICAgLy8gRXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldElu
dGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU3BhY2VFdmVudFRhcmdldElu
dGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYo
KTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmI3OTRmMThiMjMzMTcwNjc2ZDFkNTQ5OWI5YTE3MTE2YWVlN2NiMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2lu
ZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJTcGFjZQorXSBpbnRlcmZhY2UgV2ViWFJTcGFjZSA6
IEV2ZW50VGFyZ2V0IHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
eXN0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhYzRkNTI4MDM0NGVhNDM2MTEzODRlMjYxYTVmZmRhZjJj
MTMxMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU3lzdGVtLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFdlYlhSU3lzdGVtKTsKKworUmVmPFdlYlhSU3lzdGVtPiBXZWJYUlN5c3RlbTo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJTeXN0ZW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOwor
fQorCitXZWJYUlN5c3RlbTo6V2ViWFJTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkKK3sKK30KKworV2ViWFJTeXN0ZW06On5XZWJYUlN5c3RlbSgpID0gZGVmYXVs
dDsKKwordm9pZCBXZWJYUlN5c3RlbTo6aXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUs
IElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UmJikKK3sKKyAgICAvLyBXaGVuIHRoZSBzdXBwb3J0
c1Nlc3Npb24obW9kZSkgbWV0aG9kIGlzIGludm9rZWQsIGl0IE1VU1QgcmV0dXJuIGEgbmV3IFBy
b21pc2UgcHJvbWlzZSBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Cisg
ICAgLy8gICAxLiBFbnN1cmUgYW4gWFIgZGV2aWNlIGlzIHNlbGVjdGVkLgorICAgIC8vICAgMi4g
SWYgdGhlIFhSIGRldmljZSBpcyBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1cHBv
cnRlZEVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAg
My4gSWYgdGhlIFhSIGRldmljZSdzIGxpc3Qgb2Ygc3VwcG9ydGVkIG1vZGVzIGRvZXMgbm90IGNv
bnRhaW4gbW9kZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9N
RXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgIDQuIEVsc2UgcmVzb2x2
ZSBwcm9taXNlLgorfQorCit2b2lkIFdlYlhSU3lzdGVtOjpyZXF1ZXN0U2Vzc2lvbihYUlNlc3Np
b25Nb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYpCit7
CisgICAgUGxhdGZvcm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbigpOworCisgICAgLy8gV2hlbiB0
aGUgcmVxdWVzdFNlc3Npb24obW9kZSkgbWV0aG9kIGlzIGludm9rZWQsIHRoZSB1c2VyIGFnZW50
IE1VU1QgcmV0dXJuIGEgbmV3IFByb21pc2UgcHJvbWlzZSBhbmQgcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHMgaW4gcGFyYWxsZWw6CisgICAgLy8gICAxLiBMZXQgaW1tZXJzaXZlIGJlIHRydWUgaWYg
bW9kZSBpcyAiaW1tZXJzaXZlLXZyIiBvciAiaW1tZXJzaXZlLWFyIiwgYW5kIGZhbHNlIG90aGVy
d2lzZS4KKyAgICAvLyAgIDIuIElmIGltbWVyc2l2ZSBpcyB0cnVlOgorICAgIC8vICAgICAxLiBJ
ZiBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIGlzIHRydWUgb3IgYWN0aXZlIGltbWVyc2l2ZSBz
ZXNzaW9uIGlzIG5vdCBudWxsLCByZWplY3QgcHJvbWlzZSB3aXRoIGFuICJJbnZhbGlkU3RhdGVF
cnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAgICAgMi4g
RWxzZSBzZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiB0byBiZSB0cnVlLgorICAgIC8vICAg
My4gRW5zdXJlIGFuIFhSIGRldmljZSBpcyBzZWxlY3RlZC4KKyAgICAvLyAgIDQuIElmIHRoZSBY
UiBkZXZpY2UgaXMgbnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBudWxsLgorICAgIC8vICAgNS4g
RWxzZSBpZiB0aGUgWFIgZGV2aWNlJ3MgbGlzdCBvZiBzdXBwb3J0ZWQgbW9kZXMgZG9lcyBub3Qg
Y29udGFpbiBtb2RlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBE
T01FeGNlcHRpb24uCisgICAgLy8gICA2LiBFbHNlIElmIGltbWVyc2l2ZSBpcyB0cnVlIGFuZCB0
aGUgYWxnb3JpdGhtIGlzIG5vdCB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLCByZWplY3Qg
cHJvbWlzZSB3aXRoIGEgIlNlY3VyaXR5RXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCisgICAgLy8gICA3LiBJZiBwcm9taXNlIHdhcyByZWplY3RlZCBhbmQgaW1tZXJz
aXZlIGlzIHRydWUsIHNldCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRvIGZhbHNlLgorICAg
IC8vICAgOC4gSWYgcHJvbWlzZSB3YXMgcmVqZWN0ZWQsIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IC8vICAgOS4gTGV0IHNlc3Npb24gYmUgYSBuZXcgWFJTZXNzaW9uIG9iamVjdC4KKyAgICAvLyAg
IDEwLiBJbml0aWFsaXplIHRoZSBzZXNzaW9uIHdpdGggc2Vzc2lvbiBhbmQgbW9kZS4KKyAgICAv
LyAgIDExLiBJZiBpbW1lcnNpdmUgaXMgdHJ1ZSwgc2V0IHRoZSBhY3RpdmUgaW1tZXJzaXZlIHNl
c3Npb24gdG8gc2Vzc2lvbiwgYW5kIHNldCBwZW5kaW5nIGltbWVyc2l2ZSBzZXNzaW9uIHRvIGZh
bHNlLgorICAgIC8vICAgMTIuIEVsc2UgYXBwZW5kIHNlc3Npb24gdG8gdGhlIGxpc3Qgb2YgaW5s
aW5lIHNlc3Npb25zLgorICAgIC8vICAgMTMuIFJlc29sdmUgcHJvbWlzZSB3aXRoIHNlc3Npb24u
Cit9CisKK2NvbnN0IGNoYXIqIFdlYlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlhSU3lzdGVtIjsKK30KKwordm9pZCBXZWJYUlN5c3RlbTo6c3Rv
cCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0
ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOWFiMTVkN2FlYTQ0NWQxMzMyZmMyMTJhNDU2ODQ1ZGNlZDljZWUxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCkBAIC0w
LDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
WFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiWFJTZXNz
aW9uTW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitjbGFzcyBXZWJYUlNlc3Npb247CitzdHJ1Y3QgWFJTZXNzaW9uSW5pdDsKKwor
Y2xhc3MgV2ViWFJTeXN0ZW0gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlN5c3RlbT4s
IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU3lzdGVtKTsKK3B1YmxpYzoKKyAg
ICB1c2luZyBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElE
TEJvb2xlYW4+OworICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViWFJTZXNzaW9uPj47CisKKyAgICBzdGF0aWMgUmVmPFdl
YlhSU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwg
fldlYlhSU3lzdGVtKCk7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6cmVm
OworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+OjpkZXJlZjsKKworICAgIHZvaWQg
aXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUsIElzU2Vzc2lvblN1cHBvcnRlZFByb21p
c2UmJik7CisgICAgdm9pZCByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlLCBjb25zdCBYUlNl
c3Npb25Jbml0JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYpOworCitwcm90ZWN0ZWQ6CisgICAg
V2ViWFJTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZlbnRUYXJn
ZXQKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU3lzdGVtRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
KyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAg
IC8vIEFjdGl2ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhNzYwY2Nh
OWQ2ZGYzMzgyNmZkM2UzZGFmODIzMjA1MWYzOTBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsCkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIFNlY3VyZUNvbnRleHQsCisg
ICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW50ZXJmYWNlTmFtZT1YUlN5c3RlbQorXSBpbnRlcmZh
Y2UgV2ViWFJTeXN0ZW0gOiBFdmVudFRhcmdldCB7CisgICAgLy8gTWV0aG9kcworICAgIFByb21p
c2U8dm9pZD4gaXNTZXNzaW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUgbW9kZSk7CisgICAgW05l
d09iamVjdF0gUHJvbWlzZTxXZWJYUlNlc3Npb24+IHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1v
ZGUgbW9kZSwgb3B0aW9uYWwgWFJTZXNzaW9uSW5pdCBvcHRpb25zKTsKKworICAgIC8vIEV2ZW50
cworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kZXZpY2VjaGFuZ2U7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0NDAzYjcw
ZGRjMWRjZjk5OGYzMTgzMDFjYTZkMDA1MjNkMGFjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5jcHAKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3Lmgi
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlJpZ2lkVHJhbnNmb3JtLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlZpZXcpOworCitSZWY8V2ViWFJWaWV3PiBXZWJY
UlZpZXc6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJWaWV3KTsK
K30KKworV2ViWFJWaWV3OjpXZWJYUlZpZXcoKQorICAgIDogbV9leWUoWFJFeWU6OkxlZnQpCisg
ICAgLCBtX3Byb2plY3Rpb25NYXRyaXgoRmxvYXQzMkFycmF5OjpjcmVhdGUoMCkpCisgICAgLCBt
X3RyYW5zZm9ybShXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKSkKK3sKK30KKworV2ViWFJW
aWV3Ojp+V2ViWFJWaWV3KCkgPSBkZWZhdWx0OworCitYUkV5ZSBXZWJYUlZpZXc6OmV5ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZXllOworfQorCitjb25zdCBGbG9hdDMyQXJyYXkmIFdlYlhS
Vmlldzo6cHJvamVjdGlvbk1hdHJpeCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvamVjdGlv
bk1hdHJpeDsKK30KKworY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgV2ViWFJWaWV3Ojp0cmFu
c2Zvcm0oKSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM1ODBjNmNmN2I1MjliN2JlZThi
OTk4OGJmZWU5NGViZThlMzgyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlhSRXllLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSUmlnaWRUcmFuc2Zvcm07
CisKK2NsYXNzIFdlYlhSVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSVmlldz4geworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJWaWV3KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFdlYlhSVmlldz4gY3JlYXRlKCk7CisgICAgfldlYlhSVmlldygpOworCisgICAgWFJFeWUg
ZXllKCkgY29uc3Q7CisgICAgY29uc3QgRmxvYXQzMkFycmF5JiBwcm9qZWN0aW9uTWF0cml4KCkg
Y29uc3Q7CisgICAgY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgdHJhbnNmb3JtKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgV2ViWFJWaWV3KCk7CisKKyAgICBYUkV5ZSBtX2V5ZTsKKyAgICBS
ZWY8RmxvYXQzMkFycmF5PiBtX3Byb2plY3Rpb25NYXRyaXg7CisgICAgUmVmPFdlYlhSUmlnaWRU
cmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlZpZXcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNWY0Mjk4MTQ2NjIxNzMyMTRjNDdkNmQ1YzE0MmUzNThl
MjE5MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSVmlldy5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgSW50ZXJmYWNlTmFtZT1YUlZpZXcKK10gaW50ZXJmYWNlIFdlYlhSVmlldyB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFhSRXllIGV5ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRmxv
YXQzMkFycmF5IHByb2plY3Rpb25NYXRyaXg7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHRyYW5zZm9ybTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA2
M2M5NWYzNjQzYWRhYjBhMjgxZGE4OGIzY2JhZTY1YTc5N2IwOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJYUlZpZXdlclBvc2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZWY8V2ViWFJWaWV3ZXJQb3NlPiBXZWJYUlZpZXdlclBvc2U6OmNyZWF0ZSgpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJWaWV3ZXJQb3NlKTsKK30KKworV2ViWFJW
aWV3ZXJQb3NlOjpXZWJYUlZpZXdlclBvc2UoKSA9IGRlZmF1bHQ7CitXZWJYUlZpZXdlclBvc2U6
On5XZWJYUlZpZXdlclBvc2UoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFZlY3RvcjxSZWY8V2ViWFJW
aWV3Pj4mIFdlYlhSVmlld2VyUG9zZTo6dmlld3MoKSBjb25zdAoreworICAgIHJldHVybiBtX3Zp
ZXdzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2Vy
UG9zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNGVkMjViMTBjMjUzMTlhNmU5MjE4NTI4MDY0ZTUxYzhkNGQ4ZjIwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBv
c2UuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJQb3NlLmgiCisjaW5jbHVkZSAiV2ViWFJW
aWV3LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlZpZXdlclBvc2UgOiBwdWJsaWMgV2Vi
WFJQb3NlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlhSVmlld2VyUG9zZT4gY3JlYXRl
KCk7CisgICAgfldlYlhSVmlld2VyUG9zZSgpOworCisgICAgY29uc3QgVmVjdG9yPFJlZjxXZWJY
UlZpZXc+PiYgdmlld3MoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJYUlZpZXdlclBvc2Uo
KTsKKworICAgIFZlY3RvcjxSZWY8V2ViWFJWaWV3Pj4gbV92aWV3czsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWJl
YjJjMDg2Zjg5YmZhZmRmNWUwYmYxZjk1YzBmNDhjNjA3NjEzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaWRsCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9
WFJWaWV3ZXJQb3NlCitdIGludGVyZmFjZSBXZWJYUlZpZXdlclBvc2UgOiBXZWJYUlBvc2Ugewor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8V2ViWFJWaWV3
PiB2aWV3czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSVmlld3BvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdw
b3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYmFhM2M4YTVhOTNlNmQxZTllNjkzYTE5ZDQxMGNmY2Q1M2Y5
ZGRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlZpZXdwb3J0LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlZpZXdwb3J0LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIp
CisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJYUlZpZXdwb3J0KTsKKworUmVm
PFdlYlhSVmlld3BvcnQ+IFdlYlhSVmlld3BvcnQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViWFJWaWV3cG9ydCk7Cit9CisKK1dlYlhSVmlld3BvcnQ6OldlYlhSVmll
d3BvcnQoKSA9IGRlZmF1bHQ7CisKK2ludCBXZWJYUlZpZXdwb3J0Ojp4KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworaW50IFdlYlhSVmlld3BvcnQ6OnkoKSBjb25zdAoreworICAgIHJl
dHVybiAwOworfQorCitpbnQgV2ViWFJWaWV3cG9ydDo6d2lkdGgoKSBjb25zdAoreworICAgIHJl
dHVybiAwOworfQorCitpbnQgV2ViWFJWaWV3cG9ydDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZp
ZXdwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZjgyNDZhOWIxZDRlYWEzYTA0MTExNjRiMTZiNWU0NjljMjAzMDE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBXZWJYUlZpZXdwb3J0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJWaWV3cG9y
dD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJWaWV3cG9ydCk7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxXZWJYUlZpZXdwb3J0PiBjcmVhdGUoKTsKKworICAgIGludCB4KCkg
Y29uc3Q7CisgICAgaW50IHkoKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoKSBjb25zdDsKKyAgICBp
bnQgaGVpZ2h0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJWaWV3cG9ydCgpOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTliNTFlY2YxNGMzNjNmMTgzNDU4MzM1Nzg5ZDdkMGNjZmYyYzk3MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5pZGwKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9z
ZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNl
TmFtZT1YUlZpZXdwb3J0CitdIGludGVyZmFjZSBXZWJYUlZpZXdwb3J0IHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyB4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHk7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgd2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxv
bmcgaGVpZ2h0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJX
ZWJHTExheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTc4ZThiMGI2N2QwMzE4MTRhOWVlYWQ2ZDgyMmM1
NmE4N2YwNmE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUldlYkdMTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUldlYkdMTGF5ZXIuaCIKKworI2lmIEVO
QUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJX
ZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldl
YkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKKyNlbmRpZgorI2luY2x1ZGUgIldlYlhSU2Vzc2lvbi5o
IgorI2luY2x1ZGUgIldlYlhSVmlld3BvcnQuaCIKKyNpbmNsdWRlICJYUldlYkdMTGF5ZXJJbml0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xM
YXllcj4+IFdlYlhSV2ViR0xMYXllcjo6Y3JlYXRlKGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vzc2lv
biwgV2ViWFJSZW5kZXJpbmdDb250ZXh0JiYgY29udGV4dCwgY29uc3QgWFJXZWJHTExheWVySW5p
dCYgaW5pdCkKK3sKKyAgICAvLyBUaGUgWFJXZWJHTExheWVyKHNlc3Npb24sIGNvbnRleHQsIGxh
eWVySW5pdCkgY29uc3RydWN0b3IgTVVTVCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMgd2hl
biBpbnZva2VkOgorICAgIC8vICAgMS4gTGV0IGxheWVyIGJlIGEgbmV3IFhSV2ViR0xMYXllcgor
CisgICAgLy8gICAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBh
biBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKHNlc3Np
b24uZW5kZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH07CisKKyAgICAvLyAgIDMuIElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxpZFN0
YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNC4gSWYgY29udGV4dOKA
mXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVF
cnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8v
ICAgNS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LgorICAgIC8vICAg
Ni4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFs
aWFzIHZhbHVlLgorICAgIC8vICAgNy4gSWYgbGF5ZXJJbml04oCZcyBpZ25vcmVEZXB0aFZhbHVl
cyB2YWx1ZSBpcyBmYWxzZSBhbmQgdGhlIFhSIENvbXBvc2l0b3Igd2lsbCBtYWtlIHVzZSBvZiBk
ZXB0aCB2YWx1ZXMsIEluaXRpYWxpemUgbGF5ZXLigJlzIGlnbm9yZURlcHRoVmFsdWVzIHRvIGZh
bHNlLgorICAgIC8vICAgOC4gRWxzZSBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVEZXB0aFZh
bHVlcyB0byB0cnVlCisgICAgLy8gICA5LiBJbml0aWFsaXplIGxheWVy4oCZcyBmcmFtZWJ1ZmZl
ciB0byBhIG5ldyBvcGFxdWUgZnJhbWVidWZmZXIgY3JlYXRlZCB3aXRoIGNvbnRleHQuCisgICAg
Ly8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgbGF5ZXLigJlzIHN3YXAgY2hhaW4uCisgICAgLy8gICAx
MS4gSWYgbGF5ZXLigJlzIHN3YXAgY2hhaW4gd2FzIHVuYWJsZSB0byBiZSBjcmVhdGVkIGZvciBh
bnkgcmVhc29uLCB0aHJvdyBhbiBPcGVyYXRpb25FcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgLy8gRklYTUU6IFRPRE8KKworICAgIC8vICAgMTIuIFJldHVybiBsYXllci4KKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUldlYkdMTGF5ZXIoc2Vzc2lvbiwgV1RGTW92ZShjb250
ZXh0KSwgaW5pdCkpOworfQorCitXZWJYUldlYkdMTGF5ZXI6OldlYlhSV2ViR0xMYXllcihjb25z
dCBXZWJYUlNlc3Npb24mLCBXZWJYUlJlbmRlcmluZ0NvbnRleHQmJiBjb250ZXh0LCBjb25zdCBY
UldlYkdMTGF5ZXJJbml0JiBpbml0KQorICAgIDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkp
CisgICAgLCBtX2FudGlhbGlhcyhpbml0LmFudGlhbGlhcykKKyAgICAsIG1faWdub3JlRGVwdGhW
YWx1ZXMoaW5pdC5pZ25vcmVEZXB0aFZhbHVlcykKK3sKKyAgICBtX2ZyYW1lYnVmZmVyLm9iamVj
dCA9IFdURjo6c3dpdGNoT24obV9jb250ZXh0LAorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PiYgY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgUmVm
UHRyPFdlYkdMRnJhbWVidWZmZXI+IGZyYW1lQnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3Jl
YXRlKCpjb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBmcmFtZUJ1ZmZlcjsKKyAgICAgICAg
fSwKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICBbXShjb25zdCBSZWZQdHI8V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxX
ZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgq
Y29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVCdWZmZXI7CisgICAgICAgIH0sCisj
ZW5kaWYKKyAgICAgICAgW10oV1RGOjpNb25vc3RhdGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAg
ICApOworfQorCitXZWJYUldlYkdMTGF5ZXI6On5XZWJYUldlYkdMTGF5ZXIoKSA9IGRlZmF1bHQ7
CisKK2Jvb2wgV2ViWFJXZWJHTExheWVyOjphbnRpYWxpYXMoKSBjb25zdAoreworICAgIHJldHVy
biBtX2FudGlhbGlhczsKK30KKworYm9vbCBXZWJYUldlYkdMTGF5ZXI6Omlnbm9yZURlcHRoVmFs
dWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZ25vcmVEZXB0aFZhbHVlczsKK30KKworY29u
c3QgV2ViR0xGcmFtZWJ1ZmZlciYgV2ViWFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcigpIGNvbnN0
Cit7CisgICAgcmV0dXJuICptX2ZyYW1lYnVmZmVyLm9iamVjdDsKK30KKwordW5zaWduZWQgV2Vi
WFJXZWJHTExheWVyOjpmcmFtZWJ1ZmZlcldpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9m
cmFtZWJ1ZmZlci53aWR0aDsKK30KKwordW5zaWduZWQgV2ViWFJXZWJHTExheWVyOjpmcmFtZWJ1
ZmZlckhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIuaGVpZ2h0Owor
fQorCitSZWZQdHI8V2ViWFJWaWV3cG9ydD4gV2ViWFJXZWJHTExheWVyOjpnZXRWaWV3cG9ydChj
b25zdCBXZWJYUlZpZXcmKQoreworICAgIHJldHVybiB7IH07Cit9CisKK2RvdWJsZSBXZWJYUldl
YkdMTGF5ZXI6OmdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgV2ViWFJTZXNz
aW9uJikKK3sKKyAgICByZXR1cm4gMS4wOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUldlYkdMTGF5ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmQwNDgzZWQ1ZmI2MWUyMDIzYjQzOWVk
MWZmMjYxMWJmMWJmYzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2Vi
R0xGcmFtZWJ1ZmZlcjsKK2NsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKKyNpZiBFTkFCTEUo
V0VCR0wyKQorY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKKyNlbmRpZgorY2xhc3MgV2Vi
WFJTZXNzaW9uOworY2xhc3MgV2ViWFJWaWV3OworY2xhc3MgV2ViWFJWaWV3cG9ydDsKK3N0cnVj
dCBYUldlYkdMTGF5ZXJJbml0OworCitjbGFzcyBXZWJYUldlYkdMTGF5ZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJYUldlYkdMTGF5ZXI+IHsKK3B1YmxpYzoKKyAgICAKKyAgICB1c2luZyBXZWJY
UlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZhcmlhbnQ8CisgICAgICAgIFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+LAorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgIFJlZlB0cjxXZWJH
TDJSZW5kZXJpbmdDb250ZXh0PgorI2Vsc2UKKyAgICAgICAgV1RGOjpNb25vc3RhdGUKKyNlbmRp
ZgorICAgID47CisKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+
IGNyZWF0ZShjb25zdCBXZWJYUlNlc3Npb24mLCBXZWJYUlJlbmRlcmluZ0NvbnRleHQmJiwgY29u
c3QgWFJXZWJHTExheWVySW5pdCYpOworICAgIH5XZWJYUldlYkdMTGF5ZXIoKTsKKworICAgIGJv
b2wgYW50aWFsaWFzKCkgY29uc3Q7CisgICAgYm9vbCBpZ25vcmVEZXB0aFZhbHVlcygpIGNvbnN0
OworCisgICAgY29uc3QgV2ViR0xGcmFtZWJ1ZmZlciYgZnJhbWVidWZmZXIoKSBjb25zdDsKKyAg
ICB1bnNpZ25lZCBmcmFtZWJ1ZmZlcldpZHRoKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVi
dWZmZXJIZWlnaHQoKSBjb25zdDsKKworICAgIFJlZlB0cjxXZWJYUlZpZXdwb3J0PiBnZXRWaWV3
cG9ydChjb25zdCBXZWJYUlZpZXcmKTsKKworICAgIHN0YXRpYyBkb3VibGUgZ2V0TmF0aXZlRnJh
bWVidWZmZXJTY2FsZUZhY3Rvcihjb25zdCBXZWJYUlNlc3Npb24mKTsKKworcHJpdmF0ZToKKyAg
ICBXZWJYUldlYkdMTGF5ZXIoY29uc3QgV2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJpbmdDb250
ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsKKworICAgIFdlYlhSUmVuZGVyaW5nQ29u
dGV4dCBtX2NvbnRleHQ7CisgICAgYm9vbCBtX2FudGlhbGlhcyB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2lnbm9yZURlcHRoVmFsdWVzIHsgZmFsc2UgfTsKKworICAgIHN0cnVjdCB7CisgICAgICAg
IFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBvYmplY3Q7CisgICAgICAgIHVuc2lnbmVkIHdpZHRo
IHsgMCB9OworICAgICAgICB1bnNpZ25lZCBoZWlnaHQgeyAwIH07CisgICAgfSBtX2ZyYW1lYnVm
ZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdM
TGF5ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA4YmFkMzdiZDdjMmEzOWNlMTY5YTA2NjQ0ZjhhNDk1OWNlYjk2NjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2Vi
R0xMYXllci5pZGwKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIChXZWJH
TFJlbmRlcmluZ0NvbnRleHQgb3IgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgV2ViWFJXZWJHTFJl
bmRlcmluZ0NvbnRleHQ7CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhwb3NlZD1XaW5kb3cs
CisgICAgQ29uc3RydWN0b3IoV2ViWFJTZXNzaW9uIHNlc3Npb24sIFdlYlhSV2ViR0xSZW5kZXJp
bmdDb250ZXh0IGNvbnRleHQsIG9wdGlvbmFsIFhSV2ViR0xMYXllckluaXQgbGF5ZXJJbml0KSwK
KyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUldlYkdMTGF5ZXIKK10gaW50ZXJmYWNlIFdl
YlhSV2ViR0xMYXllciB7CisgICAgLy8gQXR0cmlidXRlcworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuIGFudGlhbGlhczsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpZ25v
cmVEZXB0aFZhbHVlczsKKworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2Vi
R0xGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBmcmFtZWJ1ZmZlcldpZHRoOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGZyYW1lYnVmZmVySGVpZ2h0OworCisgICAgLy8gTWV0aG9kcworICAgIFdlYlhSVmll
d3BvcnQ/IGdldFZpZXdwb3J0KFdlYlhSVmlldyB2aWV3KTsKKworICAgIC8vIFN0YXRpYyBNZXRo
b2RzCisgICAgc3RhdGljIGRvdWJsZSBnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKFdl
YlhSU2Vzc2lvbiBzZXNzaW9uKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ZjQwNzJhNzE1
Y2RmNWNiNzEzM2IzMjlmOWNiOGVhNTc4NzYwZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJFbnZpcm9ubWVudEJsZW5kTW9k
ZSB7CisgICAgT3BhcXVlLAorICAgIEFkZGl0aXZlLAorICAgIEFscGhhQmxlbmQKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlZmEwODhjZmNlZDYxMDllOWNjYjIxZGVmM2M0MTFlODhjYTM4ZjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBY
UkVudmlyb25tZW50QmxlbmRNb2RlIHsKKyAgICAib3BhcXVlIiwKKyAgICAiYWRkaXRpdmUiLAor
ICAgICJhbHBoYS1ibGVuZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWExZWE3ZTFlN2Q4MjI2MzI1ZjYwYzgyNmZmZmJjMGI5YmE0ZDY2ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaApAQCAtMCww
ICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhS
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJFeWUgeworICAgIE5vbmUs
CisgICAgTGVmdCwKKyAgICBSaWdodCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJFeWUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWFkMWU0MzA0YTYyZWE2NTkzNzAzNTQ2NTk1NDQwMzk2MjAzODM5Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJFeWUuaWRs
CkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9
V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBYUkV5ZSB7CisgICAgIm5vbmUi
LAorICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODUw
NDk3Njg4NGVjMThlZWYzODFlZGFjYzJhNTM1NGYxY2YyODMyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiQ2FsbGJh
Y2tSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdlYlhSRnJhbWU7CisKK2NsYXNzIFhSRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxYUkZyYW1lUmVxdWVzdENhbGxiYWNrPiwgcHVibGljIEFj
dGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6
QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhh
bmRsZUV2ZW50KGRvdWJsZSBoaWdoUmVzVGltZU1zLCBXZWJYUkZyYW1lJikgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFj
ay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTZiMTUxYTMxYmFmOGU3Yjk4MGIxMmY1MjUwOTQ4NGZjNTk0ODE3
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBl
ZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VC
WFIKK10gY2FsbGJhY2sgWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA9IHZvaWQgKERPTUhpZ2hSZXNU
aW1lU3RhbXAgdGltZSwgV2ViWFJGcmFtZSBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzMzMDM0ZDBjZDQ5YWM4ZGVlOTAy
YTA4MTY0NDgwNDM3OGNiYzJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gY2xhc3MgWFJIYW5kZWRuZXNzIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAg
UmlnaHQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVk
bmVzcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTNmNzA1YTYwMGJlZWJiMjFlODFkODEyZjJkN2QwYzcyYzUwNmYwYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNz
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJIYW5kZWRuZXNzIHsK
KyAgICAibm9uZSIsCisgICAgImxlZnQiLAorICAgICJyaWdodCIKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjI2MzFhYjU1Mjk3MDU2Y2MwNjNkNzQ0Njg5ZDNlMDMzY2EwZmE1NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmNw
cApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJYUklucHV0U291cmNlRXZlbnQuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2lu
Y2x1ZGUgIldlYlhSRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gWFJJbnB1dFNvdXJj
ZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlh
bGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
WFJJbnB1dFNvdXJjZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKwor
WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAg
OiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9mcmFtZShpbml0
aWFsaXplci5mcmFtZSkKKyAgICAsIG1faW5wdXRTb3VyY2UoaW5pdGlhbGl6ZXIuaW5wdXRTb3Vy
Y2UpCisgICAgLCBtX2J1dHRvbkluZGV4KGluaXRpYWxpemVyLmJ1dHRvbkluZGV4KQoreworICAg
IEFTU0VSVChtX2ZyYW1lKTsKKyAgICBBU1NFUlQobV9pbnB1dFNvdXJjZSk7Cit9CisKK1hSSW5w
dXRTb3VyY2VFdmVudDo6flhSSW5wdXRTb3VyY2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3Qg
V2ViWFJGcmFtZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICptX2ZyYW1lOworfQorCitjb25zdCBXZWJYUklucHV0U291cmNlJiBYUklucHV0U291cmNl
RXZlbnQ6OmlucHV0U291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1faW5wdXRTb3VyY2U7
Cit9CisKK09wdGlvbmFsPGludD4gWFJJbnB1dFNvdXJjZUV2ZW50OjpidXR0b25JbmRleCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fYnV0dG9uSW5kZXg7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjN2ZjMDQ3NDdh
MmJmMTFlYThiMmZiN2I1Y2E5ZjQ1NGFjMTUzMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUkZyYW1lOwor
Y2xhc3MgV2ViWFJJbnB1dFNvdXJjZTsKKworY2xhc3MgWFJJbnB1dFNvdXJjZUV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7
CisgICAgICAgIFJlZlB0cjxXZWJYUkZyYW1lPiBmcmFtZTsKKyAgICAgICAgUmVmUHRyPFdlYlhS
SW5wdXRTb3VyY2U+IGlucHV0U291cmNlOworICAgICAgICBPcHRpb25hbDxpbnQ+IGJ1dHRvbklu
ZGV4OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpO
byk7CisgICAgdmlydHVhbCB+WFJJbnB1dFNvdXJjZUV2ZW50KCk7CisKKyAgICBjb25zdCBXZWJY
UkZyYW1lJiBmcmFtZSgpIGNvbnN0OworICAgIGNvbnN0IFdlYlhSSW5wdXRTb3VyY2UmIGlucHV0
U291cmNlKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8aW50PiBidXR0b25JbmRleCgpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIFhSSW5wdXRTb3VyY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViWFJGcmFtZT4gbV9mcmFtZTsK
KyAgICBSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4gbV9pbnB1dFNvdXJjZTsKKyAgICBPcHRpb25h
bDxpbnQ+IG1fYnV0dG9uSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI0OGE2MDJmOGIxMjU5ZmQ4
ODk5YWUxNjc1YWZhYjI0NDNiZjE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlv
bmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSSW5wdXRTb3VyY2VFdmVudEluaXQgOiBFdmVudElu
aXQgeworICAgIHJlcXVpcmVkIFdlYlhSRnJhbWUgZnJhbWU7CisgICAgcmVxdWlyZWQgV2ViWFJJ
bnB1dFNvdXJjZSBpbnB1dFNvdXJjZTsKK307CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgRXhw
b3NlZD1XaW5kb3csCisgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFhSSW5wdXRTb3Vy
Y2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVyZmFjZSBYUklucHV0U291cmNlRXZl
bnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUkZy
YW1lIGZyYW1lOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJJbnB1
dFNvdXJjZSBpbnB1dFNvdXJjZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MDljMjJmZmU0NTkwNWEwNmZhMWM4OTAwNzg0MzBkNzAxNjgwYTBhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50
LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmgiCisKKyNpZiBFTkFCTEUoV0VC
WFIpCisKKyNpbmNsdWRlICJXZWJYUklucHV0U291cmNlLmgiCisjaW5jbHVkZSAiV2ViWFJTZXNz
aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQ+IFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50KHR5cGUs
IGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dDo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5
cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpCisgICAgLCBtX3Nlc3Npb24oKmluaXRpYWxpemVy
LnNlc3Npb24pCisgICAgLCBtX2FkZGVkKGluaXRpYWxpemVyLmFkZGVkKQorICAgICwgbV9yZW1v
dmVkKGluaXRpYWxpemVyLnJlbW92ZWQpCit7Cit9CisKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQ6On5YUklucHV0U291cmNlc0NoYW5nZUV2ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBXZWJY
UlNlc3Npb24mIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ6OnNlc3Npb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX3Nlc3Npb247Cit9CisKK2NvbnN0IFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1
dFNvdXJjZT4+JiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjphZGRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fYWRkZWQ7Cit9CisKK2NvbnN0IFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNv
dXJjZT4+JiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpyZW1vdmVkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9yZW1vdmVkOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNGVjYzc3NGY5
OGRiMzBhMjIyODE4MGE4ZTZhYjYzOGEyYzQ4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhS
KQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSSW5wdXRT
b3VyY2U7CitjbGFzcyBXZWJYUlNlc3Npb247CisKK2NsYXNzIFhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDog
RXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFdlYlhSU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAg
ICAgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0U291cmNlPj4gYWRkZWQ7CisgICAgICAgIFZlY3Rv
cjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4+IHJlbW92ZWQ7CisgICAgfTsKKworICAgIHN0YXRp
YyBSZWY8WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
LCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpOworCisgICAgY29uc3QgV2ViWFJTZXNzaW9uJiBz
ZXNzaW9uKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0U291cmNl
Pj4mIGFkZGVkKCkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJYUklucHV0U291
cmNlPj4mIHJlbW92ZWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUklucHV0U291cmNlc0No
YW5nZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKwor
ICAgIFJlZjxXZWJYUlNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYlhS
SW5wdXRTb3VyY2U+PiBtX2FkZGVkOworICAgIFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJj
ZT4+IG1fcmVtb3ZlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YTQ2NTkyYjk2
Y2JkOWYxZmYxNjdiYjE5MTBhNmUxNDdkYWVjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFdlYlhSU2Vzc2lvbiBzZXNz
aW9uOworICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFdlYlhSSW5wdXRTb3VyY2U+IGFkZGVkOwor
ICAgIHJlcXVpcmVkIEZyb3plbkFycmF5PFdlYlhSSW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9Owor
CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwK
KyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9y
KERPTVN0cmluZyB0eXBlLCBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50SW5pdCBldmVudEluaXRE
aWN0KSwKK10gaW50ZXJmYWNlIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgOiBFdmVudCB7Cisg
ICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNlc3Npb24gc2Vzc2lvbjsK
KyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFdlYlhSSW5w
dXRTb3VyY2U+IGFkZGVkOworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRnJv
emVuQXJyYXk8V2ViWFJJbnB1dFNvdXJjZT4gcmVtb3ZlZDsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc4OTliMzQ4YjU1ZmQyNzk0Mzg3YjNmYzhmNGQyYzBkZjExM2NlOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2
ZW50LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCIKKworI2lmIEVOQUJMRShXRUJY
UikKKworI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2UuaCIKKyNpbmNsdWRlICJXZWJYUlJp
Z2lkVHJhbnNmb3JtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSUmVmZXJlbmNl
U3BhY2VFdmVudD4gWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJSZWZlcmVuY2VTcGFjZUV2ZW50KHR5cGUsIGlu
aXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKK30KKworWFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFs
aXplciwgaXNUcnVzdGVkKQorICAgICwgbV9yZWZlcmVuY2VTcGFjZShpbml0aWFsaXplci5yZWZl
cmVuY2VTcGFjZSkKKyAgICAsIG1fdHJhbnNmb3JtKGluaXRpYWxpemVyLnRyYW5zZm9ybSkKK3sK
KyAgICBBU1NFUlQobV9yZWZlcmVuY2VTcGFjZSk7CisgICAgQVNTRVJUKG1fdHJhbnNmb3JtKTsK
K30KKworWFJSZWZlcmVuY2VTcGFjZUV2ZW50Ojp+WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCkgPSBk
ZWZhdWx0OworCitjb25zdCBXZWJYUlJlZmVyZW5jZVNwYWNlJiBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQ6OnJlZmVyZW5jZVNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fcmVmZXJlbmNlU3Bh
Y2U7Cit9CisKK2NvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIFhSUmVmZXJlbmNlU3BhY2VFdmVu
dDo6dHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fdHJhbnNmb3JtOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYzUyMGE3Y2RmMTkwMDk5MTQ0MzJkZmJhOWU3NThiODhmM2VkOGZhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2U7CitjbGFzcyBXZWJYUlJpZ2lkVHJhbnNmb3JtOwor
CitjbGFzcyBYUlJlZmVyZW5jZVNwYWNlRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgor
ICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgUmVmUHRyPFdlYlhSUmVmZXJl
bmNlU3BhY2U+IHJlZmVyZW5jZVNwYWNlOworICAgICAgICBSZWZQdHI8V2ViWFJSaWdpZFRyYW5z
Zm9ybT4gdHJhbnNmb3JtOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFhSUmVmZXJlbmNlU3Bh
Y2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CisgICAgdmlydHVhbCB+WFJSZWZlcmVuY2VTcGFjZUV2ZW50KCk7
CisKKyAgICBjb25zdCBXZWJYUlJlZmVyZW5jZVNwYWNlJiByZWZlcmVuY2VTcGFjZSgpIGNvbnN0
OworICAgIGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIHRyYW5zZm9ybSgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIFhSUmVmZXJlbmNlU3BhY2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWZQdHI8V2ViWFJSZWZlcmVuY2VTcGFjZT4g
bV9yZWZlcmVuY2VTcGFjZTsKKyAgICBSZWZQdHI8V2ViWFJSaWdpZFRyYW5zZm9ybT4gbV90cmFu
c2Zvcm07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJl
bmNlU3BhY2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJl
bmNlU3BhY2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY5YzE0YzM1ODNmMTNlZjhkN2NhYjRjOGM5
MzEzZDk3MTJjMmQ1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdF
QlhSLAorXSBkaWN0aW9uYXJ5IFhSUmVmZXJlbmNlU3BhY2VFdmVudEluaXQgOiBFdmVudEluaXQg
eworICAgIHJlcXVpcmVkIFdlYlhSUmVmZXJlbmNlU3BhY2UgcmVmZXJlbmNlU3BhY2U7CisgICAg
V2ViWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorXSBpbnRlcmZhY2UgWFJSZWZl
cmVuY2VTcGFjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgV2ViWFJSZWZlcmVuY2VTcGFjZSByZWZlcmVuY2VTcGFjZTsKKyAgICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5
cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNDM1ODk2YWI5YzI0MDY1MDIyNTJiZDAyOTFjNTUwYjBkOTM1OGQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVy
ZW5jZVNwYWNlVHlwZS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBj
bGFzcyBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7CisgICAgVmlld2VyLAorICAgIExvY2FsLAorICAg
IExvY2FsRmxvb3IsCisgICAgQm91bmRlZEZsb29yLAorICAgIFVuYm91bmRlZAorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMjk5NmJiZTkwZWY0ZGMzZWVmZjljM2M1ZmJmNzlkYzkwY2U1NDUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNw
YWNlVHlwZS5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSUmVmZXJl
bmNlU3BhY2VUeXBlIHsKKyAgICAidmlld2VyIiwKKyAgICAibG9jYWwiLAorICAgICJsb2NhbC1m
bG9vciIsCisgICAgImJvdW5kZWQtZmxvb3IiLAorICAgICJ1bmJvdW5kZWQiCit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0YXRlSW5pdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcwNzE4MGIwZTBmNzgyYzIxNzY3OTkzN2IxNGM5ODdiM2I0ZjEyNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmgK
QEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSV2ViR0xMYXllci5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgWFJSZW5kZXJTdGF0ZUlu
aXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7CisgICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRv
dWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxXZWJYUldlYkdMTGF5
ZXI+IGJhc2VMYXllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJSZW5kZXJTdGF0ZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwZWFlNGIyYTlkNDFmOTRkYTdjYjI1Y2Iw
OTliYTVlMmFlYzExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIs
CitdIGRpY3Rpb25hcnkgWFJSZW5kZXJTdGF0ZUluaXQgeworICAgIGRvdWJsZSBkZXB0aE5lYXI7
CisgICAgZG91YmxlIGRlcHRoRmFyOworICAgIGRvdWJsZSBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZW
aWV3OworICAgIFdlYlhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4NzQ4
YzhhMDFhMjhkZWI2YjU0ODFmY2M1NGE3YzFkODdlNmRjZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEs
NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhSU2Vz
c2lvbkV2ZW50LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlNlc3Np
b24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8WFJTZXNzaW9uRXZlbnQ+IFhSU2Vz
c2lvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5p
dGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgWFJTZXNzaW9uRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOworfQorCitY
UlNlc3Npb25FdmVudDo6WFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0
eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNzaW9uKGluaXRpYWxpemVy
LnNlc3Npb24pCit7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7Cit9CisKK1hSU2Vzc2lvbkV2ZW50
Ojp+WFJTZXNzaW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFdlYlhSU2Vzc2lvbiYgWFJT
ZXNzaW9uRXZlbnQ6OnNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiAqbV9zZXNzaW9uOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWU4Y2ViNDA3MmQ1ZWNmNjlhZjBlZmJlNzBiM2Y5Zjg2NDRhZjk5YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaApAQCAt
MCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXZWJYUlNlc3Npb247CisKK2NsYXNzIFhSU2Vzc2lvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2
ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJl
ZlB0cjxXZWJYUlNlc3Npb24+IHNlc3Npb247CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8WFJT
ZXNzaW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1
c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSU2Vzc2lvbkV2ZW50KCk7CisK
KyAgICBjb25zdCBXZWJYUlNlc3Npb24mIHNlc3Npb24oKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBYUlNlc3Npb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3Rl
ZCk7CisKKyAgICBSZWZQdHI8V2ViWFJTZXNzaW9uPiBtX3Nlc3Npb247Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MTkz
M2YyOTVlNTQ0MTBlZDYwZjYzOTBhZTVjMjg0ZjJiYzkyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSU2Vzc2lvbkV2ZW50SW5pdCA6IEV2
ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgV2ViWFJTZXNzaW9uIHNlc3Npb247Cit9OworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0
cmluZyB0eXBlLCBYUlNlc3Npb25FdmVudEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVyZmFj
ZSBYUlNlc3Npb25FdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIFdlYlhSU2Vzc2lvbiBzZXNzaW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlNlc3Npb25Jbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYyYTI2ODIyOTZlMmVkNDkxYTc3
YjQyZDg3NDAwMGEyY2ViNjlmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
SlNDIHsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFhSU2Vzc2lvbkluaXQgeworICAgIFZlY3RvcjxKU0M6OkpTVmFsdWU+IHJlcXVpcmVkRmVhdHVy
ZXM7CisgICAgVmVjdG9yPEpTQzo6SlNWYWx1ZT4gb3B0aW9uYWxGZWF0dXJlczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYw
NWMwZDUwNzI0NWQ1YTgzNzljYzYyNTk1YWM1NTE5ZjlhMGRkYTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRsCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgWFJTZXNzaW9uSW5pdCB7CisgICAg
c2VxdWVuY2U8YW55PiByZXF1aXJlZEZlYXR1cmVzOworICAgIHNlcXVlbmNlPGFueT4gb3B0aW9u
YWxGZWF0dXJlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbk1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9u
TW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc3MWE5ZGE1ODRiYzBhMmRmNGQ4MWRiMDk4NDEyZDFmMjk1YjFm
OTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbk1vZGUuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3VzaW5nIFhSU2Vzc2lvbk1vZGUgPSBQbGF0Zm9ybVhSOjpTZXNzaW9u
TW9kZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2Rl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTY1ZjYwNmI0Njk3OWExMmQ3YzE0YzM2YjMxNTc3MTI4ZDJiMWMxNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5p
ZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVtIFhSU2Vzc2lvbk1vZGUgewor
ICAgICJpbmxpbmUiLAorICAgICJpbW1lcnNpdmUtdnIiLAorICAgICJpbW1lcnNpdmUtYXIiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWZjYTQ0ZTQ1MWI5N2M1NjAyNmUxNDViNTIyMzMxZjgxNjViYWU3ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2Rl
LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSVGFyZ2V0
UmF5TW9kZSB7CisgICAgR2F6ZSwKKyAgICBUcmFja2VkUG9pbnRlciwKKyAgICBTY3JlZW4sCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjRlNTQ2M2QzNGNmNjZlNjhjM2MyMWIzNDZiYmI5NzczYWJkOGFhYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2Rl
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJUYXJnZXRSYXlNb2Rl
IHsKKyAgICAiZ2F6ZSIsCisgICAgInRyYWNrZWQtcG9pbnRlciIsCisgICAgInNjcmVlbiIKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmZkZDg1OTc4ZDlkMDFmZjc5MzYyYzdjMGJiODU4ZDc3N2ZiMjkxYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5
U3RhdGUuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgWFJW
aXNpYmlsaXR5U3RhdGUgeworICAgIFZpc2libGUsCisgICAgVmlzaWJsZUJsdXJyZWQsCisgICAg
SGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJp
bGl0eVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5
U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZWYyNzU4MGZjMTk4ZjM2Nzk3MWMzODhjMGY5OGZmYzlk
NmZlOGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
VmlzaWJpbGl0eVN0YXRlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0g
WFJWaXNpYmlsaXR5U3RhdGUgeworICAgICJ2aXNpYmxlIiwKKyAgICAidmlzaWJsZS1ibHVycmVk
IiwKKyAgICAiaGlkZGVuIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVySW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UldlYkdMTGF5ZXJJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE0NGQ1MTBhMGVmNGVjMWRjODk5MWY1NGYy
YjAwN2RkMDM4ZTdkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJXZWJHTExheWVySW5pdC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IFhSV2ViR0xMYXllckluaXQgeworICAgIGJvb2wgYW50aWFsaWFzIHsgdHJ1ZSB9
OworICAgIGJvb2wgZGVwdGggeyB0cnVlIH07CisgICAgYm9vbCBzdGVuY2lsIHsgZmFsc2UgfTsK
KyAgICBib29sIGFscGhhIHsgdHJ1ZSB9OworICAgIGJvb2wgaWdub3JlRGVwdGhWYWx1ZXMgeyB0
cnVlIH07CisgICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IgeyAxLjAgfTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNhNDM2ZDJiNTQzMmNjZjk4NTJhY2FkZWI3MGQ0MzJlNWE1NTNiNTkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQu
aWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgWFJXZWJHTExh
eWVySW5pdCB7CisgICAgYm9vbGVhbiBhbnRpYWxpYXMgPSB0cnVlOworICAgIGJvb2xlYW4gZGVw
dGggPSB0cnVlOworICAgIGJvb2xlYW4gc3RlbmNpbCA9IGZhbHNlOworICAgIGJvb2xlYW4gYWxw
aGEgPSB0cnVlOworICAgIGJvb2xlYW4gaWdub3JlRGVwdGhWYWx1ZXMgPSBmYWxzZTsKKyAgICBk
b3VibGUgZnJhbWVidWZmZXJTY2FsZUZhY3RvciA9IDEuMDsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
aW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uODFkYWZlNTli
NTEwODY2MzhjZTY2NGQyMDcxNDRkNDBiZTI4MTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAt
Mzk0LDYgKzM5NCw4IEBAIEVOQUJMRV9XRUJHUFVfYXBwbGV0dm9zID0gRU5BQkxFX1dFQkdQVTsK
IEVOQUJMRV9XRUJHUFVfbWFjb3N4ID0gJChFTkFCTEVfV0VCR1BVJChXS19NQUNPU18xMDE0KSk7
CiBFTkFCTEVfV0VCR1BVX01BQ09TX1NJTkNFXzEwMTQgPSBFTkFCTEVfV0VCR1BVOwogCitFTkFC
TEVfV0VCWFIgPSBFTkFCTEVfV0VCWFI7CisKIEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MgPSA7
CiAKIEVOQUJMRV9XRUJfQVVESU8gPSBFTkFCTEVfV0VCX0FVRElPOwpAQCAtNDE0LDQgKzQxNiw0
IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQ
TEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBM
SUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9B
VkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RF
WFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBP
U0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9M
TF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlM
SU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJ
VFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFU
QUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRF
UkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBP
UlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAk
KEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVU
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VD
VElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJM
RV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9U
T0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9M
RVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkg
JChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9T
QU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVf
TU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFC
TEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdP
UktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RP
VUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQo
RU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VS
VkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJf
QkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJF
Q09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JL
RVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVM
RVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9N
RVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVP
KSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0sp
ICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklW
RVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJB
Q1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9BUElf
U1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5B
QkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkg
JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5B
QkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9D
U1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9D
U1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxF
X0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9P
UCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lO
X1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxF
X0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChF
TkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVO
QUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVO
QUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NB
UFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VT
U0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9N
RVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxF
KSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9T
UEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJ
TEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNP
TFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVf
U0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJF
QUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFN
U19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAk
KEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VT
RVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJ
T05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9X
RUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VC
R0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJM
RV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAw
ZDU5ODJlMWRjNjllYjY4MGYwOGRlYmQ4ZTZmMjZhNzI0N2Q5ZGE1Li5lNzVlY2VmMTQwYWI1Y2Vl
ZjFkMGQ2ZGJjMDY2ZTM1YzkyZDNmNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAt
NzAsMyArNzAsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgJHtVUE9XRVJHTElCX0lOQ0xVREVfRElSU30KICAgICAke1dQRUJBQ0tFTkRfRkRP
X0lOQ0xVREVfRElSU30KICkKKworaWYgKFVTRV9PUEVOWFIpCisgICAgbGlzdChBUFBFTkQgV2Vi
Q29yZV9MSUJSQVJJRVMgJHtPUEVOWFJfTElCUkFSSUVTfSkKKyAgICBsaXN0KEFQUEVORCBXZWJD
b3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTICR7T1BFTlhSX0lOQ0xVREVfRElSU30pCitl
bmRpZiAoKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjA3
NmMyMzQwMDE3OTc4NjYwNGZhYWY2MGM2ZmZmN2VmZDNkNDhkNS4uZTQ2MGIzNDM2OWYwZGI1YzI4
ZDgzNmRjYzdjNGFiOGFhMjI1MDRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQxMSw2ICs0MTEsMzEg
QEAgTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZS5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dlYkdQ
VVRleHR1cmVWaWV3LmNwcAogTW9kdWxlcy93ZWJncHUvV29ya2VyTmF2aWdhdG9yR1BVLmNwcAog
CisjaWYgRU5BQkxFX1dFQlhSCisKK01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuY3BwIEBu
by11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgQG5v
LXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuY3BwIEBuby11bmlmeQorTW9kdWxlcy93
ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9X
ZWJYUklucHV0U291cmNlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmNw
cCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgQG5vLXVu
aWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwIEBuby11bmlmeQorTW9kdWxl
cy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIv
V2ViWFJTZXNzaW9uLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5jcHAg
QG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcCBAbm8tdW5pZnkKK01vZHVs
ZXMvd2VieHIvV2ViWFJWaWV3LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJWaWV3
ZXJQb3NlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHAgQG5v
LXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgQG5vLXVuaWZ5CitNb2R1
bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9Y
UlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25FdmVudC5jcHAgQG5vLXVuaWZ5CisKKyNlbmRpZgorCiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAKQEAgLTIwNzcsNiArMjEwMiw5
IEBAIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAogcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdEZXRlY3RvcklDVS5jcHAKIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnku
Y3BwCiAKK3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuY3BwIEBuby11bmlmeQorcGxhdGZvcm0veHIv
b3BlbnhyL1BsYXRmb3JtWFIuY3BwIEBuby11bmlmeQorCiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNw
cAogcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcAogcGx1Z2lucy9ET01QbHVnaW4uY3BwCkBA
IC0zNTI1LDYgKzM1NTMsNDEgQEAgSlNYUGF0aE5TUmVzb2x2ZXIuY3BwCiBKU1hQYXRoUmVzdWx0
LmNwcAogSlNYU0xUUHJvY2Vzc29yLmNwcAogCisjaWYgRU5BQkxFX1dFQkdMCisKK0pTV2ViWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwCitKU1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuY3BwCitK
U1hSRXllLmNwcAorSlNXZWJYUkZyYW1lLmNwcAorSlNYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmNw
cAorSlNYUkhhbmRlZG5lc3MuY3BwCitKU1dlYlhSSW5wdXRTb3VyY2UuY3BwCitKU1dlYlhSSW5w
dXRTb3VyY2VBcnJheS5jcHAKK0pTWFJJbnB1dFNvdXJjZUV2ZW50LmNwcAorSlNYUklucHV0U291
cmNlc0NoYW5nZUV2ZW50LmNwcAorSlNXZWJYUlBvc2UuY3BwCitKU1dlYlhSUmVmZXJlbmNlU3Bh
Y2UuY3BwCitKU1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKK0pTWFJSZWZlcmVuY2VTcGFjZVR5
cGUuY3BwCitKU1dlYlhSUmVuZGVyU3RhdGUuY3BwCitKU1hSUmVuZGVyU3RhdGVJbml0LmNwcAor
SlNXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcAorSlNXZWJYUlNlc3Npb24uY3BwCitKU1hSU2Vzc2lv
bkV2ZW50LmNwcAorSlNYUlNlc3Npb25Jbml0LmNwcAorSlNYUlNlc3Npb25Nb2RlLmNwcAorSlNX
ZWJYUlNwYWNlLmNwcAorSlNXZWJYUlN5c3RlbS5jcHAKK0pTWFJUYXJnZXRSYXlNb2RlLmNwcAor
SlNXZWJYUlZpZXcuY3BwCitKU1dlYlhSVmlld2VyUG9zZS5jcHAKK0pTV2ViWFJWaWV3cG9ydC5j
cHAKK0pTWFJWaXNpYmlsaXR5U3RhdGUuY3BwCitKU1dlYlhSV2ViR0xMYXllci5jcHAKK0pTWFJX
ZWJHTExheWVySW5pdC5jcHAKKworI2VuZGlmCisKICNpZiBFTkFCTEVfR0FNRVBBRAogCiBKU0dh
bWVwYWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNmUxOTcxYjVlMmZlNzliOWQ1MmEyZDRjZWE1NGJhYTJiMWM3NTg1ZC4u
ODk0NjcyMjcxYjQyY2I2YWNiYTkyMDAwMGEwYmFmNTlmMDI1OWFiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDgxNiw2ICs0
ODE2LDYwIEBACiAJCUUxRTZFRUE4MEI2MjhEQjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUU2
RUVBNzBCNjI4REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0RWxlbWVudC5oICovOyB9OwogCQlF
MUVDMjlBMDBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVDMjk5RTBCQjA0QzZCMDBFQTE4N0Ig
LyogWFBhdGhOb2RlU2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTFFRThC
NzAyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBs
YXRmb3JtWFIuY3BwICovOyB9OworCQlFMUVFOEI3MTI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZv
cm1YUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEI2RTI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5jcHAgKi87IH07CisJCUUxRUU4
QjcyMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEI2RjI0MTJCMkE3MDBFNzk0RDYgLyogUGxh
dGZvcm1YUi5oICovOyB9OworCQlFMUVFOEI3NjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3
ZXJQb3NlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFDNzI0MTJCMTZGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi87IH07CisJCUUx
RUU4Qjc3MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQzkyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmggKi87IH07CisJCUUxRUU4Qjc4MjQxMzE5
MUYwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRv
cldlYlhSLmggKi87IH07CisJCUUxRUU4Qjc5MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0
YXRlSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThBQ0IyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggKi87IH07CisJ
CUUxRUU4QjdBMjQxMzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0MyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4QjdCMjQx
MzE5MUYwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCAqLzsgfTsKKwkJRTFFRThCN0MyNDEzMTkxRjAwRTc5
NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFRThBQ0UyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVy
U3RhdGUuY3BwICovOyB9OworCQlFMUVFOEI3RDI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJTcGFj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThB
Q0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuaCAqLzsgfTsKKwkJRTFFRThCN0UyNDEz
MTkxRjAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEMTI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLzsgfTsKKwkJRTFFRThCN0YyNDEz
MTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwICovOyB9OworCQlFMUVFOEI4MDI0MTMxOTFGMDBFNzk0
RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCAqLzsgfTsKKwkJRTFFRThCODEyNDEzMTkxRjAw
RTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ1MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRl
clN0YXRlLmggKi87IH07CisJCUUxRUU4QjgyMjQxMzE5MUYwMEU3OTRENiAvKiBYUlZpc2liaWxp
dHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThBRDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmggKi87IH07CisJ
CUUxRUU4QjgzMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDgyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgKi87IH07CisJCUUxRUU4Qjg0MjQxMzE5MUYw
MEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQuaCAqLzsgfTsKKwkJRTFFRThCODUyNDEzMTkxRjAwRTc5NEQ2IC8q
IFhSU2Vzc2lvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAg
Ki87IH07CisJCUUxRUU4Qjg2MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJy
YXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4
QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCAqLzsgfTsKKwkJ
RTFFRThCODcyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTAyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSVmlldy5oICovOyB9OworCQlFMUVFOEI4ODI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJQ
b3NlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEFFMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggKi87IH07CisJCUUxRUU4Qjg5MjQx
MzE5MUYwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lz
dGVtLmggKi87IH07CisJCUUxRUU4QjhBMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFMzI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5oICovOyB9OworCQlFMUVFOEI4QjI0MTMxOTFG
MDBFNzk0RDYgLyogV2ViWFJQb3NlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU1MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlBvc2UuY3Bw
ICovOyB9OworCQlFMUVFOEI4QzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUU2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuY3BwICovOyB9
OworCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU3MjQxMkIxNzAw
MEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICovOyB9OworCQlFMUVFOEI4RTI0MTMxOTUwMDBF
Nzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNw
cCAqLzsgfTsKKwkJRTFFRThCOEYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUU5MjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi87IH07
CisJCUUxRUU4QjkwMjQxMzE5NTAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUVBMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLzsgfTsKKwkJRTFFRThCOTEyNDEzMTk1MDAw
RTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRUIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3Bv
cnQuY3BwICovOyB9OworCQlFMUVFOEI5MjI0MTMxOTUwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFF
RTI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggKi87IH07CisJCUUxRUU4QjkzMjQx
MzE5NTAwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUYwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkZy
YW1lLmNwcCAqLzsgfTsKKwkJRTFFRThCOTQyNDEzMTk1MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldl
YlhSLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUYxMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgKi87IH07CisJCUUx
RUU4Qjk1MjQxMzE5NTAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjMyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4Qjk2
MjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJWaWV3cG9ydC5oICovOyB9OworCQlFMUVFOEI5NzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFeWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUY1
MjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5ZS5oICovOyB9OworCQlFMUVFOEI5ODI0MTMxOTUwMDBF
Nzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAg
Ki87IH07CisJCUUxRUU4Qjk5MjQxMzE5NTAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFGOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oICov
OyB9OworCQlFMUVFOEI5QTI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRkUyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaCAqLzsgfTsKKwkJRTFFRThCOUIyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThCMDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5o
ICovOyB9OworCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5k
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThCMDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCAqLzsgfTsK
KwkJRTFFRThCOUQyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA2MjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi87IH07CisJCUUxRUU4QjlFMjQx
MzE5NTAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJX
ZWJHTExheWVySW5pdC5oICovOyB9OworCQlFMUVFOEI5RjI0MTMxOTUwMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEIwOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50Lmgg
Ki87IH07CisJCUUxRUU4QkEwMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMEIy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5jcHAgKi87IH07CisJCUUxRUU4QkEx
MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUklucHV0U291cmNlLmNwcCAqLzsgfTsKKwkJRTFFRThCQTIyNDEzMTk2MzAwRTc5NEQ2
IC8qIFdlYlhSU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEIwRjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uLmNwcCAq
LzsgfTsKKwkJRTFFRThCQTMyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTEyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5oICovOyB9OworCQlFMUVFOEJBNDI0MTMxOTYzMDBF
Nzk0RDYgLyogV2ViWFJWaWV3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICov
OyB9OworCQlFMUVFOEJBNTI0MTMxOTYzMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMTMyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaCAqLzsgfTsKKwkJRTFFRThCQTYyNDEzMTk2MzAw
RTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJl
ZmVyZW5jZVNwYWNlLmggKi87IH07CisJCUUxRUU4QkE3MjQxMzE5NjMwMEU3OTRENiAvKiBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QjE1MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50LmNwcCAqLzsgfTsKKwkJRTFFRThCQTgyNDEzMTk2MzAwRTc5NEQ2IC8qIFdl
YlhSSW5wdXRTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRUU4QjE3MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggKi87
IH07CiAJCUUxRjFFODMwMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGMUU4MkUwQzNDMkJC
OTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggKi87IH07CiAJCUUxRjgwQjg4MTgzMTcyNTIw
MDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4NjE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFp
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUx
RjgwQjhFMTgzMTcyQjUwMDc4ODVDMyAvKiBKU0NyeXB0b0tleVBhaXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjgwQjhDMTgzMTcyQjUwMDc4ODVD
MyAvKiBKU0NyeXB0b0tleVBhaXIuaCAqLzsgfTsKQEAgLTE1MTU0LDYgKzE1MjA4LDkxIEBACiAJ
CUUxRUMyOTlEMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFBhdGhOb2RlU2V0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTFFQzI5OUUwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aE5vZGVTZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFDNzI0MTJCMTZGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSVmlld2VyUG9zZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDODI0MTJCMTZGMDBFNzk0RDYgLyogWFJTZXNzaW9u
TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTZXNzaW9uTW9kZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUM5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJl
ZmVyZW5jZVNwYWNlVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlJl
ZmVyZW5jZVNwYWNlVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFD
QTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yV2ViWFIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBQ0IyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSUmVuZGVyU3RhdGVJbml0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNDMjQxMkIxNzAwMEU3OTRENiAvKiBYUklu
cHV0U291cmNlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
WFJJbnB1dFNvdXJjZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThBQ0QyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlJlbmRlclN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlhSUmVuZGVyU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFDRjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJYUlNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUQwMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFEMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlJlZmVyZW5jZVNwYWNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlJlbmRlclN0YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ2MjQxMkIxNzAwMEU3OTRENiAv
KiBYUlZpc2liaWxpdHlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
UlZpc2liaWxpdHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFE
NzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gWFJTZXNzaW9uSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJXZWJHTExheWVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlzaWJp
bGl0eVN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlZpc2liaWxpdHlTdGF0ZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURBMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBY
UkVudmlyb25tZW50QmxlbmRNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBREIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBREMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
U2Vzc2lvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhS
U2Vzc2lvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBREQy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUklucHV0U291cmNlQXJyYXkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBREUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTZXNzaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBREYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlldy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlBvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBRTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSU3lzdGVtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUzMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkZyYW1l
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSRnJhbWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFFNTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSUG9zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUU2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJj
ZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRTcyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhSU2Vzc2lvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUU4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlN5c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUU5MjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENh
bGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSRnJhbWVSZXF1ZXN0
Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUEyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBYUlRhcmdldFJheU1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRUIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJWaWV3cG9ydC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVDMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0
YXRlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZW5kZXJTdGF0ZUluaXQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFRDI0MTJCMTcwMDBFNzk0RDYg
LyogWFJWaWV3ZXJQb3NlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlZpZXdlclBvc2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFRTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJIYW5kZWRuZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhS
SGFuZGVkbmVzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFRjI0MTJC
MTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
WFJJbnB1dFNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUYw
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlhSRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yV2ViWFIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJS
ZW5kZXJTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZW5kZXJTdGF0ZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUYzMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJWaWV3cG9ydC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJFeWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3Bh
Y2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThB
RjgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJTcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUY5MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkEyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBYUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QUZCMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
V2ViR0xMYXllci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJXZWJHTExheWVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkQyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSU2Vzc2lvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNlc3Npb25FdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZFMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlNlc3Npb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhSU2Vzc2lvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRkYy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gWFJUYXJnZXRSYXlNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThCMDAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zv
cm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmlnaWRUcmFuc2Zvcm0uaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJT
eXN0ZW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU3lzdGVtLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRXllLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkV5ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJXZWJHTExheWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25t
ZW50QmxlbmRNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDYy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJSaWdpZFRyYW5zZm9ybS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEIwNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkhhbmRlZG5lc3MuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVy
SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUldlYkdMTGF5ZXJJbml0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjA5MjQxMkIxNzAwMEU3OTRE
NiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFJJbnB1dFNvdXJjZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QjBBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdwb3J0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBYUlZpZXdwb3J0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlZpZXdlclBvc2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJGcmFtZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSSW5wdXRTb3Vy
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwRTI0MTJCMTcwMDBF
Nzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmln
YXRvcldlYlhSLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEYyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJYUlNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEIxMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJXZWJHTExheWVySW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJTZXNzaW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJWaWV3
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTMyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFJTZXNzaW9uSW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxNDI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJYUlJlZmVyZW5jZVNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QjE1MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSSW5w
dXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MUVFOEIxNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJQb3NlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBYUlBvc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxNzI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJYUklucHV0U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjE4MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlQXJyYXkuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VBcnJheS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjZDMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9y
bVhSLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtWFIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEI2RTI0MTJCMkE3MDBFNzk0
RDYgLyogUGxhdGZvcm1YUi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQbGF0Zm9ybVhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCNkYy
NDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1YUi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUYx
RTgyRDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNMVEV4dGVuc2lvbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVEV4dGVuc2lvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGODBCODQxODMxNzI0NzAwNzg4NUMzIC8q
IENyeXB0b0tleVBhaXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENyeXB0b0tleVBhaXIuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjIzOTQsNiArMjI1MzMsNyBAQAogCQkJCTk5NkU1OURBMURGMDBE
NDUwMDY2MTJCOSAvKiB3ZWJkcml2ZXIgKi8sCiAJCQkJRDAwRjU5M0UyMTZFQ0M0MzAwMEQ3MURC
IC8qIHdlYmdwdSAqLywKIAkJCQk5N0FBQkNGNzE0RkEwOUI1MDA3NDU3QUUgLyogd2Vic29ja2V0
cyAqLywKKwkJCQlFMUVFOEFDNjI0MTJCMTZGMDBFNzk0RDYgLyogd2VieHIgKi8sCiAJCQkpOwog
CQkJcGF0aCA9IE1vZHVsZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjU5NDQs
NiArMjYwODQsNyBAQAogCQkJCTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICov
LAogCQkJCTFBMkU2RTU2MENDNTUxRTAwMDRBMjA2MiAvKiBzcWwgKi8sCiAJCQkJQjJDM0Q5RUMw
RDAwNkMxRDAwRUY2RjI2IC8qIHRleHQgKi8sCisJCQkJRTFFRThCNkIyNDEyQjJBNzAwRTc5NEQ2
IC8qIHhyICovLAogCQkJCURGREI5MTJDRjhFODhBNkRBMUFEMjY0RiAvKiBBYm9ydGFibGVUYXNr
UXVldWUuaCAqLywKIAkJCQk0OUFFMkQ5NDEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25W
YWx1ZS5jcHAgKi8sCiAJCQkJNDlBRTJEOTUxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9u
VmFsdWUuaCAqLywKQEAgLTI3MDM2LDYgKzI3MTc3LDExMyBAQAogCQkJbmFtZSA9IFRocmVhZHM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMUVFOEFDNjI0MTJCMTZGMDBF
Nzk0RDYgLyogd2VieHIgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCUUxRUU4QUYxMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgKi8s
CisJCQkJRTFFRThBQ0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi8sCisJ
CQkJRTFFRThCMEUyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAqLywKKwkJ
CQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Uu
Y3BwICovLAorCQkJCUUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZS5oICovLAorCQkJCUUxRUU4QUYwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkZy
YW1lLmNwcCAqLywKKwkJCQlFMUVFOEFFMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5o
ICovLAorCQkJCUUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmNw
cCAqLywKKwkJCQlFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5o
ICovLAorCQkJCUUxRUU4QUU2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJy
YXkuY3BwICovLAorCQkJCUUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291
cmNlQXJyYXkuaCAqLywKKwkJCQlFMUVFOEFFNTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3Nl
LmNwcCAqLywKKwkJCQlFMUVFOEFFMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggKi8s
CisJCQkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3Bw
ICovLAorCQkJCUUxRUU4QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNl
LmggKi8sCisJCQkJRTFFRThBQ0UyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUu
Y3BwICovLAorCQkJCUUxRUU4QUQ1MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRl
LmggKi8sCisJCQkJRTFFRThBQ0QyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zv
cm0uY3BwICovLAorCQkJCUUxRUU4QjA2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJh
bnNmb3JtLmggKi8sCisJCQkJRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lv
bi5jcHAgKi8sCisJCQkJRTFFRThCMTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5o
ICovLAorCQkJCUUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLywK
KwkJCQlFMUVFOEFDRjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oICovLAorCQkJCUUx
RUU4QUU4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5jcHAgKi8sCisJCQkJRTFFRThB
RTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmggKi8sCisJCQkJRTFFRThCMTIyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgKi8sCisJCQkJRTFFRThBRTAyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSVmlldy5oICovLAorCQkJCUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlZpZXdlclBvc2UuY3BwICovLAorCQkJCUUxRUU4QUM3MjQxMkIxNkYwMEU3OTRENiAv
KiBXZWJYUlZpZXdlclBvc2UuaCAqLywKKwkJCQlFMUVFOEFFQjI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJWaWV3cG9ydC5jcHAgKi8sCisJCQkJRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSVmlld3BvcnQuaCAqLywKKwkJCQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJX
ZWJHTExheWVyLmNwcCAqLywKKwkJCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovLAorCQkJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAv
KiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi8sCisJCQkJRTFFRThBREEyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsICovLAorCQkJCUUxRUU4QUY1MjQxMkIx
NzAwMEU3OTRENiAvKiBYUkV5ZS5oICovLAorCQkJCUUxRUU4QjAzMjQxMkIxNzAwMEU3OTRENiAv
KiBYUkV5ZS5pZGwgKi8sCisJCQkJRTFFRThCMEMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWUu
aWRsICovLAorCQkJCUUxRUU4QUU5MjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENh
bGxiYWNrLmggKi8sCisJCQkJRTFFRThBRkIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaWRsICovLAorCQkJCUUxRUU4QUVFMjQxMkIxNzAwMEU3OTRENiAvKiBYUkhh
bmRlZG5lc3MuaCAqLywKKwkJCQlFMUVFOEIwNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJIYW5kZWRu
ZXNzLmlkbCAqLywKKwkJCQlFMUVFOEFFRjI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJj
ZS5pZGwgKi8sCisJCQkJRTFFRThCMTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VB
cnJheS5pZGwgKi8sCisJCQkJRTFFRThBQ0MyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2VFdmVudC5jcHAgKi8sCisJCQkJRTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VFdmVudC5oICovLAorCQkJCUUxRUU4QjAwMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0
U291cmNlRXZlbnQuaWRsICovLAorCQkJCUUxRUU4QjE1MjQxMkIxNzAwMEU3OTRENiAvKiBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCAqLywKKwkJCQlFMUVFOEFGOTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oICovLAorCQkJCUUxRUU4QUU0MjQxMkIx
NzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVF
OEIxNjI0MTJCMTcwMDBFNzk0RDYgLyogWFJQb3NlLmlkbCAqLywKKwkJCQlFMUVFOEFGNjI0MTJC
MTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZS5pZGwgKi8sCisJCQkJRTFFRThBRjMyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgKi8sCisJCQkJRTFFRThB
REIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5oICovLAorCQkJCUUx
RUU4QUQwMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsICovLAor
CQkJCUUxRUU4QUM5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oICov
LAorCQkJCUUxRUU4QUZBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5p
ZGwgKi8sCisJCQkJRTFFRThBRjIyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaWRs
ICovLAorCQkJCUUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5o
ICovLAorCQkJCUUxRUU4QUVDMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5p
ZGwgKi8sCisJCQkJRTFFRThCMDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmlnaWRUcmFuc2Zvcm0u
aWRsICovLAorCQkJCUUxRUU4QURFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb24uaWRsICov
LAorCQkJCUUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgKi8s
CisJCQkJRTFFRThBRTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggKi8sCisJ
CQkJRTFFRThBRkQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmlkbCAqLywKKwkJ
CQlFMUVFOEIxMzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5oICovLAorCQkJCUUx
RUU4QUQ3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAqLywKKwkJCQlFMUVF
OEFGRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovLAorCQkJCUUxRUU4QUM4
MjQxMkIxNkYwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmlkbCAqLywKKwkJCQlFMUVFOEFENDI0
MTJCMTcwMDBFNzk0RDYgLyogWFJTcGFjZS5pZGwgKi8sCisJCQkJRTFFRThCMDIyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSU3lzdGVtLmlkbCAqLywKKwkJCQlFMUVFOEFFQTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJUYXJnZXRSYXlNb2RlLmggKi8sCisJCQkJRTFFRThBRkYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSVGFyZ2V0UmF5TW9kZS5pZGwgKi8sCisJCQkJRTFFRThBREYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSVmlldy5pZGwgKi8sCisJCQkJRTFFRThBRUQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld2Vy
UG9zZS5pZGwgKi8sCisJCQkJRTFFRThCMEEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld3BvcnQu
aWRsICovLAorCQkJCUUxRUU4QUQ2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0
ZS5oICovLAorCQkJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0
ZS5pZGwgKi8sCisJCQkJRTFFRThCMDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllci5o
ICovLAorCQkJCUUxRUU4QUZDMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaWRsICov
LAorCQkJCUUxRUU4QjA4MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0LmggKi8s
CisJCQkJRTFFRThCMTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaWRsICov
LAorCQkJKTsKKwkJCXBhdGggPSB3ZWJ4cjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CisJCUUxRUU4QjZCMjQxMkIyQTcwMEU3OTRENiAvKiB4ciAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFFRThCNkQyNDEyQjJBNzAwRTc5NEQ2IC8q
IG9wZW54ciAqLywKKwkJCQlFMUVFOEI2QzI0MTJCMkE3MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5j
cHAgKi8sCisJCQkJRTFFRThCNkYyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCAqLywK
KwkJCSk7CisJCQlwYXRoID0geHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owor
CQlFMUVFOEI2RDI0MTJCMkE3MDBFNzk0RDYgLyogb3BlbnhyICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUVFOEI2RTI0MTJCMkE3MDBFNzk0RDYgLyog
UGxhdGZvcm1YUi5jcHAgKi8sCisJCQkpOworCQkJcGF0aCA9IG9wZW54cjsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUUxRjA0MjQzMDk4MzkzODkwMDY2OTRFQSAvKiB4bWwg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMzExNzgsNyAr
MzE0MjYsNiBAQAogCQkJCUIyRkEzRDU3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGlv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDU5MEFCNzVBNkYwMDBFNUFDNCAv
KiBKU1NWR0NpcmNsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDVCMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR0NsaXBQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTQ1QTZDNzcyNDE3QkE1OTAwNkU0Q0Q1IC8qIFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1RjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJG
QTNENjEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ3Vyc29yRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJGQTNENjMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRGVmc0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMzE3MTQsNiArMzE5NjEsNyBAQAogCQkJCTZCNTA3QTI0MjM0QkYz
NDEwMEJFN0M2MiAvKiBOYXZpZ2F0b3JJc0xvZ2dlZEluLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
RUE3MjVENjFBQ0FCRDU3MDBFQUQxN0IgLyogTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJp
dmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3ODI0MTMxOTFGMDBFNzk0RDYgLyogTmF2
aWdhdG9yV2ViWFIuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIw
NCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3
NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzE5MjgsNiArMzIxNzYsNyBAQAog
CQkJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzZCMDlBQzRENEYwMEE2QUFCNCAvKiBQbGF0Zm9y
bVdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjcyMjQxMkIyQTgwMEU3OTRE
NiAvKiBQbGF0Zm9ybVhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTJCRTQ4MDFGRTg2NEE3MDAy
MDMxQ0MgLyogUGxheWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQTI5QTA5
MUNCRDk5RjQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQTI5QTMyMUNDMDFBOTUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTk4Nyw2ICszMjIzNiw3IEBACiAJCQkJ
MzcyQURBMzgxOTdGNDdCOTAwRkM1MDFFIC8qIFByb3RlY3Rpb25TcGFjZUNvY29hLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUEwNTI1NjEwNTg4NzQwMDBDQzlFOTUgLyogUHJvdGVjdGlvblNwYWNl
SGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGOEUxMUExMjU2NTkyNjAwMjMwRkY3IC8qIFBy
b3h5U2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDVBNkM3NzI0MTdCQTU5MDA2RTRDRDUg
LyogUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZG
OTQ1RUNDMTYxRjdGMzYwMDk3MUJDOCAvKiBQc2V1ZG9FbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1N0Q4NDYyRTFGRUFGNjk5MDBDQTM2ODIgLyogUHVibGljS2V5Q3JlZGVudGlhbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRTkyMDA5NzQ4RDAwMzU1OTY1IC8qIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxNzIsNiArMzM0
MjIsMjAgQEAKIAkJCQk1RDIxQTgwMzEzRUNFNURGMDBCQjcwNjQgLyogV2ViVlRUUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMTBCNjk4MDE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9r
ZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUIxMEI2OTgyMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJW
VFRUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRE
NiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCOEEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI4NjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4ODI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJQb3NlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEJBNjI0MTMxOTYzMDBFNzk0RDYgLyog
V2ViWFJSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODEyNDEzMTkx
RjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4
QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUVFOEJBMzI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUVFOEI3RDI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODkyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVt
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJW
aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3NjI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJWaWV3ZXJQb3NlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5NjI0MTMxOTUwMDBFNzk0
RDYgLyogV2ViWFJWaWV3cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNERTAxMjUxRjEy
RDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjUx
MEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUJC
QzNEODFCNjU5ODgzMDBGNTI1M0QgLyogV2hlZWxFdmVudERlbHRhRmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMzMjY4LDYgKzMzNTMyLDIyIEBACiAJCQkJMUFCN0ZDODQwQThCOTJFQzAwRDlE
MzdCIC8qIFhQYXRoVXRpbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCN0ZDODYwQThCOTJFQzAw
RDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjdGQzg4MEE4Qjky
RUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTcyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEI4RjI0MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVl
c3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTIyNDEzMTk1MDAwRTc5NEQ2
IC8qIFhSSGFuZGVkbmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOUYyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
OTkyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUxRUU4Qjg0MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNl
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc3MjQxMzE5MUYwMEU3OTRENiAvKiBY
UlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCNzkyNDEzMTkx
RjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVF
OEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUxRUU4QkE1MjQxMzE5NjMwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI5QTI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTAyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5
TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhS
VmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QjI0MTMxOTUwMDBF
Nzk0RDYgLyogWFJXZWJHTExheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5RTI0MTMx
OTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUy
MTdFMDMwQTVFQ0Q0NzAwREI4RDAwIC8qIFhTTEltcG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjE5OUVDMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBp
biBIZWFkZXJzICovLApAQCAtMzM4MDEsNiArMzQwODEsNyBAQAogCQkJCUNERjJCMDE2MTgyMDU0
MDcwMEYyQjQyNCAvKiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDlCRjc0MjFEQkZEQzI3MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQTRCQjEwMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFk
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRENiAvKiBOYXZp
Z2F0b3JXZWJYUi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQxMzBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqY19jbGFzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDE2MEQ3RTJCODIw
MDdDMzk4MyAvKiBvYmpjX2luc3RhbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTgw
RDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfcnVudGltZS5tbSBpbiBTb3VyY2VzICovLApAQCAtMzM4
MDgsNiArMzQwODksOCBAQAogCQkJCUUxNjk4MjYwMTEzNDYzNkEwMDg5NDExNSAvKiBPYmpDUnVu
dGltZU9iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFQTI4NDY2MjE0MUU4NDkwMEU0MDdF
OCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUFBMTJE
RjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTFFRThCNzEyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCNzAyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRm
b3JtWFIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMzAxQ0JGNzRENDAwOTAxQ0NGIC8q
IFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RB
MjlBMTYxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLApAQCAtMzQ0NjgsMTAgKzM0
NzUxLDI5IEBACiAJCQkJRjEyMTcxRjUxNkE4Q0VEMjAwMDA1M0NBIC8qIFdlYlZUVEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQyMUE4MDIxM0VDRTVERjAwQkI3MDY0IC8qIFdlYlZU
VFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMTBCNjk4MTE0MEMxNzQwMDBCQzFDMjYg
LyogV2ViVlRUVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjgwMjQxMzE5
MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMUVFOEI5MzI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4QzI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJJbnB1dFNvdXJjZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjhCMjQxMzE5
MUYwMEU3OTRENiAvKiBXZWJYUlBvc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0Yy
NDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRTFFRThCN0MyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0IyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRU
cmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCQTIyNDEzMTk2MzAwRTc5NEQ2
IC8qIFdlYlhSU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5ODI0MTMxOTUw
MDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4RTI0
MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxRUU4QjkxMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjgzMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUldl
YkdMTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzIxODdGNjVDNzAwREE2M0E2
IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBE
NTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNG
MjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1QTM2RDkx
MTA0NTcyNzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYg
LyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjg1
MjQxMzE5MUYwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IDMwNWJjZjUxNDRlMDJlMzYxZTVkMzJmMDQ3
NTQxNWU1OGI4NjVmZjMuLjk0ZjMxNjVlMWYyN2JhMDJjYTlkNmIzMjI0MmNkMzEzNGViMTMyYjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtNjIsNiArNjIsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogc3RydWN0IElETFR5cGUgewogICAgIHVzaW5nIEltcGxlbWVudGF0aW9u
VHlwZSA9IFQ7CiAgICAgdXNpbmcgU3RvcmFnZVR5cGUgPSBUOworICAgIHVzaW5nIFNlcXVlbmNl
U3RvcmFnZVR5cGUgPSBUOwogCiAgICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IFQ7CiAgICAgdXNp
bmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gT3B0aW9uYWw8SW1wbGVtZW50YXRpb25UeXBlPjsK
QEAgLTgyLDYgKzgzLDcgQEAgc3RydWN0IElETFVuc3VwcG9ydGVkVHlwZSA6IElETFR5cGU8dm9p
ZD4geyB9Owogc3RydWN0IElETE51bGwgOiBJRExUeXBlPHN0ZDo6bnVsbHB0cl90PiB7IH07CiAK
IHN0cnVjdCBJRExBbnkgOiBJRExUeXBlPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+IHsKKyAg
ICB1c2luZyBTZXF1ZW5jZVN0b3JhZ2VUeXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIFBh
cmFtZXRlclR5cGUgPSBKU0M6OkpTVmFsdWU7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJU
eXBlID0gSlNDOjpKU1ZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCmluZGV4IGM0OWRkOTM4ZmNlMjcxNjVmNzQ3ZTU4ZmUw
OGE1NTNkYmJmZGY1YzIuLjg2ZjdmMjc2ZmMwOGFlMDdjMDEwMDAyMjJkMzU5ZjBlZmViNWFlYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVl
bmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVl
bmNlcy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBEZXRhaWwgewogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBJRExUeXBlPgogc3RydWN0IEdlbmVyaWNTZXF1ZW5jZUNvbnZlcnRlciB7Ci0gICAg
dXNpbmcgUmV0dXJuVHlwZSA9IFZlY3Rvcjx0eXBlbmFtZSBJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGU+OworICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6
U2VxdWVuY2VTdG9yYWdlVHlwZT47CiAKICAgICBzdGF0aWMgUmV0dXJuVHlwZSBjb252ZXJ0KEpT
Qzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QqIG9i
amVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKaW5kZXggNDRkNTBiMjA3YzUzOGExOTc5MmI0ZjMyMjZhZmU2NTI4Nzc4NzIw
OS4uMTg4MmE5ZWZmZTI0MGM0NTliZDVkMzQyNjE3YTBjZDkzM2MyZDg4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM1LDYg
KzIzNSwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oV29ya2xldEdsb2JhbFNj
b3BlKSBcCiAgICAgbWFjcm8oV3JpdGFibGVTdHJlYW0pIFwKICAgICBtYWNybyhYTUxIdHRwUmVx
dWVzdCkgXAorICAgIG1hY3JvKFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKSBcCisgICAgbWFjcm8o
WFJGcmFtZSkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2UpIFwKKyAgICBtYWNybyhYUklucHV0
U291cmNlQXJyYXkpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlRXZlbnQpIFwKKyAgICBtYWNy
byhYUklucHV0U291cmNlc0NoYW5nZUV2ZW50KSBcCisgICAgbWFjcm8oWFJQb3NlKSBcCisgICAg
bWFjcm8oWFJSZWZlcmVuY2VTcGFjZSkgXAorICAgIG1hY3JvKFhSUmVmZXJlbmNlU3BhY2VFdmVu
dCkgXAorICAgIG1hY3JvKFhSUmVuZGVyU3RhdGUpIFwKKyAgICBtYWNybyhYUlJpZ2lkVHJhbnNm
b3JtKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uRXZlbnQp
IFwKKyAgICBtYWNybyhYUlNwYWNlKSBcCisgICAgbWFjcm8oWFJTeXN0ZW0pIFwKKyAgICBtYWNy
byhYUlZpZXcpIFwKKyAgICBtYWNybyhYUlZpZXdlclBvc2UpIFwKKyAgICBtYWNybyhYUlZpZXdw
b3J0KSBcCisgICAgbWFjcm8oWFJXZWJHTExheWVyKSBcCiAgICAgbWFjcm8oYXBwZW5kRnJvbUpT
KSBcCiAgICAgbWFjcm8oYXNzb2NpYXRlZFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIpIFwK
ICAgICBtYWNybyhhdXRvQWxsb2NhdGVDaHVua1NpemUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CmluZGV4IGQ0OTYwYjljZjc1MWY0MTE0MjJiNjcwODQxYTA1YjhiZDJjNzFjMjguLjVjZWVlNmY2
ODE2ZGVlOWQ3OTljYjE1MGUxNzVhYzVkN2VkNGFjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aApAQCAtMTQ4LDYgKzE0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhpY2Vn
YXRoZXJpbmdzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKGluYWN0aXZlKSBcCiAgICAgbWFjcm8o
aW5wdXQpIFwKKyAgICBtYWNybyhpbnB1dHNvdXJjZXNjaGFuZ2UpIFwKICAgICBtYWNybyhpbnN0
YWxsKSBcCiAgICAgbWFjcm8oaW52YWxpZCkgXAogICAgIG1hY3JvKGtleWRvd24pIFwKQEAgLTIz
MSw2ICsyMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oc2Vla2VkKSBcCiAg
ICAgbWFjcm8oc2Vla2luZykgXAogICAgIG1hY3JvKHNlbGVjdCkgXAorICAgIG1hY3JvKHNlbGVj
dGVuZCkgXAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkgXAogICAgIG1hY3JvKHNlbGVjdHN0
YXJ0KSBcCiAgICAgbWFjcm8oc2hpcHBpbmdhZGRyZXNzY2hhbmdlKSBcCkBAIC0yODUsMTMgKzI4
Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh2ZXJzaW9uY2hhbmdlKSBcCiAg
ICAgbWFjcm8odmlzaWJpbGl0eWNoYW5nZSkgXAogICAgIG1hY3JvKHZvbHVtZWNoYW5nZSkgXAot
ICAgIG1hY3JvKHZyZGlzcGxheWFjdGl2YXRlKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5Ymx1cikg
XAotICAgIG1hY3JvKHZyZGlzcGxheWNvbm5lY3QpIFwKLSAgICBtYWNybyh2cmRpc3BsYXlkZWFj
dGl2YXRlKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5ZGlzY29ubmVjdCkgXAotICAgIG1hY3JvKHZy
ZGlzcGxheWZvY3VzKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5cHJlc2VudGNoYW5nZSkgXAogICAg
IG1hY3JvKHdhaXRpbmcpIFwKICAgICBtYWNybyh3YWl0aW5nZm9ya2V5KSBcCiAgICAgbWFjcm8o
d2ViZ2xjb250ZXh0Y2hhbmdlZCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBhNTkw
ODYxMDY4ZjVlMzc2NjcxMzJmZDFhYTQyZTY3OTE4MTdkOGEwLi5hZWIyMzRhYTNlNDY3YzNhZWM5
YjQ4ZTliMDA4Y2UxYTBlNjM2MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtODUs
MyArODUsNyBAQCBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVE
SUEKIFBvaW50ZXJFdmVudAogR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9V0VC
R1BVCiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCBjb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJCitYUklucHV0U291cmNlRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKK1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKK1hSUmVmZXJlbmNlU3BhY2VFdmVu
dCBjb25kaXRpb25hbD1XRUJYUgorWFJTZXNzaW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDgxZTdjYzlmMGI3NjUw
NTYyYWFiZmVmZTA1YTVhM2FkMWJiYmI4ZmYuLjgzN2ViNWRjZDBlOTk1Y2EwMjI0ZWNmZWJlNzBi
Y2UxZWI4MzNiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpA
QCAtNTgsNCArNTgsNiBAQCBXb3JrZXIKIFdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1D
U1NfUEFJTlRJTkdfQVBJCiBYTUxIdHRwUmVxdWVzdAogWE1MSHR0cFJlcXVlc3RVcGxvYWQKLQor
V2ViWFJTZXNzaW9uIGNvbmRpdGlvbmFsPVdFQlhSCitXZWJYUlNwYWNlIGNvbmRpdGlvbmFsPVdF
QlhSCitXZWJYUlN5c3RlbSBjb25kaXRpb25hbD1XRUJYUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCA1ZDFhZmRiZWQ1NWUzNmZlYjEwZjRlMzUw
MzcxMDI2OWYzN2VlOWFlLi5kZTdlMzhkMjVlYjIzM2M4ODVhODE0ZmRjYzIyYzZiYzM4YzQ1MjRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAt
MTM4LDYgKzEzOCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNF
bmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCA9IGlz
RW5hYmxlZDsgfQogICAgIGJvb2wgaW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZDsgfQogCisjaWYgRU5BQkxFKFdFQlhS
KQorICAgIHZvaWQgc2V0V2ViWFJFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fd2ViWFJFbmFi
bGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB3ZWJYUkVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3dlYlhSRW5hYmxlZDsgfQorI2VuZGlmCisKICAgICB2b2lkIHNldEFjY2Vzc2liaWxpdHlP
YmplY3RNb2RlbEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0
TW9kZWxFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5T2JqZWN0
TW9kZWxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxF
bmFibGVkOyB9CiAKQEAgLTQ0Niw2ICs0NTEsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1dl
YlNvY2tldEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2ZldGNoQVBJS2VlcEFsaXZlRW5h
YmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgeyBm
YWxzZSB9OworI2lmIEVOQUJMRShXRUJYUikKKyAgICBib29sIG1fd2ViWFJFbmFibGVkIHsgZmFs
c2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJpYVJlZmxlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS94ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzI2OGVlNjc3YTM3OWE2YmY1NTE3MGI5
OTA0ZjMzYmJlNzcxYWY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0veHIvUGxhdGZvcm1YUi5jcHAKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1YUi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1Y
Ui5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMwODgzYmQ1MmRiZjc1ODFhODU4YzkyMWZkMjVhYjAwYjk4NmI3YjkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFBsYXRmb3JtWFIgeworCitlbnVtIGNsYXNzIFNlc3Npb25Nb2RlIHsKKyAgICBJbmxpbmUsCisg
ICAgSW1tZXJzaXZlVnIsCisgICAgSW1tZXJzaXZlQXIsCit9OworCisjaWYgRU5BQkxFKFdFQlhS
KQorCitjbGFzcyBEZXZpY2UgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RGV2aWNlPiB7CitwdWJs
aWM6Cit9OworCitjbGFzcyBJbnN0YW5jZSB7CitwdWJsaWM6CisgICAgc3RhdGljIEluc3RhbmNl
JiBzaW5nbGV0b24oKTsKKworcHJpdmF0ZToKKyAgICBJbnN0YW5jZSgpOworICAgIH5JbnN0YW5j
ZSgpOworCisgICAgc3RydWN0IEltcGw7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltcGw+IG1faW1w
bDsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCisKK30gLy8gbmFtZXNwYWNlIFBsYXRm
b3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0
Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhS
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYTRmNGMyYzE4ZjNhM2RlMTMxYjg3NDkzMTFhNDFhZWZlYmJlZDVi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1Bs
YXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgi
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpZiBVU0VfT1BFTlhSCisjaW5jbHVkZSA8b3Blbnhy
L29wZW54ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2VuZGlmIC8vIFVTRV9PUEVOWFIK
KyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIg
eworCisjaWYgVVNFX09QRU5YUgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBYclN0cnVjdHVyZVR5
cGUgU3RydWN0dXJlVHlwZT4KK1QgY3JlYXRlU3RydWN0dXJlKCkKK3sKKyAgICBUIG9iamVjdDsK
KyAgICBzdGQ6Om1lbXNldCgmb2JqZWN0LCAwLCBzaXplb2YoVCkpOworICAgIG9iamVjdC50eXBl
ID0gU3RydWN0dXJlVHlwZTsKKyAgICBvYmplY3QubmV4dCA9IG51bGxwdHI7CisgICAgcmV0dXJu
IG9iamVjdDsKK30KKworU3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYcklu
c3RhbmNlIGluc3RhbmNlKQoreworICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5H
X1NJWkVdOworICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2Us
IHZhbHVlLCBidWZmZXIpOworICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKKyAgICAgICAg
cmV0dXJuIFN0cmluZyhidWZmZXIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAi
LCBpbnQodmFsdWUpLCAiPiIpOworfQorCisjZGVmaW5lIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0
LCBjYWxsLCBpbnN0YW5jZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBpZiAoWFJfRkFJTEVEKHJlc3VsdCkpIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICBXVEZMb2dBbHdheXMoIiVzICVzOiAlc1xuIiwgX19mdW5jX18sIGNhbGws
IHJlc3VsdFRvU3RyaW5nKHJlc3VsdCwgaW5zdGFuY2UpLnV0ZjgoKS5kYXRhKCkpOyBcCisgICAg
ICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCisjZW5kaWYgLy8gVVNFX09QRU5YUgor
CitzdHJ1Y3QgSW5zdGFuY2U6OkltcGwgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIEltcGwoKTsKKyAgICB+SW1wbCgpOworCisjaWYgVVNFX09QRU5YUgorICAg
IFhySW5zdGFuY2UgbV9pbnN0YW5jZSB7IFhSX05VTExfSEFORExFIH07CisjZW5kaWYgLy8gVVNF
X09QRU5YUgorfTsKKworSW5zdGFuY2U6OkltcGw6OkltcGwoKQoreworI2lmIFVTRV9PUEVOWFIK
KyAgICBXVEZMb2dBbHdheXMoIk9wZW5YUjogaW5pdGlhbGl6aW5nXG4iKTsKKworICAgIFsmXSB7
CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAgICAgIFhy
UmVzdWx0IHJlc3VsdCA9IHhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKDAsICZwcm9wZXJ0
eUNvdW50T3V0cHV0LCBudWxscHRyKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQs
ICJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAg
ICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0cHV0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMo
InhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFhyQXBpTGF5ZXJQ
cm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRPdXRwdXQpOworICAgICAgICByZXN1
bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0LCBu
dWxscHRyLCBwcm9wZXJ0aWVzLmRhdGEoKSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVz
dWx0LCAieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisg
ICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTogJXp1
IHByb3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICB9KCk7CisKKyAgICBbJl0g
eworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50T3V0cHV0IHsgMCB9OworICAgICAgICBY
clJlc3VsdCByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhu
dWxscHRyLCAwLCAmcHJvcGVydHlDb3VudE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJFVFVS
Tl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRp
ZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1dCkg
eworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9u
UHJvcGVydGllcygpOiBubyBwcm9wZXJ0aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIFZlY3RvcjxYckV4dGVuc2lvblByb3BlcnRpZXM+IHByb3BlcnRp
ZXMocHJvcGVydHlDb3VudE91dHB1dCwKKyAgICAgICAgICAgIFtdIHsKKyAgICAgICAgICAgICAg
ICBYckV4dGVuc2lvblByb3BlcnRpZXMgb2JqZWN0OworICAgICAgICAgICAgICAgIHN0ZDo6bWVt
c2V0KCZvYmplY3QsIDAsIHNpemVvZihYckV4dGVuc2lvblByb3BlcnRpZXMpKTsKKyAgICAgICAg
ICAgICAgICBvYmplY3QudHlwZSA9IFhSX1RZUEVfRVhURU5TSU9OX1BST1BFUlRJRVM7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgIH0oKSk7CisgICAgICAgIHVp
bnQzMl90IHByb3BlcnR5Q291bnRXcml0dGVuIHsgMCB9OworICAgICAgICByZXN1bHQgPSB4ckVu
dW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCBwcm9wZXJ0eUNvdW50
T3V0cHV0LCAmcHJvcGVydHlDb3VudFdyaXR0ZW4sIHByb3BlcnRpZXMuZGF0YSgpKTsKKyAgICAg
ICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9u
UHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVu
dW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpOiAlenUgZXh0ZW5zaW9uIHByb3Bl
cnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9wZXJ0
eSA6IHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiICBleHRlbnNpb24g
JyVzJywgdmVyc2lvbiAldVxuIiwKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eS5leHRlbnNpb25O
YW1lLCBwcm9wZXJ0eS5leHRlbnNpb25WZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0oKTsKKwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzX2FwcGxpY2F0aW9uTmFtZSA9ICJXZWJYUiAoV2ViS2l0
KSI7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfYXBwbGljYXRpb25WZXJzaW9uID0gMTsK
KworICAgIHsKKyAgICAgICAgYXV0byBjcmVhdGVJbmZvID0gY3JlYXRlU3RydWN0dXJlPFhySW5z
dGFuY2VDcmVhdGVJbmZvLCBYUl9UWVBFX0lOU1RBTkNFX0NSRUFURV9JTkZPPigpOworICAgICAg
ICBjcmVhdGVJbmZvLmNyZWF0ZUZsYWdzID0gMDsKKyAgICAgICAgc3RkOjptZW1jcHkoY3JlYXRl
SW5mby5hcHBsaWNhdGlvbkluZm8uYXBwbGljYXRpb25OYW1lLCBzX2FwcGxpY2F0aW9uTmFtZSwg
WFJfTUFYX0FQUExJQ0FUSU9OX05BTUVfU0laRSk7CisgICAgICAgIGNyZWF0ZUluZm8uYXBwbGlj
YXRpb25JbmZvLmFwaVZlcnNpb24gPSBYUl9DVVJSRU5UX0FQSV9WRVJTSU9OOworICAgICAgICBj
cmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5mby5hcHBsaWNhdGlvblZlcnNpb24gPSBzX2FwcGxpY2F0
aW9uVmVyc2lvbjsKKyAgICAgICAgY3JlYXRlSW5mby5lbmFibGVkQXBpTGF5ZXJDb3VudCA9IDA7
CisgICAgICAgIGNyZWF0ZUluZm8uZW5hYmxlZEV4dGVuc2lvbkNvdW50ID0gMDsKKworICAgICAg
ICBYckluc3RhbmNlIGluc3RhbmNlOworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckNyZWF0
ZUluc3RhbmNlKCZjcmVhdGVJbmZvLCAmaW5zdGFuY2UpOworICAgICAgICBSRVRVUk5fSUZfRkFJ
TEVEKHJlc3VsdCwgInhyQ3JlYXRlSW5zdGFuY2UoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAg
IG1faW5zdGFuY2UgPSBpbnN0YW5jZTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckNyZWF0ZUlu
c3RhbmNlKCk6IHVzaW5nIGluc3RhbmNlICVwXG4iLCBtX2luc3RhbmNlKTsKKyAgICB9CisjZW5k
aWYgLy8gVVNFX09QRU5YUgorfQorCitJbnN0YW5jZTo6SW1wbDo6fkltcGwoKQoreworfQorCitJ
bnN0YW5jZSYgSW5zdGFuY2U6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxJbnN0YW5jZT4gc19pbnN0YW5jZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
c19vbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShzX29uY2VGbGFnLAorICAgICAgICBbJl0g
eworICAgICAgICAgICAgc19pbnN0YW5jZS0+bV9pbXBsID0gbWFrZVVuaXF1ZTxJbXBsPigpOwor
ICAgICAgICB9KTsKKyAgICByZXR1cm4gc19pbnN0YW5jZS5nZXQoKTsKK30KKworSW5zdGFuY2U6
Okluc3RhbmNlKCkgPSBkZWZhdWx0OworSW5zdGFuY2U6On5JbnN0YW5jZSgpID0gZGVmYXVsdDsK
KworfSAvLyBuYW1lc3BhY2UgUGxhdGZvcm1YUgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uODFk
YWZlNTliNTEwODY2MzhjZTY2NGQyMDcxNDRkNDBiZTI4MTU4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0zOTQs
NiArMzk0LDggQEAgRU5BQkxFX1dFQkdQVV9hcHBsZXR2b3MgPSBFTkFCTEVfV0VCR1BVOwogRU5B
QkxFX1dFQkdQVV9tYWNvc3ggPSAkKEVOQUJMRV9XRUJHUFUkKFdLX01BQ09TXzEwMTQpKTsKIEVO
QUJMRV9XRUJHUFVfTUFDT1NfU0lOQ0VfMTAxNCA9IEVOQUJMRV9XRUJHUFU7CiAKK0VOQUJMRV9X
RUJYUiA9IEVOQUJMRV9XRUJYUjsKKwogRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUyA9IDsKIAog
RU5BQkxFX1dFQl9BVURJTyA9IEVOQUJMRV9XRUJfQVVESU87CkBAIC00MTQsNCArNDE2LDQgQEAg
RU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9Q
QVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VT
U0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FU
SU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9D
QVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NO
QVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdf
V09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkg
JChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VF
X1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNU
SU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMp
ICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9O
X09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VD
SF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09M
X01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVO
QUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBM
RVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VT
RV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9O
RVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19D
QUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gp
ICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFC
TEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIp
ICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURf
U1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5E
SU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05O
RUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikg
JChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAk
KEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NB
R0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9N
T1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVf
V0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RS
QU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNT
SUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExF
X1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVf
QVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVO
QUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVf
Q0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9E
RUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19D
T05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9D
U1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19T
RUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NT
X1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAk
KEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9E
QVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNf
TEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElD
VFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VF
SykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5T
UEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJM
RV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxF
X0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BS
RUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxF
X0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9N
QUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVS
RSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9O
KSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVS
X0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQo
RU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNV
TEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9S
RVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FO
VkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRf
UkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAk
KEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1P
VEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFC
TEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5E
Qk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxF
X1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQ
SSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElP
TikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5B
QkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19F
TEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMp
ICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRS
SVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIp
ICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElT
VElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dF
Ql9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbAppbmRleCAwYjNjZTk0M2FjMzA1MDhlMDRjZGIwYzcxMTAyMWZjNWY3NDdiNGY4Li40NzFi
MTkzZWY1MGM1ODFkMzM0MzBiODg2NzUxNWZiYzdlMmY3MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTE5ODIsNiArMTk4MiwxNSBAQCBJbmNyZW1lbnRh
bFBERkxvYWRpbmdFbmFibGVkOgogICBjb25kaXRpb246IEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQ
SVMpCiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAKK1dlYlhSRW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiV2ViWFIgRGV2aWNlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
QWRkcyBzdXBwb3J0IGZvciBhY2Nlc3NpbmcgdmlydHVhbCByZWFsaXR5IChWUikgYW5kIGF1Z21l
bnRlZCByZWFsaXR5IChBUikgZGV2aWNlcywgaW5jbHVkaW5nIHNlbnNvcnMgYW5kIGhlYWQtbW91
bnRlZCBkaXNwbGF5cywgb24gdGhlIFdlYiIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICB3
ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjb25kaXRpb246IEVOQUJM
RShXRUJYUikKKwogIyBEZXByZWNhdGVkCiAKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmNwcAppbmRleCA3ZGRhYzEzM2QxYWJmYzIwMjk5NTE3YmM2NTI0YjdhODMwNTgxMDU4Li5l
Y2YzZjAzODQyNzVjM2Q4ZjdkZmNjYWMwMzBiMGY3MTc5YWM1ZWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAgLTIy
NSw0ICsyMjUsMTggQEAgYm9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFdFQlhSKQorCitib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQor
eworI2lmIEhBVkUoSEFWRV9TWVNURU1fRkVBVFVSRV9GTEFHUykKKyAgICByZXR1cm4gb3NfZmVh
dHVyZV9lbmFibGVkKFdlYktpdCwgV2ViWFIpOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5oCmluZGV4IDcxN2NmMjQ2NWY0NDU2ZDJiNTBiZjcyNzBmZGExZmFmNmQ1NDA4YjUuLjI5NTVh
MDk0ZDY0MzZiZmM5NmJmZDY1ZGY0NmZjZWE5MTE2OTljMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zMzIsNCArMzMy
LDggQEAgYm9vbCBkZWZhdWx0SW5BcHBCcm93c2VyUHJpdmFjeSgpOwogYm9vbCBkZWZhdWx0SW5j
cmVtZW50YWxQREZFbmFibGVkKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKK2Jvb2wg
ZGVmYXVsdFdlYlhSRW5hYmxlZCgpOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNTYxNWI5OTFiMzNmYmRkMmIwNjU5MWU3OWI1OTA2Yzgz
NGYzZjJkMC4uZjNlNmFiNzU1YjcyYzczOTNkZmRhYTVkMjhmMTA5NTNjZmM1YmQxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCkBAIC0yODksNiArMjg5LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0
T2Zmc2NyZWVuQ2FudmFzRW5hYmxlZChlbmFibGVkKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdF
QlhSKQorICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRXZWJYUkVuYWJsZWQiKQorICAgICAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlhSRW5hYmxl
ZChlbmFibGVkKTsKKyNlbmRpZgorCiAgICAgLy8gTWFwIHRoZSBuYW1lcyB1c2VkIGluIExheW91
dFRlc3RzIHdpdGggdGhlIG5hbWVzIHVzZWQgaW4gV2ViQ29yZTo6U2V0dGluZ3MgYW5kIFdlYlBy
ZWZlcmVuY2VzU3RvcmUuCiAjZGVmaW5lIEZPUl9FQUNIX09WRVJSSURFX0JPT0xfUFJFRkVSRU5D
RShtYWNybykgXAogICAgIG1hY3JvKFdlYktpdEphdmFFbmFibGVkLCBKYXZhRW5hYmxlZCwgamF2
YUVuYWJsZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFk
ZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uODFkYWZlNTliNTEwODY2MzhjZTY2NGQyMDcx
NDRkNDBiZTI4MTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM5NCw2ICsz
OTQsOCBAQCBFTkFCTEVfV0VCR1BVX2FwcGxldHZvcyA9IEVOQUJMRV9XRUJHUFU7CiBFTkFCTEVf
V0VCR1BVX21hY29zeCA9ICQoRU5BQkxFX1dFQkdQVSQoV0tfTUFDT1NfMTAxNCkpOwogRU5BQkxF
X1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0ID0gRU5BQkxFX1dFQkdQVTsKIAorRU5BQkxFX1dFQlhS
ID0gRU5BQkxFX1dFQlhSOworCiBFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTID0gOwogCiBFTkFC
TEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKQEAgLTQxNCw0ICs0MTYsNCBAQCBFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05f
TUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJ
T05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJ
T04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkg
JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JE
KSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVO
QUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04p
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChF
TkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
UElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
KSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JT
RVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZ
X0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFO
QUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJF
U1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikg
JChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hF
X1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChF
TkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcp
ICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1Qp
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVO
QUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9O
VU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9I
QU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJM
RV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNF
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykg
JChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJf
Q1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNG
T1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxF
X0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNI
RV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05U
RU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklD
X0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19Q
QUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQ
RURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5B
QkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFM
SVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZF
TF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQ
VV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNU
T1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFM
SURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMp
ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFV
RVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9J
TlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9N
RURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9S
RVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hf
RVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0Vf
Q09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVT
T1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
VVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVf
VkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFU
SU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1F
TlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChF
TkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVS
X1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChF
TkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NS
WVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNt
YWtlIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuWFIuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJmZGYwNGMx
MWVkZDAzOTAwZmM0YzE0MmNlNzZhNjYxNDgzMGY2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8gZmlu
ZCBPcGVuWFIuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgT1BFTlhSX0ZP
VU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBPUEVOWFJfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBp
bmNsdWRlIGRpcmVjdG9yaWVzCisjICBPUEVOWFJfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1
c2UgV1BFLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitm
aW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfT1BFTlhSIFFVSUVU
IG9wZW54cikKKworZmluZF9wYXRoKE9QRU5YUl9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyBvcGVu
eHIvb3BlbnhyLmgKKyAgICBISU5UUyAke1BDX09QRU5YUl9JTkNMVURFRElSfSAke1BDX09QRU5Y
Ul9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShPUEVOWFJfTElCUkFSSUVTCisgICAg
TkFNRVMgb3BlbnhyX2xvYWRlcgorICAgIEhJTlRTICR7UENfT1BFTlhSX0xJQkRJUn0gJHtQQ19P
UEVOWFJfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2FkdmFuY2VkKE9QRU5YUl9JTkNMVURF
X0RJUlMgT1BFTlhSX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5k
YXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhPcGVuWFIgUkVRVUlS
RURfVkFSUyBPUEVOWFJfSU5DTFVERV9ESVJTIE9QRU5YUl9MSUJSQVJJRVMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlCmluZGV4IGRmZjY0OTFhNzM0MGYxYjM1Y2UwY2MyODEyN2QyYzc0MTY1NjU2NjAuLjEx
NTM1ZTU1MjJhYWJjMWE5YTg5NGM0MzhjYTI2MGZhYmYyOTY5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNt
YWtlCkBAIC00OSw2ICs0OSw5IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9YU0xUIFBVQkxJQyBPTikKICMgQ2hhbmdpbmcgdGhlc2Ugb3B0aW9ucyBpcyBjb21wbGV0
ZWx5IHVuc3VwcG9ydGVkLgogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0FTWU5DX1NDUk9MTElORyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0FVVE9DQVBJVEFMSVpFIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUyBQUklWQVRFIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19QQUlOVElOR19BUEkg
UFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19UWVBFRF9PTSBQUklWQVRFICR7RU5BQkxFX0VY
UEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfQ09OVEVOVF9FWFRFTlNJT05TIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCBQUklWQVRFICR7
RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfTUVESUFfU1RSRUFNIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFM
X0ZFQVRVUkVTfSkKQEAgLTYyLDkgKzY1LDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVE9VQ0hfRVZFTlRTIFBSSVZBVEUgT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wyIFBSSVZBVEUgJHtFTkFC
TEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9XRUJfUlRDIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVT
fSkKLVdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUEFJTlRJTkdf
QVBJIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKLVdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfVFlQRURfT00gUFJJVkFURSAke0VOQUJM
RV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJYUiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1F
TlRBTF9GRUFUVVJFU30pCiAKICMgUHVibGljIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFdQRSBw
b3J0LiBEbyBub3QgYWRkIGFueSBvcHRpb25zIGhlcmUgdW5sZXNzCiAjIHRoZXJlIGlzIGEgc3Ry
b25nIHJlYXNvbiB3ZSBzaG91bGQgc3VwcG9ydCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIG9w
dGlvbiwKQEAgLTE3MSw2ICsxNzIsMTEgQEAgaWYgKEVOQUJMRV9XUEVfUVRfQVBJIE9SIFVTRV9X
UEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAgICAgZmluZF9wYWNrYWdlKFdQRUJhY2tl
bmRfZmRvIDEuNS4wIFJFUVVJUkVEKQogZW5kaWYgKCkKIAoraWYgKEVOQUJMRV9XRUJYUikKKyAg
ICBmaW5kX3BhY2thZ2UoT3BlblhSIDEuMCBSRVFVSVJFRCkKKyAgICBTRVRfQU5EX0VYUE9TRV9U
T19CVUlMRChVU0VfT1BFTlhSICR7T3BlblhSX0ZPVU5EfSkKK2VuZGlmICgpCisKIGFkZF9kZWZp
bml0aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCiBhZGRfZGVmaW5pdGlvbnMoLURHRVRURVhUX1BB
Q0tBR0U9IldQRSIpCiBhZGRfZGVmaW5pdGlvbnMoLURKU0NfR0xJQl9BUElfRU5BQkxFRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCBmZjdkNmQxYzcwZjlkMTMwMDdiZGY3ZDQ2ZTY0
ZDA3ZDc3NTZmMGY4Li5iNTkxOTY1MTE5OGYyZTM4MjVkY2E5YjgzZWY2ZGI3ZTM1YTI4YzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0yMzAsNiArMjMwLDcgQEAgbWFjcm8oV0VC
S0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCX0FV
VEhOICJUb2dnbGUgV2ViIEF1dGhOIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9P
UFRJT05fREVGSU5FKEVOQUJMRV9XRUJfQ1JZUFRPICJUb2dnbGUgV2ViQ3J5cHRvIFN1YnRsZS1D
cnlwdG8gc3VwcG9ydCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFC
TEVfV0VCX1JUQyAiVG9nZ2xlIFdlYlJUQyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCWFIgIlRvZ2dsZSBXZWJYUiBzdXBwb3J0IiBQUklW
QVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUICJUb2dnbGUgd2lyZWxlc3MgcGxheWJhY2sgdGFyZ2V0IHN1cHBvcnQiIFBSSVZB
VEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9YU0xUICJUb2dnbGUgWFNM
VCBzdXBwb3J0IiBQUklWQVRFIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9TWVNU
RU1fTUFMTE9DICJUb2dnbGUgc3lzdGVtIGFsbG9jYXRvciBpbnN0ZWFkIG9mIFdlYktpdCdzIGN1
c3RvbSBhbGxvY2F0b3IiIFBSSVZBVEUgJHtVU0VfU1lTVEVNX01BTExPQ19ERUZBVUxUfSkKQEAg
LTI1Nyw2ICsyNTgsNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9P
UFRJT05fREVQRU5EKEVOQUJMRV9WSURFT19UUkFDSyBFTkFCTEVfVklERU8pCiAgICAgV0VCS0lU
X09QVElPTl9ERVBFTkQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOIEVOQUJM
RV9WSURFTykKICAgICBXRUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfVE9VQ0hfU0xJREVSIEVO
QUJMRV9UT1VDSF9FVkVOVFMpCisgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1dFQlhS
IEVOQUJMRV9XRUJHTCkKIGVuZG1hY3JvKCkKIAogbWFjcm8oX1dFQktJVF9PUFRJT05fRU5GT1JD
RV9ERVBFTkRTIF9uYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXMucHJvcHMgYi9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lcy5wcm9wcwppbmRleCA5NmQ0NjAwY2ZiNmEyMTc0YzBkODllNDdkYmNlN2NjZGUwZWY1
NWQxLi5iZGUyYjg4ZmQ1ZWY0OGMzMWI1ZGRkZTU1ZDBjODI2Yjg3N2E0NjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcworKysgYi9T
b3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcwpAQCAtNjYsNiAr
NjYsNyBAQAogICAgIDxFTkFCTEVfV0VCX0FVVEhOIC8+CiAgICAgPEVOQUJMRV9XRUJHTCAvPgog
ICAgIDxFTkFCTEVfV0VCR1BVIC8+CisgICAgPEVOQUJMRV9XRUJYUiAvPgogICAgIDxFTkFCTEVf
WEhSX1RJTUVPVVQ+RU5BQkxFX1hIUl9USU1FT1VUPC9FTkFCTEVfWEhSX1RJTUVPVVQ+CiAgICAg
PEVOQUJMRV9YU0xUPkVOQUJMRV9YU0xUPC9FTkFCTEVfWFNMVD4KICAgPC9Qcm9wZXJ0eUdyb3Vw
PgpAQCAtNzQsNyArNzUsNyBAQAogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlv
bkdyb3VwPgogICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTsk
KEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpOyQoRU5BQkxFX0FUVEFDSE1FTlRfRUxF
TUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9O
QUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChF
TkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9O
U19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSk7JChF
TkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9EQVJLX01PREVfQ1NTKTskKEVO
QUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpOyQoRU5BQkxFX0ZFVENIX0FQSSk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KTskKEVOQUJMRV9JTlRMKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQo
RU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRB
KTskKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQo
RU5BQkxFX1FVT1RBKTskKEVOQUJMRV9TVFJFQU1TX0FQSSk7JChFTkFCTEVfU0NSSVBURURfU1BF
RUNIKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQo
RU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQ
SVhFTF9MQVlPVVQpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZH
X0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1dF
Ql9BVURJTyk7JChFTkFCTEVfV0VCR0wpOyQoRU5BQkxFX1dFQkdQVSk7JChFTkFCTEVfWEhSX1RJ
TUVPVVQpOyQoRU5BQkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9j
ZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4kKEVOQUJM
RV8zRF9UUkFOU0ZPUk1TKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxF
X09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCk7JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKTsk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxF
Uyk7JChFTkFCTEVfQ1NTX0lNQUdFX1NFVCk7JChFTkFCTEVfQ1NTM19URVhUKTskKEVOQUJMRV9D
U1NfQk9YX0RFQ09SQVRJT05fQlJFQUspOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpOyQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KTskKEVOQUJMRV9D
U1NfU0hBUEVfSU5TSURFKTskKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1RSQU5T
SVRJT05TX1VOUFJFRklYRUQpOyQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKTskKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX0RBUktfTU9ERV9DU1MpOyQoRU5BQkxFX0RB
VEFHUklEKTskKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSk7JChFTkFCTEVfRkVUQ0hfQVBJKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVO
QUJMRV9ISUdIX0RQSV9DQU5WQVMpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpOyQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7
JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5B
QkxFX0lOVEwpOyQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKTskKEVOQUJMRV9M
RUdBQ1lfRU5DUllQVEVEX01FRElBKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVf
TUFUSE1MKTskKEVOQUJMRV9NRVRFUl9FTEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5B
QkxFX01PVVNFX0NVUlNPUl9TQ0FMRSk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVf
UVVPVEEpOyQoRU5BQkxFX1NUUkVBTVNfQVBJKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpOyQo
RU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVf
U1FMX0RBVEFCQVNFKTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NVQlBJWEVMX0xB
WU9VVCk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMp
OyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9WSURFT19UUkFDSyk7JChFTkFCTEVfV0VCX0FVRElP
KTskKEVOQUJMRV9XRUJHTCk7JChFTkFCTEVfV0VCR1BVKTskKEVOQUJMRV9XRUJYUik7JChFTkFC
TEVfWEhSX1RJTUVPVVQpOyQoRU5BQkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMp
PC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KICAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtRGVm
aW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL3Rv
b2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby5wcm9wcyBiL1NvdXJjZS9jbWFrZS90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKaW5kZXggMjRiOTRiYzcwNjM2NDBh
Yzg4NWI2NWZlZWMxM2UzMTMxNjc1MzUyNy4uZDcxOTRiMmQ5MDU0ZWVkZTFmYTYyYmIxMjQ1MTU3
MmJiYWJjMzFmNyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVy
ZURlZmluZXNDYWlyby5wcm9wcworKysgYi9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lc0NhaXJvLnByb3BzCkBAIC02NSw2ICs2NSw3IEBACiAgICAgPEVOQUJMRV9XRUJf
QVVUSE4gLz4KICAgICA8RU5BQkxFX1dFQkdMPkVOQUJMRV9XRUJHTDwvRU5BQkxFX1dFQkdMPgog
ICAgIDxFTkFCTEVfV0VCR1BVIC8+CisgICAgPEVOQUJMRV9XRUJYUiAvPgogICAgIDxFTkFCTEVf
WEhSX1RJTUVPVVQ+RU5BQkxFX1hIUl9USU1FT1VUPC9FTkFCTEVfWEhSX1RJTUVPVVQ+CiAgICAg
PEVOQUJMRV9YU0xUPkVOQUJMRV9YU0xUPC9FTkFCTEVfWFNMVD4KICAgPC9Qcm9wZXJ0eUdyb3Vw
PgpAQCAtNzMsNyArNzQsNyBAQAogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlv
bkdyb3VwPgogICAgIDxDbENvbXBpbGU+Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTsk
KEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpOyQoRU5BQkxFX0FUVEFDSE1FTlRfRUxF
TUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9O
QUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChF
TkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChF
TkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9O
U19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSk7JChF
TkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9EQVJLX01PREVfQ1NTKTskKEVO
QUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpOyQoRU5BQkxFX0ZFVENIX0FQSSk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KTskKEVOQUJMRV9JTlRMKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQo
RU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRB
KTskKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQo
RU5BQkxFX1FVT1RBKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKTskKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpOyQoRU5BQkxFX01FRElBX1NP
VVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTsk
KEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCk7JChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVP
KTskKEVOQUJMRV9WSURFT19UUkFDSyk7JChFTkFCTEVfV0VCX0FVRElPKTskKEVOQUJMRV9XRUJH
TCk7JChFTkFCTEVfWEhSX1RJTUVPVVQpOyQoRU5BQkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4kKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpOyQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCk7JChFTkFCTEVfQVRU
QUNITUVOVF9FTEVNRU5UKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NT
M19DT05ESVRJT05BTF9SVUxFUyk7JChFTkFCTEVfQ1NTX0lNQUdFX1NFVCk7JChFTkFCTEVfQ1NT
M19URVhUKTskKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspOyQoRU5BQkxFX0NTU19T
SEFERVJTKTskKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpOyQoRU5BQkxFX0NTU19TRUxFQ1RPUlNf
TEVWRUw0KTskKEVOQUJMRV9DU1NfU0hBUEVfSU5TSURFKTskKEVOQUJMRV9DU1NfVFJBTlNGT1JN
U19BTklNQVRJT05TX1RSQU5TSVRJT05TX1VOUFJFRklYRUQpOyQoRU5BQkxFX0NVUlNPUl9WSVNJ
QklMSVRZKTskKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX0RBUktfTU9E
RV9DU1MpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKTskKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfRkVUQ0hfQVBJKTskKEVOQUJMRV9GSUxFX1NZ
U1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxF
X0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpOyQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVD
SCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspOyQoRU5BQkxFX0lOVEwpOyQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BS
RUZJWEVTKTskKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKTskKEVOQUJMRV9MSU5LX1BS
RVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9FTEVNRU5UKTskKEVOQUJM
RV9NSUNST0RBVEEpOyQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSk7JChFTkFCTEVfTk9USUZJ
Q0FUSU9OUyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCk7JChFTkFC
TEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9TUUxf
REFUQUJBU0UpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1VCUElYRUxfTEFZT1VU
KTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChF
TkFCTEVfVklERU8pOyQoRU5BQkxFX1ZJREVPX1RSQUNLKTskKEVOQUJMRV9XRUJfQVVESU8pOyQo
RU5BQkxFX1dFQkdMKTskKEVOQUJMRV9XRUJYUik7JChFTkFCTEVfWEhSX1RJTUVPVVQpOyQoRU5B
QkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz4KICAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRl
bUdyb3VwPgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDI5MWVkNDJjMjg5NzZmNmE5Y2M5NDFhM2I0NGMyZjEwY2FlNWRkNTcuLmI4NTBhZDMyY2Vi
MTM4ZTBmM2FmNDA5ZTA1MDNiZmQ5ZDI5YmYxNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0xMyAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJd
IElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9G
ZWF0dXJlTGlzdC5wbTogQWRkZWQgV2ViWFIuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLgor
CiAyMDIwLTAzLTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgV0tXZWJWaWV3Ll9uZWdvdGlhdGVkTGVnYWN5VExTIHNob3VsZCBiZSBjb3Jy
ZWN0IGFmdGVyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IDFjODQwMTVjYWZiYzUyZWM5ZWI1YjcyMjZmNjk4Mzk4Y2M1
ZTVmMGIuLjc2M2FhMmU4MzI5MTcwZWNiYzY4NzBmNGNjOTZiOTMwYTYxNzM5YWUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTE4OSw2ICsxODksNyBAQCBteSAo
CiAgICAgJHdlYmdsMlN1cHBvcnQsCiAgICAgJHdlYmdsU3VwcG9ydCwKICAgICAkd2ViZ3B1U3Vw
cG9ydCwKKyAgICAkd2ViWFJTdXBwb3J0LAogICAgICR3aXJlbGVzc1BsYXliYWNrVGFyZ2V0U3Vw
cG9ydCwKICAgICAkeHNsdFN1cHBvcnQsCiApOwpAQCAtNTk1LDYgKzU5Niw5IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAid2ViZ3B1IiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkdQ
VSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdQVSIsIHZhbHVlID0+IFwk
d2ViZ3B1U3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gIndlYnhyIiwgZGVzYyA9PiAiVG9n
Z2xlIFdlYlhSIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCWFIiLCB2YWx1
ZSA9PiBcJHdlYlhSU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gIndlYi1hcGktc3RhdGlz
dGljcyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQVBJIHN0YXRpc3RpY3Mgc3VwcG9ydCIsCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MiLCB2YWx1ZSA9PiBcJHdlYkFQ
SVN0YXRpc3RpY3NTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5
YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLjgxZGFmZTU5YjUxMDg2NjM4Y2U2NjRk
MjA3MTQ0ZDQwYmUyODE1ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzk0LDYgKzM5NCw4
IEBAIEVOQUJMRV9XRUJHUFVfYXBwbGV0dm9zID0gRU5BQkxFX1dFQkdQVTsKIEVOQUJMRV9XRUJH
UFVfbWFjb3N4ID0gJChFTkFCTEVfV0VCR1BVJChXS19NQUNPU18xMDE0KSk7CiBFTkFCTEVfV0VC
R1BVX01BQ09TX1NJTkNFXzEwMTQgPSBFTkFCTEVfV0VCR1BVOwogCitFTkFCTEVfV0VCWFIgPSBF
TkFCTEVfV0VCWFI7CisKIEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MgPSA7CiAKIEVOQUJMRV9X
RUJfQVVESU8gPSBFTkFCTEVfV0VCX0FVRElPOwpAQCAtNDE0LDQgKzQxNiw0IEBAIEVOQUJMRV9X
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
OwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVO
QUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQp
ICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5J
RkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMp
ICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVO
QUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikg
JChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVO
QUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQo
RU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxF
X0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkg
JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJM
RV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNU
VVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQo
RU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZF
UikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRT
KSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NT
X1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VS
KSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykg
JChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVE
SUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09S
X1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19D
QUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RB
TEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZG
U0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJM
RV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5U
RVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChF
TkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChF
TkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChF
TkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxF
X1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVf
U1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJF
Ul9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRM
RVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9W
SURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJ
REVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5U
RVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVO
QUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQ
VE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkg
JChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1T
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlf
SVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VT
U0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BB
WV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRU
QUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BB
UlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRf
RklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElP
Tl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JB
RElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5U
SU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JT
X0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9P
TSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVf
REFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1Rf
RUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJ
KSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BS
T0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5B
QkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9U
RUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dF
U1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJ
QV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5U
KSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9O
QVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9S
RVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFU
RSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChF
TkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Qp
ICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVf
UFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElB
X1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09V
UkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRF
TlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05U
Uk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJD
RSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5B
QkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VS
U0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJ
QVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05f
TU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9G
VUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJM
RV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9V
Q0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJM
RV9XRUJHUFUpICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRP
KSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQo
RU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDMz
NGZkYWQ4OGJkNmE3ZjYwNTU4N2I3MTYzMGZjMWZlMzllMDA3ZDguLmZlOTgyNjBhZTU4NTlkMjc5
ZjI3NjI1NjE1NWMwOWE4MTNiMmUxNDQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBi
dWlsZCBjb25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFj
a3Nvbi4KKworICAgICAgICBBZGRlZCBhIG5ldyBjb21waWxlIGZsYWcgZm9yIFdFQlhSIHdoaWNo
IGRlcGVuZHMgb24gV0VCR0wuCisKKyAgICAgICAgRm9yIHRoZSBXUEUgcG9ydCwgYWRkZWQgT3Bl
blhSIGRldGVjdGlvbiBhbmQgVVNFX09QRU5YUiBkZWZpbmUgdG8gYmUKKyAgICAgICAgdXNlZCBp
biB0aGUgc291cmNlcy4gSXQgYWxzbyBhZGRzIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIFVTRV9PUEVO
WFIgYW5kCisgICAgICAgIEVOQUJMRV9XRUJYUi4KKworICAgICAgICBMYXJnZWx5IGJhc2VkIG9u
IHByZXZpb3VzIHdvcmsgYnkgxb1hbiBEb2JlcsWhZWsuCisKKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZE9wZW5YUi5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlv
bnNXUEUuY21ha2U6IEFkZGVkIG1hbmRhdG9yeSBPcGVuWFIgZGVwZW5kZW5jeSBpZgorICAgICAg
ICBXRUJYUiBpcyBlbmFibGVkIGV4cG9zaW5nIFVTRV9PUEVOWFIgdG8gdGhlIGJ1aWxkLgorICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZTogQWRkZWQgRU5BQkxFX1dF
QlhSLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
LnByb3BzOiBEaXR0by4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lc0NhaXJvLnByb3BzOiBEaXR0by4KKwogMjAyMC0wMy0xMyAgS29uc3RhbnRpbiBU
b2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgW0NNYWtlXSBFbGVtaW5hdGUg
bWlzbWF0Y2hlcyBiZXR3ZWVuIEZpbmQqIG1vZHVsZSBuYW1lcyBhbmQgdmFyaWFibGVzIHRoZXkg
c2V0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393613</attachid>
            <date>2020-03-15 04:22:31 -0700</date>
            <delta_ts>2020-03-16 02:51:43 -0700</delta_ts>
            <desc>Patch for landing v2</desc>
            <filename>bug-208702-20200315122227.patch</filename>
            <type>text/plain</type>
            <size>336430</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTFhMjkzOTM3ZmJiMTgyNDBiZjAzMmVkNjE4NTRkYzYxZGQwNTJjLi5mYWFlMWZhMzYyZTI0ZDIy
NjdjYjQ0NmEyNDk3ZTViYTM2NmVhN2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1
cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFC
TEVfV0VCWFIuCisKIDIwMjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICByZXBvcnRaYXBwZWRDZWxsQW5kQ3Jhc2ggc2hvdWxkIGhhbmRsZSBQcmVj
aXNlQWxsb2NhdGlvbiBpbiBJc29TdWJzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc0Mjg0NDhjZTAzNmQ0
YjJiYTAxYjk2YjM1YWI2OWJhNTc2NjhjOWUuLjEwYzcwYWJjOGZhM2JlYzMyNDAxMjZmYjRjZDc5
YTFlMzQwY2NmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTYgQEAKKzIwMjAtMDMtMTMgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhS
XSBJRExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgQWRkZWQgdGhlIElETHMgZGVmaW5l
ZCBieSB0aGUgc3BlYyB3aXRoIHZlcnkgYmFzaWMgZW1wdHkgaW1wbGVtZW50YXRpb25zIHRvIGdl
dCB0aGVtCisgICAgICAgIGJ1aWx0LiBBcGFydCBmcm9tIHRoYXQgYSB2ZXJ5IGJhc2ljIGltcGxl
bWVudGF0aW9uIG9mIHRoZSByZXF1aXJlZCBwbGF0Zm9ybSBjb2RlIHVzaW5nCisgICAgICAgIE9w
ZW5YUiBBUEkgd2FzIGFsc28gYWRkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIG5l
dyBmdW5jdGlvbmFsaXR5IHdhcyByZWFsbHkgYWRkZWQgKGVtcHR5IGltcGxlbWVudGF0aW9ucyku
IEhvd2V2ZXIKKyAgICAgICAgZm9sbG93IHVwIHBhdGNoZXMgd2lsbCBpbXBvcnQgdGhlIGFscmVh
ZHkgYXZhaWxhYmxlIFdQVCB0ZXN0cyBmb3IgV2ViWFIuCisKKyAgICAgICAgTGFyZ2VseSBiYXNl
ZCBvbiBwcmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL05hdmlnYXRvcldlYlhSLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0
b3JXZWJYUjo6eHIpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yV2ViWFI6OmZyb20pOgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZyYW1lOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJGcmFtZTo6V2ViWFJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUkZyYW1lOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSRnJhbWU6
OmdldFZpZXdlclBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJGcmFtZTo6Z2V0UG9zZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJJbnB1dFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3Vy
Y2U6OldlYlhSSW5wdXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJj
ZTo6aGFuZGVkbmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNl
Ojp0YXJnZXRSYXlNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3Vy
Y2U6OnRhcmdldFJheVNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRT
b3VyY2U6OmdyaXBTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291
cmNlOjpwcm9maWxlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0
U291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJj
ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6
Omxlbmd0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6
Oml0ZW0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFy
cmF5Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSUG9zZTo6V2ViWFJQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9z
ZTo6dHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6ZW11bGF0
ZWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OldlYlhSUmVmZXJlbmNlU3BhY2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJl
bmNlU3BhY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUlJlbmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJYUlJlbmRlclN0YXRlOjpkZXB0aEZhciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmJhc2VMYXllciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSUmlnaWRUcmFuc2Zvcm06OldlYlhSUmlnaWRUcmFuc2Zvcm0pOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6bWF0cml4IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSUmlnaWRUcmFuc2Zvcm06OmludmVyc2UgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJTZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlNlc3Npb246OnJlbmRlclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSU2Vzc2lvbjo6aW5wdXRTb3VyY2VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSU2Vzc2lvbjo6dXBkYXRlUmVuZGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
ZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
ZXNzaW9uOjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
ZXNzaW9uOjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNl
c3Npb246OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmFjdGl2ZURPTU9i
amVjdE5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpzdG9wKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
cGFjZTo6V2ViWFJTcGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
eXN0ZW06OldlYlhSU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjppc1Nl
c3Npb25TdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OnJlcXVlc3RT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjphY3RpdmVET01PYmplY3RO
YW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjpzdG9wKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhSVmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpXZWJYUlZpZXcpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJWaWV3OjpleWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJW
aWV3Ojpwcm9qZWN0aW9uTWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmll
dzo6dHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUlZpZXdlclBvc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlZpZXdlclBvc2U6OnZpZXdzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhSVmlld2VyUG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld2VyUG9zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3
cG9ydC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3cG9ydDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmlld3BvcnQ6OnggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViWFJWaWV3cG9ydDo6eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UlZpZXdwb3J0Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdwb3J0
OjpoZWlnaHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5o
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJXZWJHTExheWVyOjpXZWJYUldlYkdMTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJXZWJHTExheWVyOjphbnRpYWxpYXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJXZWJHTExheWVyOjppZ25vcmVEZXB0aFZhbHVlcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0aCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVySGVpZ2h0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlhSV2ViR0xMYXllcjo6Z2V0Vmlld3BvcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1hSRXllLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvWFJFeWUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVx
dWVzdENhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRl
ZG5lc3MuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXggY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQ6OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3Vy
Y2VzQ2hhbmdlRXZlbnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpYUlNlc3Npb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhS
U2Vzc2lvbkV2ZW50OjpYUlNlc3Npb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Np
b25FdmVudDo6c2Vzc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Np
b25FdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0Lmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSVGFyZ2V0UmF5TW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
WFJWaXNpYmlsaXR5U3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZp
c2liaWxpdHlTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJH
TExheWVySW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXll
ckluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQgT3Bl
blhSIGxpYnJhcmllcyBhbmQgaW5jbHVkZSBwYXRocy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDog
QWRkZWQgbmV3IGNwcCBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBlcy5o
OiBBZGRlZCBTZXF1ZW5jZVN0b3JhZ2VUeXBlLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29udmVydFNlcXVlbmNlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmluOiBBZGRlZCBXZWJYUiBldmVudHMuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbjogQWRkZWQgV2ViWFIgZXZlbnQgdGFyZ2V0cy4KKyAgICAgICAgKiBwYWdlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaDogQWRkZWQgbmV3IHJ1bnRpbWUgZmVhdHVyZSBmb3IgV2Vi
WFIuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRXZWJYUkVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViWFJF
bmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUi5jcHA6IEFkZGVkLgorICAgICAgICAoUGxh
dGZvcm1YUjo6Y3JlYXRlU3RydWN0dXJlKTogVXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgT3Bl
blhSIHN0cnVjdHMuCisgICAgICAgIChQbGF0Zm9ybVhSOjpyZXN1bHRUb1N0cmluZyk6IFRyYW5z
bGF0ZXMgT3BlblhSIGVycm9yIGNvZGVzIHRvIHN0cmluZ3MuCisgICAgICAgIChQbGF0Zm9ybVhS
OjpJbnN0YW5jZTo6SW1wbDo6SW1wbCk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6
SW1wbDo6fkltcGwpOgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbik6
CisKIDIwMjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IGRjYTU4Y2IyOTZiODZlZDBmNGQxYzQ4OTNjNGI3Yjg5MWI1M2MyYWYuLjQx
MjYxZDhhMWQwY2ZlY2ZmMmFiMDM3OGYyZjFlMTZmNGVmYTlkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxk
IGNvbmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29u
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFk
ZGVkIEVOQUJMRV9XRUJYUi4KKwogMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJh
eSAoVkxBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA0ZTJiM2U2NWI1Y2JkZjVlMjMwZjcyZmQ0OWY5NjI0MDBhMjgx
MjU3Li44OWYwODkwMmE3M2JlOTJjODgwMTQyNGFkZWRjNTJiNzI3YjdjN2FjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNv
bmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgor
CisgICAgICAgIEFkZGVkIFdlYlhSIHRvIHRoZSBsaXN0IG9mIGV4cGVyaW1lbnRhbCBmZWF0dXJl
cy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBB
ZGRlZCBFTkFCTEVfV0VCWFIuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6
IEFkZGVkIFdlYlhSIGZlYXR1cmUuCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXZWJYUkVuYWJsZWQpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVu
bmVyKToKKwogMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQpAQCAt
OTMwLDYgKzk0NywyMiBAQAogICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CiAKKzIw
MjAtMDMtMTIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
RHJvcCB1bnVzZWQgRW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyAvIERpc2Fi
bGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIElQQyBtZXNzYWdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTczCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81OTY4Mzk0MD4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFi
bGV0LgorCisgICAgICAgIFJlbW92ZSB0d28gdW51c2VkIElQQyBtZXNzYWdlcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRl
cmZhY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAy
MDIwLTAzLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0dQVSBQcm9jZXNzXSBlbmNvZGVOYXRpdmVJbWFnZSgpIHNob3VsZCBwYXNzIGlt
YWdlU2l6ZSB0byBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggZjgwMjY3YTU5MGYzZGIwMTNlNWI0ZWY5YjU1MTU4OWRiNzcz
ZWJlMS4uZWQ3Nzk4ODQ5MzI1OGFiNDI4MzcwNzY5OTZkMTEyMDkwM2QzZDQ5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTEzICBTZXJnaW8g
VmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURM
cywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6IEFkZGVkIEVOQUJMRV9XRUJYUi4KKwogMjAyMC0wMy0xNSAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBub3QgdXNlIHZh
cmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2
YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLjgxZGFmZTU5YjUxMDg2NjM4
Y2U2NjRkMjA3MTQ0ZDQwYmUyODE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM5
NCw2ICszOTQsOCBAQCBFTkFCTEVfV0VCR1BVX2FwcGxldHZvcyA9IEVOQUJMRV9XRUJHUFU7CiBF
TkFCTEVfV0VCR1BVX21hY29zeCA9ICQoRU5BQkxFX1dFQkdQVSQoV0tfTUFDT1NfMTAxNCkpOwog
RU5BQkxFX1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0ID0gRU5BQkxFX1dFQkdQVTsKIAorRU5BQkxF
X1dFQlhSID0gRU5BQkxFX1dFQlhSOworCiBFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTID0gOwog
CiBFTkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKQEAgLTQxNCw0ICs0MTYsNCBA
QCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExF
X1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElD
QVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhU
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElO
R19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JU
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJF
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9D
T0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FN
UExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxF
X05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JL
X0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZF
UikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNP
Tk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VS
KSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVT
U0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVS
X01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJM
RV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0Rf
VFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQ
TEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJM
RV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJM
RV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NT
X0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxF
X0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NT
X1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9D
U1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1Ap
ICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVS
U19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9X
RUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9J
TlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5B
QkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxF
X01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBU
VVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJ
T04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVU
RVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkg
JChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BF
Q1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxF
X1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9D
QU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVO
VF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0sp
ICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NB
TkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFC
TEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNf
QVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNU
SU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChF
TkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChF
TkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VT
X0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9O
UykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
RFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdM
MikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVf
V0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGRlZGZhMTRkNWE1ZGRkYTg0
ZTMzNWJmZDQ4NWU3NTUwOTdmYWVjNTcuLjY4MDJjYzhjY2IxNWE4NGYxMWQwZDNmMDc3ZmNlOTI3
YjY0NDA2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTgwLDYgKzE4MCw3IEBACiAjaWYgKFVTRV9BTkdM
RSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9FR0wpICYm
IFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJvciBVU0VfQU5HTEUgaXMg
aW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTAog
I2VuZGlmCisKICNlbmRpZgogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBFTkFCTEUoR1JB
UEhJQ1NfQ09OVEVYVF9HTCkgJiYgIWRlZmluZWQoVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQpAQCAt
MTkwLDMgKzE5MSw0IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShBQ0NFU1NJQklM
SVRZKQogI2RlZmluZSBVU0VfQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTIDEKICNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJlZmNlMGQzZDk0NTFjNTE0MGY3Y2ZiZTYyMjNlMmZm
MzkyODdmNTMuLjEyNzZmY2UxZDdhNGQyZjBlZGJiMjI2YWQxNzczYmI5ZjQ0MjJhZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC02NCw2ICs2NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYmdwdS9XSExT
TCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUIgogICAgICIk
e1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnNvY2tldHMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvd2VieHIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlIgogICAgICIke1dFQkNPUkVf
RElSfS9hbmltYXRpb24iCkBAIC0xNDEsNyArMTQyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3NxbCIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vdGV4dCIKLSAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdnIiCisgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3hyIgogICAgICIke1dFQkNPUkVfRElSfS9wbHVnaW5zIgog
ICAgICIke1dFQkNPUkVfRElSfS9yZW5kZXJpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRl
cmluZy9saW5lIgpAQCAtMTE3OSw2ICsxMTgwLDQyIEBAIGlmIChFTkFCTEVfR0FNRVBBRCkKICAg
ICApCiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX1dFQkdMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJY
Ui5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5p
ZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbAorICAgICAgICBNb2R1bGVz
L3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJJ
bnB1dFNvdXJjZUFycmF5LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
V2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Np
b24uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlZp
ZXcuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbAorICAgICAg
ICBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
V2ViWFJXZWJHTExheWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRsCisgICAgICAgIE1v
ZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJj
ZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZl
bnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbAor
ICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbkV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQu
aWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJW
aXNpYmlsaXR5U3RhdGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5pZGwKKyAgICApCitlbmRpZiAoKQorCiBzZXQoV2ViQ29yZV9JRExfRklMRVMKICAgICAke1dl
YkNvcmVfTk9OX1NWR19JRExfRklMRVN9CiAgICAgJHtXZWJDb3JlX1NWR19JRExfRklMRVN9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLjgx
ZGFmZTU5YjUxMDg2NjM4Y2U2NjRkMjA3MTQ0ZDQwYmUyODE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0z
OTQsNiArMzk0LDggQEAgRU5BQkxFX1dFQkdQVV9hcHBsZXR2b3MgPSBFTkFCTEVfV0VCR1BVOwog
RU5BQkxFX1dFQkdQVV9tYWNvc3ggPSAkKEVOQUJMRV9XRUJHUFUkKFdLX01BQ09TXzEwMTQpKTsK
IEVOQUJMRV9XRUJHUFVfTUFDT1NfU0lOQ0VfMTAxNCA9IEVOQUJMRV9XRUJHUFU7CiAKK0VOQUJM
RV9XRUJYUiA9IEVOQUJMRV9XRUJYUjsKKwogRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUyA9IDsK
IAogRU5BQkxFX1dFQl9BVURJTyA9IEVOQUJMRV9XRUJfQVVESU87CkBAIC00MTQsNCArNDE2LDQg
QEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBM
RV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJ
Q0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FW
Rl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xM
X1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJ
TkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRB
Q1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVS
QUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNU
SU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RP
Q09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAk
KEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01F
RElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NB
TVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJM
RV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09S
S19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9V
Q0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChF
TkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJW
RVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xP
QURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9C
QU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVD
T05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktF
UikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01F
U1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZF
Ul9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFD
VElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFC
TEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJM
RV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
Q1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09Q
KSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5f
UElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVf
SU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVO
QUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQ
VFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNT
SU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElM
RV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5f
Q0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NL
KSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09M
VVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChF
TkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9T
QU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVB
QkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQo
RU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNF
U19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJH
TDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RB
VElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxF
X1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA0ZDllZGFmMWE2NmI2ZGFkOTU3MTUwYWJjNjQ5ZDNlZWQyMWY3NjQxLi40ZTkyNTY4ZjA3MjI5
MTZhZWE5Mjg1ODZjNjQ5NzYzMjg3MDVmZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTY0LDYgKzY0LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnNvY2tldHMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ciBcCiAg
ICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbiBc
CiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCkBAIC00NjAsNiArNDYxLDM3IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dvcmtlck5hdmln
YXRvckdQVS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
eHIvV2ViWFJTZXNzaW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhS
U3BhY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2suaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJIYW5k
ZWRuZXNzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VF
dmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0
YXRlSW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJvbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vz
c2liaWxpdHkvQXJpYUF0dHJpYnV0ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9B
bmltYXRhYmxlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L05hdmlnYXRvcldlYlhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2YTRjNWQ3ODM4OTAwNDVjMTNiNzE5ZDM5ZmIxZDJi
ZjIzODEyNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L05hdmlnYXRvcldlYlhSLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JXZWJYUi5oIgorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJYUlN5c3RlbSYgTmF2aWdhdG9yV2ViWFI6
OnhyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE5hdmln
YXRvciYgbmF2aWdhdG9yT2JqZWN0KQoreworICAgIGF1dG8mIG5hdmlnYXRvciA9IE5hdmlnYXRv
cldlYlhSOjpmcm9tKG5hdmlnYXRvck9iamVjdCk7CisgICAgaWYgKCFuYXZpZ2F0b3IubV94cikK
KyAgICAgICAgbmF2aWdhdG9yLm1feHIgPSBXZWJYUlN5c3RlbTo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgIHJldHVybiAqbmF2aWdhdG9yLm1feHI7Cit9CisKK05hdmlnYXRv
cldlYlhSJiBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKK3sKKyAg
ICBhdXRvKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yV2ViWFIqPihTdXBwbGVt
ZW50PE5hdmlnYXRvcj46OmZyb20oJm5hdmlnYXRvciwgIk5hdmlnYXRvcldlYlhSIikpOworICAg
IGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBtYWtlVW5p
cXVlPE5hdmlnYXRvcldlYlhSPigpOworICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVu
dC5nZXQoKTsKKyAgICAgICAgcHJvdmlkZVRvKCZuYXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIs
IFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gKnN1cHBsZW1lbnQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZjM0ZTRlNTlmMzljODlkYjJhOTJhNDE2MGI4ODAzZWUwN2Y0MmRiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOYXZpZ2F0b3I7CitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViWFJTeXN0ZW07CisKK2NsYXNzIE5hdmln
YXRvcldlYlhSIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8TmF2aWdhdG9yPiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYlhSU3lzdGVtJiB4
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2aWdhdG9yJik7CisKK3ByaXZhdGU6CisgICAg
c3RhdGljIE5hdmlnYXRvcldlYlhSJiBmcm9tKE5hdmlnYXRvciYpOworCisgICAgUmVmUHRyPFdl
YlhSU3lzdGVtPiBtX3hyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJiZjVkZDEzOTk0MzRhM2M2MzY2ZDUwZGVmMDY3
NTM2ZThkMTNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBwYXJ0
aWFsIGludGVyZmFjZSBOYXZpZ2F0b3IgeworICAgIFtTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0
LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSByZWFkb25seSBhdHRyaWJ1dGUgV2Vi
WFJTeXN0ZW0geHI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmRlZGEz
NTIzMGViNzMwZDdlNTZiZGU1YmQ1MmFhMmIzMjYxZjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9u
bHk+PiYgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6OmJvdW5kc0dlb21ldHJ5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9ib3VuZHNHZW9tZXRyeTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjliM2I3NGYzZTJhZDQzNzg1Y2VlMDM2ZGI4ZTMyYWU2MmQ5ZDQ4ZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisKK2NsYXNzIFdlYlhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlIDogcHVibGljIFdlYlhSUmVmZXJlbmNlU3BhY2UgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKCk7CisKKyAgICBjb25zdCBW
ZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYgYm91bmRzR2VvbWV0cnkoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiBtX2JvdW5kc0dlb21l
dHJ5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWI4ODMzNzQyM2QwNmFhOWZh
NGQ1NTQxYjZjNTEwNGYwZTQ3ZTRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93
LAorICAgIEludGVyZmFjZU5hbWU9WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UKK10gaW50ZXJmYWNl
IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIDogV2ViWFJSZWZlcmVuY2VTcGFjZSB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVBvaW50UmVhZE9ubHk+IGJvdW5kc0dl
b21ldHJ5OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkzNWRjMTI3YzlkMDdhN2M4ZDIzODQxNTQ1ODdkNTEzNTg4N2FlMWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUu
Y3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYlhSRnJhbWUuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUg
IldlYlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSRnJhbWUpOworCitSZWY8V2ViWFJGcmFtZT4gV2Vi
WFJGcmFtZTo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkZyYW1lKFdURk1vdmUoc2Vzc2lvbikpKTsKK30KKworV2Vi
WFJGcmFtZTo6V2ViWFJGcmFtZShSZWY8V2ViWFJTZXNzaW9uPiYmIHNlc3Npb24pCisgICAgOiBt
X3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sKK30KKworV2ViWFJGcmFtZTo6fldlYlhSRnJh
bWUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFdlYlhSU2Vzc2lvbiYgV2ViWFJGcmFtZTo6c2Vzc2lv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFdlYlhSVmll
d2VyUG9zZT4gV2ViWFJGcmFtZTo6Z2V0Vmlld2VyUG9zZShjb25zdCBXZWJYUlJlZmVyZW5jZVNw
YWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCitSZWZQdHI8V2ViWFJQb3NlPiBXZWJYUkZy
YW1lOjpnZXRQb3NlKGNvbnN0IFdlYlhSU3BhY2UmLCBjb25zdCBXZWJYUlNwYWNlJikKK3sKKyAg
ICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgwOGE2NzY0ZjBkMmM1YWU2MWU0ZDY1OGMyODI1MDU3OWZlNWI2MjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlBvc2U7CitjbGFzcyBXZWJYUlJl
ZmVyZW5jZVNwYWNlOworY2xhc3MgV2ViWFJTZXNzaW9uOworY2xhc3MgV2ViWFJTcGFjZTsKK2Ns
YXNzIFdlYlhSVmlld2VyUG9zZTsKKworY2xhc3MgV2ViWFJGcmFtZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlhSRnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSRnJhbWUp
OworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJGcmFtZT4gY3JlYXRlKFJlZjxXZWJYUlNl
c3Npb24+JiYpOworICAgIH5XZWJYUkZyYW1lKCk7CisKKyAgICBjb25zdCBXZWJYUlNlc3Npb24m
IHNlc3Npb24oKSBjb25zdDsKKworICAgIFJlZlB0cjxXZWJYUlZpZXdlclBvc2U+IGdldFZpZXdl
clBvc2UoY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYpOworICAgIFJlZlB0cjxXZWJYUlBvc2U+
IGdldFBvc2UoY29uc3QgV2ViWFJTcGFjZSYsIGNvbnN0IFdlYlhSU3BhY2UmKTsKKworcHJpdmF0
ZToKKyAgICBXZWJYUkZyYW1lKFJlZjxXZWJYUlNlc3Npb24+JiYpOworCisgICAgUmVmPFdlYlhS
U2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUkZyYW1lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJG
cmFtZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFmY2YzY2ZlNGQ5Yzc1ZmQ3ZjQ2OGU0OTdkYjhlODAwN2I4
YWRmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJGcmFtZS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgSW50ZXJmYWNlTmFtZT1YUkZyYW1lCitdIGludGVyZmFjZSBXZWJYUkZyYW1lIHsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSU2Vzc2lvbiBzZXNzaW9uOwor
CisgICAgV2ViWFJWaWV3ZXJQb3NlPyBnZXRWaWV3ZXJQb3NlKFdlYlhSUmVmZXJlbmNlU3BhY2Ug
cmVmZXJlbmNlU3BhY2UpOworICAgIFdlYlhSUG9zZT8gZ2V0UG9zZShXZWJYUlNwYWNlIHNwYWNl
LCBXZWJYUlNwYWNlIGJhc2VTcGFjZSk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMwNzY3NTExOThkYmJj
Mzc2Y2I5NzE5YjhhODdiMTJjNjIwMThkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAKQEAgLTAsMCArMSw3OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNv
dXJjZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSSW5wdXRTb3VyY2UpOworCitSZWY8
V2ViWFJJbnB1dFNvdXJjZT4gV2ViWFJJbnB1dFNvdXJjZTo6Y3JlYXRlKFJlZjxXZWJYUlNwYWNl
PiYmIHRhcmdldFJheVNwYWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSSW5w
dXRTb3VyY2UoV1RGTW92ZSh0YXJnZXRSYXlTcGFjZSkpKTsKK30KKworV2ViWFJJbnB1dFNvdXJj
ZTo6V2ViWFJJbnB1dFNvdXJjZShSZWY8V2ViWFJTcGFjZT4mJiB0YXJnZXRSYXlTcGFjZSkKKyAg
ICA6IG1faGFuZGVkbmVzcyhYUkhhbmRlZG5lc3M6Ok5vbmUpCisgICAgLCBtX3RhcmdldFJheU1v
ZGUoWFJUYXJnZXRSYXlNb2RlOjpHYXplKQorICAgICwgbV90YXJnZXRSYXlTcGFjZShXVEZNb3Zl
KHRhcmdldFJheVNwYWNlKSkKK3sKK30KKworV2ViWFJJbnB1dFNvdXJjZTo6fldlYlhSSW5wdXRT
b3VyY2UoKSA9IGRlZmF1bHQ7CisKK1hSSGFuZGVkbmVzcyBXZWJYUklucHV0U291cmNlOjpoYW5k
ZWRuZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kZWRuZXNzOworfQorCitYUlRhcmdl
dFJheU1vZGUgV2ViWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5TW9kZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdGFyZ2V0UmF5TW9kZTsKK30KKworY29uc3QgV2ViWFJTcGFjZSYgV2ViWFJJbnB1
dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3RhcmdldFJh
eVNwYWNlOworfQorCitSZWZQdHI8V2ViWFJTcGFjZT4gV2ViWFJJbnB1dFNvdXJjZTo6Z3JpcFNw
YWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCitjb25zdCBWZWN0b3I8U3RyaW5n
PiYgV2ViWFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
b2ZpbGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5w
dXRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY4YzI5YWIxY2RiOTA2ZGJlMTRiYjk0OTJhYjJmZDg4YjQxZDQxMTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5w
dXRTb3VyY2UuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVk
ZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJTcGFjZTsK
KworY2xhc3MgV2ViWFJJbnB1dFNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSSW5wdXRT
b3VyY2U+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSSW5wdXRTb3VyY2UpOwor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJJbnB1dFNvdXJjZT4gY3JlYXRlKFJlZjxXZWJY
UlNwYWNlPiYmKTsKKyAgICB+V2ViWFJJbnB1dFNvdXJjZSgpOworCisgICAgWFJIYW5kZWRuZXNz
IGhhbmRlZG5lc3MoKSBjb25zdDsKKyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSgp
IGNvbnN0OworICAgIGNvbnN0IFdlYlhSU3BhY2UmIHRhcmdldFJheVNwYWNlKCkgY29uc3Q7Cisg
ICAgUmVmUHRyPFdlYlhSU3BhY2U+IGdyaXBTcGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwcm9maWxlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlhSSW5wdXRT
b3VyY2UoUmVmPFdlYlhSU3BhY2U+JiYpOworCisgICAgWFJIYW5kZWRuZXNzIG1faGFuZGVkbmVz
czsKKyAgICBYUlRhcmdldFJheU1vZGUgbV90YXJnZXRSYXlNb2RlOworICAgIFJlZjxXZWJYUlNw
YWNlPiBtX3RhcmdldFJheVNwYWNlOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcHJvZmlsZXM7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2Uu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNDU5ZjNmZTQ3MDc1MjExMzdiZjUzZjFhMzQ0ZWRkZDk4ZWJkMzY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291
cmNlLmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBJbnRlcmZhY2VOYW1lPVhSSW5wdXRTb3VyY2UKK10gaW50ZXJmYWNlIFdlYlhSSW5wdXRTb3Vy
Y2UgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzczsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgWFJUYXJnZXRSYXlNb2RlIHRhcmdldFJheU1vZGUgOworICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTcGFjZSB0YXJnZXRSYXlTcGFj
ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSU3BhY2U/IGdyaXBT
cGFjZSA7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxE
T01TdHJpbmc+IHByb2ZpbGVzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGMwODU1MzJi
Y2Q5YWFjMjczODA5MGJmYTNmZGRmZWE0MzM1NWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuY3BwCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlhSSW5wdXRTb3VyY2VBcnJheS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJJbnB1dFNvdXJjZUFycmF5KTsKKwordW5zaWduZWQg
V2ViWFJJbnB1dFNvdXJjZUFycmF5OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCitXZWJYUklucHV0U291cmNlKiBXZWJYUklucHV0U291cmNlQXJyYXk6Oml0ZW0odW5zaWdu
ZWQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQy
MWYwMjllNjRjYjA4YTJiYjliNmE2NTY4NWRhMGQ1OTg3ZDAyNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmgKQEAg
LTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2U7
CisKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2VBcnJheSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhS
SW5wdXRTb3VyY2VBcnJheT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJJbnB1
dFNvdXJjZUFycmF5KTsKK3B1YmxpYzoKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAg
ICBXZWJYUklucHV0U291cmNlKiBpdGVtKHVuc2lnbmVkKSBjb25zdDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mY2FkODRhYzA1NWZlNjA1MTAxOWFlN2M3NzJjMDQyYzllMDJjNzE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNl
QXJyYXkuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4
dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAor
ICAgIEludGVyZmFjZU5hbWU9WFJJbnB1dFNvdXJjZUFycmF5CitdIGludGVyZmFjZSBXZWJYUklu
cHV0U291cmNlQXJyYXkgeworICAgIGl0ZXJhYmxlPFdlYlhSSW5wdXRTb3VyY2U+OworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgV2ViWFJJ
bnB1dFNvdXJjZSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM1ZjgwYTU0NDU1Y2JlOGZjYjA3
MmQ1NDdiMzE5NmE5ODg3ODY1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJQb3NlLmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlBvc2UuaCIKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChXZWJYUlBvc2UpOworCitSZWY8V2ViWFJQb3NlPiBXZWJYUlBv
c2U6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJQb3NlKTsKK30K
KworV2ViWFJQb3NlOjpXZWJYUlBvc2UoKQorICAgIDogbV90cmFuc2Zvcm0oV2ViWFJSaWdpZFRy
YW5zZm9ybTo6Y3JlYXRlKCkpCit7Cit9CisKK1dlYlhSUG9zZTo6fldlYlhSUG9zZSgpID0gZGVm
YXVsdDsKKworY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgV2ViWFJQb3NlOjp0cmFuc2Zvcm0o
KSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30KKworYm9vbCBXZWJYUlBvc2U6
OmVtdWxhdGVkUG9zaXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2VtdWxhdGVkUG9zaXRp
b247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5
OTE5ZDI0YzM5NTNhYTM5YTJjNDg5NGJjN2NjZTVjMjljMTdlNmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5oCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJS
aWdpZFRyYW5zZm9ybTsKKworY2xhc3MgV2ViWFJQb3NlIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
WFJQb3NlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlBvc2UpOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViWFJQb3NlPiBjcmVhdGUoKTsKKyAgICB+V2ViWFJQb3NlKCk7
CisKKyAgICBjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKyAg
ICBib29sIGVtdWxhdGVkUG9zaXRpb24oKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIFdlYlhS
UG9zZSgpOworCisgICAgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworICAg
IGJvb2wgbV9lbXVsYXRlZFBvc2l0aW9uIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJQb3NlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzRlOWRhZGM4ZWEwYWYzMTUxODY5
NDE5M2I5MjQ5NjQ0Nzg4MDI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisg
ICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJQb3NlCitdIGludGVyZmFjZSBXZWJY
UlBvc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRy
YW5zZm9ybSB0cmFuc2Zvcm07CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZW11bGF0
ZWRQb3NpdGlvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzNiZjcwOGNjNDI3YzgxOTA2YjAz
ZTU4ZWNkOTI4YTMwZmYwY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlJlZmVyZW5jZVNw
YWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2Vi
WFJSZWZlcmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVuY2VTcGFjZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQorICAgIDogV2ViWFJTcGFjZShjb250ZXh0KQoreworfQorCitXZWJYUlJl
ZmVyZW5jZVNwYWNlOjp+V2ViWFJSZWZlcmVuY2VTcGFjZSgpID0gZGVmYXVsdDsKKworUmVmPFdl
YlhSUmVmZXJlbmNlU3BhY2U+IFdlYlhSUmVmZXJlbmNlU3BhY2U6OmdldE9mZnNldFJlZmVyZW5j
ZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYlhSUmVmZXJlbmNlU3BhY2UoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3Bh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI2YmI0OGNiZjY5MDM4ZmVhMmJkMzE0ODI2Mzk2YjkzZDIxMzUzY2QKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJl
bmNlU3BhY2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgorCisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSUmlnaWRU
cmFuc2Zvcm07CisKK2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2UgOiBwdWJsaWMgV2ViWFJTcGFj
ZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViWFJSZWZlcmVuY2VTcGFjZSgpOworCisgICAg
UmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdl
YlhSUmlnaWRUcmFuc2Zvcm0mKTsKKworcHJpdmF0ZToKKyAgICBXZWJYUlJlZmVyZW5jZVNwYWNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MzUwN2Y0NDVh
NTJmZTJlMTcxOTY2ZjUwNzNiYzEzYjQ5ZmM1M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
Q29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRv
dywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmpl
Y3QsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJlZmVyZW5jZVNwYWNlCitdIGludGVyZmFjZSBXZWJY
UlJlZmVyZW5jZVNwYWNlIDogV2ViWFJTcGFjZSB7CisgICAgW05ld09iamVjdF0gV2ViWFJSZWZl
cmVuY2VTcGFjZSBnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShXZWJYUlJpZ2lkVHJhbnNmb3JtIG9y
aWdpbk9mZnNldCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzZXQ7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDY3ODlmODE5MjcxZTkxNTY1MjY5ZGEzZjNiOTYxZDMzZDk5NzZhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJT
dGF0ZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViWFJSZW5kZXJTdGF0ZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSAiV2ViWFJXZWJHTExheWVyLmgiCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZUlu
aXQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFdlYlhSUmVuZGVyU3RhdGUpOworCitSZWY8V2ViWFJSZW5kZXJTdGF0ZT4gV2Vi
WFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAg
ICAvLyBXaGVuIGFuIFhSUmVuZGVyU3RhdGUgb2JqZWN0IGlzIGNyZWF0ZWQgZm9yIGFuIFhSU2Vz
c2lvbiBzZXNzaW9uLCB0aGUgdXNlciBhZ2VudCBNVVNUIGluaXRpYWxpemUgdGhlIHJlbmRlciBz
dGF0ZSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAxLiBMZXQgc3Rh
dGUgYmUgdGhlIG5ld2x5IGNyZWF0ZWQgWFJSZW5kZXJTdGF0ZSBvYmplY3QuCisKKyAgICAvLyAg
IDIuIEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRoTmVhciB0byAwLjEuCisgICAgLy8gICAzLiBJ
bml0aWFsaXplIHN0YXRl4oCZcyBkZXB0aEZhciB0byAxMDAwLjAuCisgICAgLy8gKERlZmF1bHQt
aW5pdGlhbGl6ZWQgaW4gdGhlIFhSUmVuZGVyU3RhdGUgY2xhc3MgZGVmaW5pdGlvbi4pCisKKyAg
ICAvLyAgIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNlc3Npb24sIGluaXRpYWxpemUg
c3RhdGXigJlzIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgdG8gbnVsbC4KKyAgICAvLyAgIDUu
IEVsc2UgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB0byBQ
SSAqIDAuNS4KKyAgICAvLyBGSVhNRTogImltbWVyc2l2ZSBzZXNzaW9uIiBzdXBwb3J0CisgICAg
VU5VU0VEX1BBUkFNKHNlc3Npb24pOworICAgIE9wdGlvbmFsPGRvdWJsZT4gaW5saW5lVmVydGlj
YWxGaWVsZE9mVmlldyB7IHBpT3ZlclR3b0RvdWJsZSB9OworCisgICAgLy8gICA2LiBJbml0aWFs
aXplIHN0YXRl4oCZcyBiYXNlTGF5ZXIgdG8gbnVsbC4KKyAgICAvLyAgIDcuIEluaXRpYWxpemUg
c3RhdGXigJlzIG91dHB1dENvbnRleHQgdG8gbnVsbC4KKyAgICAvLyAoSW5pdGlhbGl6ZWQgdG8g
bnVsbCBieSBkZWZhdWx0LikKKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSUmVuZGVy
U3RhdGUoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KSkpOworfQorCitXZWJYUlJl
bmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJiBpbmxpbmVWZXJ0
aWNhbEZpZWxkT2ZWaWV3KQorICAgIDogbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KFdURk1v
dmUoaW5saW5lVmVydGljYWxGaWVsZE9mVmlldykpCit7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6
OldlYlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKQoreworfQorCitXZWJY
UlJlbmRlclN0YXRlOjp+V2ViWFJSZW5kZXJTdGF0ZSgpID0gZGVmYXVsdDsKKworZG91YmxlIFdl
YlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGVwdGgu
bmVhcjsKK30KKworZG91YmxlIFdlYlhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9kZXB0aC5mYXI7Cit9CisKK09wdGlvbmFsPGRvdWJsZT4gV2ViWFJSZW5k
ZXJTdGF0ZTo6aW5saW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKK30KKworUmVmUHRyPFdlYlhSV2ViR0xMYXll
cj4gV2ViWFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YXNlTGF5ZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
ZW5kZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0
YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2YyOTJhYzFkNjgxYTQ2OTg3NjAxODE4OWE4N2E5NmYxZWRiYWM3
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
ZW5kZXJTdGF0ZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdlYlhSV2ViR0xMYXllcjsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5p
dDsKK2NsYXNzIFdlYlhSU2Vzc2lvbjsKKworY2xhc3MgV2ViWFJSZW5kZXJTdGF0ZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdlYlhSUmVuZGVyU3RhdGU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFdlYlhSUmVuZGVyU3RhdGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJSZW5k
ZXJTdGF0ZT4gY3JlYXRlKGNvbnN0IFdlYlhSU2Vzc2lvbiYpOworICAgIH5XZWJYUlJlbmRlclN0
YXRlKCk7CisKKyAgICBkb3VibGUgZGVwdGhOZWFyKCkgY29uc3Q7CisgICAgZG91YmxlIGRlcHRo
RmFyKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZW
aWV3KCkgY29uc3Q7CisgICAgUmVmUHRyPFdlYlhSV2ViR0xMYXllcj4gYmFzZUxheWVyKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJSZW5kZXJTdGF0ZShPcHRpb25hbDxkb3VibGU+JiYp
OworICAgIFdlYlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKTsKKworICAg
IHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBuZWFyIHsgMC4xIH07CisgICAgICAgIGRvdWJsZSBm
YXIgeyAxMDAwIH07CisgICAgfSBtX2RlcHRoOworICAgIE9wdGlvbmFsPGRvdWJsZT4gbV9pbmxp
bmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxXZWJYUldlYkdMTGF5ZXI+IG1fYmFz
ZUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJl
bmRlclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJT
dGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUxYWNlNjU1MmMzNDllODRhMjJhMjU2Y2Q2MGRjMmNjM2Nh
MDMzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJSZW5kZXJTdGF0ZS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1
cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJlbmRlclN0YXRlCitdIGludGVyZmFjZSBXZWJY
UlJlbmRlclN0YXRlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoTmVhcjsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoRmFyOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBkb3VibGU/IGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXc7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFdlYlhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQzZmRjZmI5MGU3MjViMTc5NzgwMDU0YmE2ZTdiYTU0NjRmZjk4OWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0u
Y3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJYUlJpZ2lkVHJhbnNmb3JtLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSUmlnaWRUcmFuc2Zvcm0pOworCitS
ZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUlJpZ2lkVHJhbnNmb3JtKHsgfSwgeyB9KSk7
Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPj4gV2ViWFJSaWdpZFRy
YW5zZm9ybTo6Y3JlYXRlKGNvbnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBv
aW50SW5pdCYgb3JpZW50YXRpb24pCit7CisgICAgLy8gVGhlIFhSUmlnaWRUcmFuc2Zvcm0ocG9z
aXRpb24sIG9yaWVudGF0aW9uKSBjb25zdHJ1Y3RvciBNVVNUIHBlcmZvcm0gdGhlIGZvbGxvd2lu
ZyBzdGVwcyB3aGVuIGludm9rZWQ6CisgICAgLy8gICAxLiBMZXQgdHJhbnNmb3JtIGJlIGEgbmV3
IFhSUmlnaWRUcmFuc2Zvcm0uCisKKyAgICAvLyAgIDIuIElmIHBvc2l0aW9uIGlzIG5vdCBhIERP
TVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb24gdG8geyB4OiAwLjAs
IHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDMuIElmIHBvc2l0aW9u4oCZcyB3
IHZhbHVlIGlzIG5vdCAxLjAsIHRocm93IGEgVHlwZUVycm9yLgorICAgIC8vICAgNC4gRWxzZSBp
bml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb27igJlzIHggdmFsdWUgdG8gcG9zaXRpb27i
gJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFsdWUgdG8gcG9zaXRpb27igJlzIHkgZGljdGlv
bmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gcG9zaXRpb27igJlzIHogZGljdGlvbmFyeSBtZW1iZXIg
YW5kIHcgdG8gMS4wLgorICAgIGlmIChwb3NpdGlvbi53ICE9IDEuMCkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIERPTVBvaW50SW5pdCBwb3NpdGlvbkluaXQg
eyBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBwb3NpdGlvbi56LCAxIH07CisKKyAgICAvLyAgIDUu
IElmIG9yaWVudGF0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9y
beKAmXMgb3JpZW50YXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4K
KyAgICAvLyAgIDYuIEVsc2UgaW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9u4oCZ
cyB4IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB4IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVl
IHRvIG9yaWVudGF0aW9u4oCZcyB5IGRpY3Rpb25hcnkgbWVtYmVyLCB6IHZhbHVlIHRvIG9yaWVu
dGF0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVyIGFuZCB3IHZhbHVlIHRvIG9yaWVudGF0aW9u
4oCZcyB3IGRpY3Rpb25hcnkgbWVtYmVyLgorICAgIC8vICAgNy4gTm9ybWFsaXplIHgsIHksIHos
IGFuZCB3IGNvbXBvbmVudHMgb2YgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbi4KKyAgICBET01Q
b2ludEluaXQgb3JpZW50YXRpb25Jbml0IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwg
b3JpZW50YXRpb24ueiwgb3JpZW50YXRpb24udyB9OworICAgIHsKKyAgICAgICAgZG91YmxlIGxl
bmd0aCA9IHN0ZDo6c3FydChvcmllbnRhdGlvbkluaXQueCAqIG9yaWVudGF0aW9uSW5pdC54ICsg
b3JpZW50YXRpb25Jbml0LnkgKiBvcmllbnRhdGlvbkluaXQueQorICAgICAgICAgICAgKyBvcmll
bnRhdGlvbkluaXQueiAqIG9yaWVudGF0aW9uSW5pdC56ICsgb3JpZW50YXRpb25Jbml0LncgKiBv
cmllbnRhdGlvbkluaXQudyk7CisgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWw8
ZG91YmxlPihsZW5ndGgsIDApKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAgb3JpZW50YXRpb25Jbml0PSB7CisgICAgICAgICAg
ICBvcmllbnRhdGlvbkluaXQueCAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LnkgLyBsZW5ndGgs
CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQueiAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0
LncgLyBsZW5ndGgsCisgICAgICAgIH07CisgICAgfQorCisgICAgLy8gICA4LiBSZXR1cm4gdHJh
bnNmb3JtLgorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSUmlnaWRUcmFuc2Zvcm0ocG9z
aXRpb25Jbml0LCBvcmllbnRhdGlvbkluaXQpKTsKK30KKworV2ViWFJSaWdpZFRyYW5zZm9ybTo6
V2ViWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBE
T01Qb2ludEluaXQmIG9yaWVudGF0aW9uKQorICAgIDogbV9wb3NpdGlvbihET01Qb2ludFJlYWRP
bmx5OjpjcmVhdGUocG9zaXRpb24pKQorICAgICwgbV9vcmllbnRhdGlvbihET01Qb2ludFJlYWRP
bmx5OjpjcmVhdGUob3JpZW50YXRpb24pKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJv
cGVybHksIHBlciBzcGVjLgorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdHJpeDsKKyAgICBh
dXRvIG1hdHJpeERhdGEgPSBtYXRyaXgudG9Db2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKKyAgICBt
X21hdHJpeCA9IEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1hdHJpeERhdGEuZGF0YSgpLCBtYXRyaXhE
YXRhLnNpemUoKSk7Cit9CisKK1dlYlhSUmlnaWRUcmFuc2Zvcm06On5XZWJYUlJpZ2lkVHJhbnNm
b3JtKCkgPSBkZWZhdWx0OworCitjb25zdCBET01Qb2ludFJlYWRPbmx5JiBXZWJYUlJpZ2lkVHJh
bnNmb3JtOjpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9zaXRpb247Cit9CisK
K2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFdlYlhSUmlnaWRUcmFuc2Zvcm06Om9yaWVudGF0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmllbnRhdGlvbjsKK30KKworUmVmPEZsb2F0MzJB
cnJheT4gIFdlYlhSUmlnaWRUcmFuc2Zvcm06Om1hdHJpeCgpIGNvbnN0Cit7CisgICAgYXV0byBt
YXRyaXggPSBGbG9hdDMyQXJyYXk6OmNyZWF0ZSgxNik7CisgICAgbWF0cml4LT56ZXJvRmlsbCgp
OworICAgIHJldHVybiBtYXRyaXg7Cit9CisKK1JlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBXZWJY
UlJpZ2lkVHJhbnNmb3JtOjppbnZlcnNlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50IHByb3Blcmx5LgorICAgIHJldHVybiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNm
b3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZjdjYzFlN2FiNzE4ZDA0ZjEyMDE2ODg0M2JiYjQ2ZjFmODQ1NDE1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lk
VHJhbnNmb3JtLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Yy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IERPTVBvaW50SW5pdDsKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisKK2NsYXNz
IFdlYlhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlJpZ2lkVHJhbnNm
b3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlJpZ2lkVHJhbnNmb3JtKTsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOwor
ICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShj
b25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+V2ViWFJSaWdp
ZFRyYW5zZm9ybSgpOworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRpb24oKSBj
b25zdDsKKyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNvbnN0Owor
ICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxXZWJYUlJpZ2lk
VHJhbnNmb3JtPiBpbnZlcnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJSaWdpZFRy
YW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAg
IFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBtX29yaWVudGF0aW9uOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNm
b3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9y
bS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTAwY2FkN2YyZTA3MzM0MWVlNTYzNTNlNzEwOWJiZTJmMTY4MDUy
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
aWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1
cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFs
IERPTVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0aW9u
KSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJpZ2lkVHJhbnNmb3JtCitdIGludGVy
ZmFjZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVBvaW50UmVhZE9ubHkgcG9zaXRpb247CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01Qb2ludFJlYWRPbmx5IG9yaWVudGF0aW9uOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgbWF0cml4OworICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRyYW5zZm9ybSBpbnZlcnNlOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDM1NjJm
MmUzZjZjOGQ4ODk0M2IwOTEzOGY3NjY4NzAyMTU3YTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSU2Vz
c2lvbi5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoV2ViWFJTZXNzaW9uKTsKKworV2ViWFJTZXNzaW9uOjp+V2ViWFJTZXNzaW9uKCkgPSBk
ZWZhdWx0OworCitYUkVudmlyb25tZW50QmxlbmRNb2RlIFdlYlhSU2Vzc2lvbjo6ZW52aXJvbm1l
bnRCbGVuZE1vZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2Vudmlyb25tZW50QmxlbmRNb2Rl
OworfQorCitYUlZpc2liaWxpdHlTdGF0ZSBXZWJYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorCitjb25zdCBXZWJY
UlJlbmRlclN0YXRlJiBXZWJYUlNlc3Npb246OnJlbmRlclN0YXRlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gKm1fcmVuZGVyU3RhdGU7Cit9CisKK2NvbnN0IFdlYlhSSW5wdXRTb3VyY2VBcnJheSYg
V2ViWFJTZXNzaW9uOjppbnB1dFNvdXJjZXMoKSBjb25zdAoreworICAgIHJldHVybiAqbV9pbnB1
dFNvdXJjZXM7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjp1cGRhdGVSZW5kZXJTdGF0ZShjb25z
dCBYUlJlbmRlclN0YXRlSW5pdCYpCit7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjpyZXF1ZXN0
UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVmZXJl
bmNlU3BhY2VQcm9taXNlJiYpCit7Cit9CisKK2ludCBXZWJYUlNlc3Npb246OnJlcXVlc3RBbmlt
YXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJikKK3sKKyAgICByZXR1cm4g
MDsKK30KKwordm9pZCBXZWJYUlNlc3Npb246OmNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCkKK3sK
K30KKwordm9pZCBXZWJYUlNlc3Npb246OmVuZChFbmRQcm9taXNlJiYpCit7Cit9CisKK2NvbnN0
IGNoYXIqIFdlYlhSU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICJYUlNlc3Npb24iOworfQorCit2b2lkIFdlYlhSU2Vzc2lvbjo6c3RvcCgpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4
YzIxY2E5YTkzNzRmZThkYjE1NjRmZTFhNjg1NDBhOWUxNDY5ZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCkBAIC0wLDAgKzEs
OTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNv
dXJjZUFycmF5LmgiCisjaW5jbHVkZSAiV2ViWFJSZW5kZXJTdGF0ZS5oIgorI2luY2x1ZGUgIldl
YlhSU3BhY2UuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRNb2RlLmgiCisjaW5jbHVk
ZSAiWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKKyNpbmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5o
IgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgWFJGcmFtZVJlcXVlc3RDYWxsYmFjazsKK2NsYXNzIFdlYlhS
UmVmZXJlbmNlU3BhY2U7CitzdHJ1Y3QgWFJSZW5kZXJTdGF0ZUluaXQ7CisKK2NsYXNzIFdlYlhS
U2Vzc2lvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSU2Vzc2lvbj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU2Vzc2lvbik7CitwdWJsaWM6CisgICAgdXNpbmcg
UmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8V2ViWFJSZWZlcmVuY2VTcGFjZT4+OworICAgIHVzaW5nIEVuZFByb21pc2UgPSBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD47CisKKyAgICB2aXJ0dWFsIH5XZWJYUlNlc3Npb24oKTsKKwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTZXNzaW9uPjo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8V2ViWFJTZXNzaW9uPjo6ZGVyZWY7CisKKyAgICBYUkVudmlyb25tZW50QmxlbmRNb2Rl
IGVudmlyb25tZW50QmxlbmRNb2RlKCkgY29uc3Q7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUgdmlz
aWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgY29uc3QgV2ViWFJSZW5kZXJTdGF0ZSYgcmVuZGVy
U3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBXZWJYUklucHV0U291cmNlQXJyYXkmIGlucHV0U291
cmNlcygpIGNvbnN0OworCisgICAgdm9pZCB1cGRhdGVSZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRl
clN0YXRlSW5pdCYpOworICAgIHZvaWQgcmVxdWVzdFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhSUmVm
ZXJlbmNlU3BhY2VUeXBlJiwgUmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSYmKTsKKworICAg
IGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYp
OworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGhhbmRsZSk7CisKKyAgICB2b2lk
IGVuZChFbmRQcm9taXNlJiYpOworCisgICAgYm9vbCBlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KKworcHJvdGVjdGVkOgorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJn
ZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBXZWJYUlNlc3Npb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2
b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCisgICAgWFJFbnZpcm9ubWVudEJsZW5kTW9k
ZSBtX2Vudmlyb25tZW50QmxlbmRNb2RlOworICAgIFhSVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJp
bGl0eVN0YXRlOworICAgIFJlZlB0cjxXZWJYUlJlbmRlclN0YXRlPiBtX3JlbmRlclN0YXRlOwor
ICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlQXJyYXk+IG1faW5wdXRTb3VyY2VzOworICAgIGJv
b2wgbV9lbmRlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU2Vzc2lvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjliNDMwNzljMDYyMDVmMWVmZTgyZDUwNmM0OGMx
ZWEwN2ZlZGNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJTZXNzaW9uLmlkbApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEFj
dGl2ZURPTU9iamVjdCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIEludGVyZmFjZU5hbWU9WFJTZXNzaW9uCitdIGludGVyZmFjZSBXZWJYUlNlc3Npb24gOiBF
dmVudFRhcmdldCB7CisgICAgLy8gQXR0cmlidXRlcworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBY
UkVudmlyb25tZW50QmxlbmRNb2RlIGVudmlyb25tZW50QmxlbmRNb2RlOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGU7CisgICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlJlbmRlclN0YXRlIHJlbmRlclN0YXRlOwor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJJbnB1dFNvdXJjZUFycmF5
IGlucHV0U291cmNlczsKKworICAgIC8vIE1ldGhvZHMKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0
YXRlKG9wdGlvbmFsIFhSUmVuZGVyU3RhdGVJbml0IHN0YXRlSW5pdCk7CisgICAgW05ld09iamVj
dF0gUHJvbWlzZTxXZWJYUlJlZmVyZW5jZVNwYWNlPiByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoWFJS
ZWZlcmVuY2VTcGFjZVR5cGUgdHlwZSk7CisKKyAgICBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFt
ZShYUkZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB2b2lkIGNhbmNlbEFuaW1h
dGlvbkZyYW1lKGxvbmcgaGFuZGxlKTsKKworICAgIFByb21pc2U8dm9pZD4gZW5kKCk7CisKKyAg
ICAvLyBFdmVudHMKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZW5kOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3Q7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bmlucHV0c291cmNlc2NoYW5nZTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0
c3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNlbGVjdGVuZDsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9udmlzaWJpbGl0eWNoYW5nZTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTU1ZGZlYjA1NTk1
NzBjY2MyYzlkNzZmNzYzNGI5Nzc3NDg4ZGVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJY
UlNwYWNlKTsKKworV2ViWFJTcGFjZTo6V2ViWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCit7
Cit9CisKK1dlYlhSU3BhY2U6On5XZWJYUlNwYWNlKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNGE4YTQwZDNkMzZmMGI4ZTdk
NjAyMTAwOGM2ZjUxYTg4YWIxMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgV2ViWFJTcGFjZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYlhSU3BhY2U+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdl
YlhSU3BhY2UpOworcHVibGljOgorICAgIHZpcnR1YWwgfldlYlhSU3BhY2UoKTsKKworICAgIHVz
aW5nIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdl
YlhSU3BhY2U+OjpkZXJlZjsKKworcHJvdGVjdGVkOgorICAgIFdlYlhSU3BhY2UoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsg
fQorCitwcml2YXRlOgorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlNw
YWNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSB7IGRlcmVmKCk7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2Uu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiNzk0ZjE4YjIzMzE3MDY3NmQxZDU0OTliOWExNzExNmFlZTdjYjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3Bh
Y2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwK
KyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbnRlcmZhY2VOYW1lPVhSU3BhY2UKK10gaW50ZXJm
YWNlIFdlYlhSU3BhY2UgOiBFdmVudFRhcmdldCB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWM0ZDUyODAzNDRlYTQzNjEx
Mzg0ZTI2MWE1ZmZkYWYyYzEzMTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0uaCIKKworI2lm
IEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChXZWJYUlN5c3RlbSk7CisKK1JlZjxXZWJYUlN5c3RlbT4gV2ViWFJT
eXN0ZW06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSU3lzdGVtKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpKTsKK30KKworV2ViWFJTeXN0ZW06OldlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmpl
Y3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7Cit9CisKK1dlYlhSU3lzdGVtOjp+V2ViWFJT
eXN0ZW0oKSA9IGRlZmF1bHQ7CisKK3ZvaWQgV2ViWFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBvcnRl
ZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlJiYpCit7CisgICAgLy8g
V2hlbiB0aGUgc3VwcG9ydHNTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2VkLCBpdCBNVVNU
IHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBz
IGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gRW5zdXJlIGFuIFhSIGRldmljZSBpcyBzZWxlY3Rl
ZC4KKyAgICAvLyAgIDIuIElmIHRoZSBYUiBkZXZpY2UgaXMgbnVsbCwgcmVqZWN0IHByb21pc2Ug
d2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KKyAgICAvLyAgIDMuIElmIHRoZSBYUiBkZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRlZCBt
b2RlcyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3Vw
cG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8g
ICA0LiBFbHNlIHJlc29sdmUgcHJvbWlzZS4KK30KKwordm9pZCBXZWJYUlN5c3RlbTo6cmVxdWVz
dFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNz
aW9uUHJvbWlzZSYmKQoreworICAgIFBsYXRmb3JtWFI6Okluc3RhbmNlOjpzaW5nbGV0b24oKTsK
KworICAgIC8vIFdoZW4gdGhlIHJlcXVlc3RTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2Vk
LCB0aGUgdXNlciBhZ2VudCBNVVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gTGV0IGltbWVy
c2l2ZSBiZSB0cnVlIGlmIG1vZGUgaXMgImltbWVyc2l2ZS12ciIgb3IgImltbWVyc2l2ZS1hciIs
IGFuZCBmYWxzZSBvdGhlcndpc2UuCisgICAgLy8gICAyLiBJZiBpbW1lcnNpdmUgaXMgdHJ1ZToK
KyAgICAvLyAgICAgMS4gSWYgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiBpcyB0cnVlIG9yIGFj
dGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBpcyBub3QgbnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgLy8gICAgIDIuIEVsc2Ugc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gYmUg
dHJ1ZS4KKyAgICAvLyAgIDMuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAg
Ly8gICA0LiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggbnVs
bC4KKyAgICAvLyAgIDUuIEVsc2UgaWYgdGhlIFhSIGRldmljZSdzIGxpc3Qgb2Ygc3VwcG9ydGVk
IG1vZGVzIGRvZXMgbm90IGNvbnRhaW4gbW9kZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RT
dXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLgorICAgIC8vICAgNi4gRWxzZSBJZiBpbW1lcnNp
dmUgaXMgdHJ1ZSBhbmQgdGhlIGFsZ29yaXRobSBpcyBub3QgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0
aXZhdGlvbiwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJTZWN1cml0eUVycm9yIiBET01FeGNlcHRp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNy4gSWYgcHJvbWlzZSB3YXMgcmVq
ZWN0ZWQgYW5kIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lv
biB0byBmYWxzZS4KKyAgICAvLyAgIDguIElmIHByb21pc2Ugd2FzIHJlamVjdGVkLCBhYm9ydCB0
aGVzZSBzdGVwcy4KKyAgICAvLyAgIDkuIExldCBzZXNzaW9uIGJlIGEgbmV3IFhSU2Vzc2lvbiBv
YmplY3QuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgc2Vzc2lvbiB3aXRoIHNlc3Npb24g
YW5kIG1vZGUuCisgICAgLy8gICAxMS4gSWYgaW1tZXJzaXZlIGlzIHRydWUsIHNldCB0aGUgYWN0
aXZlIGltbWVyc2l2ZSBzZXNzaW9uIHRvIHNlc3Npb24sIGFuZCBzZXQgcGVuZGluZyBpbW1lcnNp
dmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAgIDEyLiBFbHNlIGFwcGVuZCBzZXNzaW9uIHRv
IHRoZSBsaXN0IG9mIGlubGluZSBzZXNzaW9ucy4KKyAgICAvLyAgIDEzLiBSZXNvbHZlIHByb21p
c2Ugd2l0aCBzZXNzaW9uLgorfQorCitjb25zdCBjaGFyKiBXZWJYUlN5c3RlbTo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYUlN5c3RlbSI7Cit9CisKK3ZvaWQg
V2ViWFJTeXN0ZW06OnN0b3AoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
U3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlhYjE1ZDdhZWE0NDVkMTMzMmZjMjEyYTQ1Njg0NWRjZWQ5
Y2VlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgor
I2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViWFJTZXNzaW9uOworc3RydWN0IFhS
U2Vzc2lvbkluaXQ7CisKK2NsYXNzIFdlYlhSU3lzdGVtIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGlj
IEFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlN5c3Rl
bSk7CitwdWJsaWM6CisgICAgdXNpbmcgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSA9IERPTVBy
b21pc2VEZWZlcnJlZDxJRExCb29sZWFuPjsKKyAgICB1c2luZyBSZXF1ZXN0U2Vzc2lvblByb21p
c2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFdlYlhSU2Vzc2lvbj4+OworCisg
ICAgc3RhdGljIFJlZjxXZWJYUlN5c3RlbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyAgICB2aXJ0dWFsIH5XZWJYUlN5c3RlbSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxX
ZWJYUlN5c3RlbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6ZGVy
ZWY7CisKKyAgICB2b2lkIGlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Np
b25TdXBwb3J0ZWRQcm9taXNlJiYpOworICAgIHZvaWQgcmVxdWVzdFNlc3Npb24oWFJTZXNzaW9u
TW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSYmKTsKKwor
cHJvdGVjdGVkOgorICAgIFdlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKwor
ICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlN5c3RlbUV2ZW50VGFyZ2V0
SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBk
ZXJlZigpOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVt
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4YTc2MGNjYTlkNmRmMzM4MjZmZDNlM2RhZjgyMzIwNTFmMzkwYTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmlkbApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJT
eXN0ZW0KK10gaW50ZXJmYWNlIFdlYlhSU3lzdGVtIDogRXZlbnRUYXJnZXQgeworICAgIC8vIE1l
dGhvZHMKKyAgICBQcm9taXNlPHZvaWQ+IGlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2Rl
IG1vZGUpOworICAgIFtOZXdPYmplY3RdIFByb21pc2U8V2ViWFJTZXNzaW9uPiByZXF1ZXN0U2Vz
c2lvbihYUlNlc3Npb25Nb2RlIG1vZGUsIG9wdGlvbmFsIFhSU2Vzc2lvbkluaXQgb3B0aW9ucyk7
CisKKyAgICAvLyBFdmVudHMKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGV2aWNlY2hh
bmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNDQwM2I3MGRkYzFkY2Y5OThmMzE4MzAxY2E2ZDAwNTIzZDBhY2E2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwCkBA
IC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYlhSVmlldy5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJS
aWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJWaWV3KTsKKworUmVm
PFdlYlhSVmlldz4gV2ViWFJWaWV3OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlhSVmlldyk7Cit9CisKK1dlYlhSVmlldzo6V2ViWFJWaWV3KCkKKyAgICA6IG1fZXll
KFhSRXllOjpMZWZ0KQorICAgICwgbV9wcm9qZWN0aW9uTWF0cml4KEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKDApKQorICAgICwgbV90cmFuc2Zvcm0oV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkp
Cit7Cit9CisKK1dlYlhSVmlldzo6fldlYlhSVmlldygpID0gZGVmYXVsdDsKKworWFJFeWUgV2Vi
WFJWaWV3OjpleWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2V5ZTsKK30KKworY29uc3QgRmxv
YXQzMkFycmF5JiBXZWJYUlZpZXc6OnByb2plY3Rpb25NYXRyaXgoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3Byb2plY3Rpb25NYXRyaXg7Cit9CisKK2NvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0m
IFdlYlhSVmlldzo6dHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90cmFuc2Zvcm07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNTgw
YzZjZjdiNTI5YjdiZWU4Yjk5ODhiZmVlOTRlYmU4ZTM4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlICJYUkV5ZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJY
UlJpZ2lkVHJhbnNmb3JtOworCitjbGFzcyBXZWJYUlZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJYUlZpZXc+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSVmlldyk7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZpZXc+IGNyZWF0ZSgpOworICAgIH5XZWJYUlZpZXco
KTsKKworICAgIFhSRXllIGV5ZSgpIGNvbnN0OworICAgIGNvbnN0IEZsb2F0MzJBcnJheSYgcHJv
amVjdGlvbk1hdHJpeCgpIGNvbnN0OworICAgIGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIHRy
YW5zZm9ybSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlhSVmlldygpOworCisgICAgWFJF
eWUgbV9leWU7CisgICAgUmVmPEZsb2F0MzJBcnJheT4gbV9wcm9qZWN0aW9uTWF0cml4OworICAg
IFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBtX3RyYW5zZm9ybTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjVmNDI5ODE0NjYyMTczMjE0
YzQ3ZDZkNWMxNDJlMzU4ZTIxOTIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIs
CisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJWaWV3CitdIGludGVyZmFjZSBX
ZWJYUlZpZXcgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkV5ZSBleWU7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBwcm9qZWN0aW9uTWF0cml4OworICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBv
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYwNjNjOTVmMzY0M2FkYWIwYTI4MWRhODhiM2NiYWU2NWE3OTdiMDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2Vy
UG9zZS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3ZXJQb3NlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYlhSVmlld2VyUG9zZT4gV2ViWFJWaWV3ZXJQ
b3NlOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVmlld2VyUG9z
ZSk7Cit9CisKK1dlYlhSVmlld2VyUG9zZTo6V2ViWFJWaWV3ZXJQb3NlKCkgPSBkZWZhdWx0Owor
V2ViWFJWaWV3ZXJQb3NlOjp+V2ViWFJWaWV3ZXJQb3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBW
ZWN0b3I8UmVmPFdlYlhSVmlldz4+JiBXZWJYUlZpZXdlclBvc2U6OnZpZXdzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV92aWV3czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJWaWV3ZXJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRlZDI1YjEwYzI1MzE5YTZlOTIxODUyODA2NGU1
MWM4ZDRkOGYyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJWaWV3ZXJQb3NlLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSUG9zZS5oIgor
I2luY2x1ZGUgIldlYlhSVmlldy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJWaWV3ZXJQ
b3NlIDogcHVibGljIFdlYlhSUG9zZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZp
ZXdlclBvc2U+IGNyZWF0ZSgpOworICAgIH5XZWJYUlZpZXdlclBvc2UoKTsKKworICAgIGNvbnN0
IFZlY3RvcjxSZWY8V2ViWFJWaWV3Pj4mIHZpZXdzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
V2ViWFJWaWV3ZXJQb3NlKCk7CisKKyAgICBWZWN0b3I8UmVmPFdlYlhSVmlldz4+IG1fdmlld3M7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9z
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDFiZWIyYzA4NmY4OWJmYWZkZjVlMGJmMWY5NWMwZjQ4YzYwNzYxMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQ
b3NlLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBJbnRlcmZhY2VOYW1lPVhSVmlld2VyUG9zZQorXSBpbnRlcmZhY2UgV2ViWFJWaWV3ZXJQb3Nl
IDogV2ViWFJQb3NlIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3pl
bkFycmF5PFdlYlhSVmlldz4gdmlld3M7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJWaWV3cG9ydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JhYTNjOGE1YTkzZTZkMWU5ZTY5
M2ExOWQ0MTBjZmNkNTNmOWRkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3cG9ydC5oIgorCisj
aWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJW
aWV3cG9ydCk7CisKK1JlZjxXZWJYUlZpZXdwb3J0PiBXZWJYUlZpZXdwb3J0OjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVmlld3BvcnQpOworfQorCitXZWJYUlZp
ZXdwb3J0OjpXZWJYUlZpZXdwb3J0KCkgPSBkZWZhdWx0OworCitpbnQgV2ViWFJWaWV3cG9ydDo6
eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBXZWJYUlZpZXdwb3J0Ojp5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworaW50IFdlYlhSVmlld3BvcnQ6OndpZHRoKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworaW50IFdlYlhSVmlld3BvcnQ6OmhlaWdodCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlZpZXdwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY4MjQ2YTliMWQ0ZWFhM2EwNDExMTY0YjE2YjVl
NDY5YzIwMzAxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJWaWV3cG9ydC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJWaWV3cG9ydCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlhSVmlld3BvcnQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSVmll
d3BvcnQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJWaWV3cG9ydD4gY3JlYXRlKCk7
CisKKyAgICBpbnQgeCgpIGNvbnN0OworICAgIGludCB5KCkgY29uc3Q7CisgICAgaW50IHdpZHRo
KCkgY29uc3Q7CisgICAgaW50IGhlaWdodCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlhS
Vmlld3BvcnQoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJWaWV3cG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3Bv
cnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk5YjUxZWNmMTRjMzYzZjE4MzQ1ODMzNTc4OWQ3ZDBjY2ZmMmM5
NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld3BvcnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29u
dGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAorICAgIEludGVyZmFjZU5hbWU9WFJWaWV3cG9ydAorXSBpbnRlcmZhY2UgV2ViWFJWaWV3cG9y
dCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyB5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHdpZHRoOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE3OGU4YjBiNjdkMDMx
ODE0YTllZWFkNmQ4MjJjNTZhODdmMDZhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcApAQCAtMCwwICsxLDEzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJXZWJHTExh
eWVyLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVy
LmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaWYgRU5BQkxFKFdFQkdM
MikKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCisjZW5kaWYKKyNpbmNsdWRl
ICJXZWJYUlNlc3Npb24uaCIKKyNpbmNsdWRlICJXZWJYUlZpZXdwb3J0LmgiCisjaW5jbHVkZSAi
WFJXZWJHTExheWVySW5pdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V4Y2VwdGlvbk9y
PFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldlYkdMTGF5ZXI6OmNyZWF0ZShjb25zdCBXZWJY
UlNlc3Npb24mIHNlc3Npb24sIFdlYlhSUmVuZGVyaW5nQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0
IFhSV2ViR0xMYXllckluaXQmIGluaXQpCit7CisgICAgLy8gVGhlIFhSV2ViR0xMYXllcihzZXNz
aW9uLCBjb250ZXh0LCBsYXllckluaXQpIGNvbnN0cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9s
bG93aW5nIHN0ZXBzIHdoZW4gaW52b2tlZDoKKyAgICAvLyAgIDEuIExldCBsYXllciBiZSBhIG5l
dyBYUldlYkdMTGF5ZXIKKworICAgIC8vICAgMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUg
aXMgdHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgorICAgIGlmIChzZXNzaW9uLmVuZGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgLy8gICAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRo
cm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAg
IDQuIElmIGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1F
OiBUT0RPCisKKyAgICAvLyAgIDUuIEluaXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29u
dGV4dC4KKyAgICAvLyAgIDYuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXll
ckluaXTigJlzIGFudGlhbGlhcyB2YWx1ZS4KKyAgICAvLyAgIDcuIElmIGxheWVySW5pdOKAmXMg
aWdub3JlRGVwdGhWYWx1ZXMgdmFsdWUgaXMgZmFsc2UgYW5kIHRoZSBYUiBDb21wb3NpdG9yIHdp
bGwgbWFrZSB1c2Ugb2YgZGVwdGggdmFsdWVzLCBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVE
ZXB0aFZhbHVlcyB0byBmYWxzZS4KKyAgICAvLyAgIDguIEVsc2UgSW5pdGlhbGl6ZSBsYXllcuKA
mXMgaWdub3JlRGVwdGhWYWx1ZXMgdG8gdHJ1ZQorICAgIC8vICAgOS4gSW5pdGlhbGl6ZSBsYXll
cuKAmXMgZnJhbWVidWZmZXIgdG8gYSBuZXcgb3BhcXVlIGZyYW1lYnVmZmVyIGNyZWF0ZWQgd2l0
aCBjb250ZXh0LgorICAgIC8vICAgMTAuIEluaXRpYWxpemUgdGhlIGxheWVy4oCZcyBzd2FwIGNo
YWluLgorICAgIC8vICAgMTEuIElmIGxheWVy4oCZcyBzd2FwIGNoYWluIHdhcyB1bmFibGUgdG8g
YmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFi
b3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1FOiBUT0RPCisKKyAgICAvLyAgIDEyLiBSZXR1
cm4gbGF5ZXIuCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJXZWJHTExheWVyKHNlc3Np
b24sIFdURk1vdmUoY29udGV4dCksIGluaXQpKTsKK30KKworV2ViWFJXZWJHTExheWVyOjpXZWJY
UldlYkdMTGF5ZXIoY29uc3QgV2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJpbmdDb250ZXh0JiYg
Y29udGV4dCwgY29uc3QgWFJXZWJHTExheWVySW5pdCYgaW5pdCkKKyAgICA6IG1fY29udGV4dChX
VEZNb3ZlKGNvbnRleHQpKQorICAgICwgbV9hbnRpYWxpYXMoaW5pdC5hbnRpYWxpYXMpCisgICAg
LCBtX2lnbm9yZURlcHRoVmFsdWVzKGluaXQuaWdub3JlRGVwdGhWYWx1ZXMpCit7CisgICAgbV9m
cmFtZWJ1ZmZlci5vYmplY3QgPSBXVEY6OnN3aXRjaE9uKG1fY29udGV4dCwKKyAgICAgICAgW10o
Y29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdM
RnJhbWVidWZmZXI6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVC
dWZmZXI7CisgICAgICAgIH0sCisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgW10oY29uc3Qg
UmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+JiBjb250ZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gZnJhbWVCdWZmZXIgPSBXZWJHTEZyYW1l
YnVmZmVyOjpjcmVhdGUoKmNvbnRleHQpOworICAgICAgICAgICAgcmV0dXJuIGZyYW1lQnVmZmVy
OworICAgICAgICB9LAorI2VuZGlmCisgICAgICAgIFtdKFdURjo6TW9ub3N0YXRlKSB7CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICB9CisgICAgKTsKK30KKworV2ViWFJXZWJHTExheWVyOjp+V2ViWFJXZWJHTExh
eWVyKCkgPSBkZWZhdWx0OworCitib29sIFdlYlhSV2ViR0xMYXllcjo6YW50aWFsaWFzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9hbnRpYWxpYXM7Cit9CisKK2Jvb2wgV2ViWFJXZWJHTExheWVy
OjppZ25vcmVEZXB0aFZhbHVlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWdub3JlRGVwdGhW
YWx1ZXM7Cit9CisKK2NvbnN0IFdlYkdMRnJhbWVidWZmZXImIFdlYlhSV2ViR0xMYXllcjo6ZnJh
bWVidWZmZXIoKSBjb25zdAoreworICAgIHJldHVybiAqbV9mcmFtZWJ1ZmZlci5vYmplY3Q7Cit9
CisKK3Vuc2lnbmVkIFdlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIud2lkdGg7Cit9CisKK3Vuc2lnbmVkIFdlYlhSV2Vi
R0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1l
YnVmZmVyLmhlaWdodDsKK30KKworUmVmUHRyPFdlYlhSVmlld3BvcnQ+IFdlYlhSV2ViR0xMYXll
cjo6Z2V0Vmlld3BvcnQoY29uc3QgV2ViWFJWaWV3JikKK3sKKyAgICByZXR1cm4geyB9OworfQor
Citkb3VibGUgV2ViWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9y
KGNvbnN0IFdlYlhSU2Vzc2lvbiYpCit7CisgICAgcmV0dXJuIDEuMDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJkMDQ4M2Vk
NWZiNjFlMjAyM2I0MzllZDFmZjI2MTFiZjFiZmMxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmgKQEAgLTAsMCArMSw5MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2lu
Y2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdlYkdMRnJhbWVidWZmZXI7CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ7CisjaWYgRU5BQkxFKFdFQkdMMikKK2NsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7Cisj
ZW5kaWYKK2NsYXNzIFdlYlhSU2Vzc2lvbjsKK2NsYXNzIFdlYlhSVmlldzsKK2NsYXNzIFdlYlhS
Vmlld3BvcnQ7CitzdHJ1Y3QgWFJXZWJHTExheWVySW5pdDsKKworY2xhc3MgV2ViWFJXZWJHTExh
eWVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJXZWJHTExheWVyPiB7CitwdWJsaWM6CisgICAg
CisgICAgdXNpbmcgV2ViWFJSZW5kZXJpbmdDb250ZXh0ID0gV1RGOjpWYXJpYW50PAorICAgICAg
ICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAg
ICAgICBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4KKyNlbHNlCisgICAgICAgIFdURjo6
TW9ub3N0YXRlCisjZW5kaWYKKyAgICA+OworCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxX
ZWJYUldlYkdMTGF5ZXI+PiBjcmVhdGUoY29uc3QgV2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJp
bmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsKKyAgICB+V2ViWFJXZWJHTExh
eWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygpIGNvbnN0OworICAgIGJvb2wgaWdub3JlRGVw
dGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0IFdlYkdMRnJhbWVidWZmZXImIGZyYW1lYnVm
ZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0OworICAg
IHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkgY29uc3Q7CisKKyAgICBSZWZQdHI8V2ViWFJW
aWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgV2ViWFJWaWV3Jik7CisKKyAgICBzdGF0aWMgZG91
YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgV2ViWFJTZXNzaW9uJik7
CisKK3ByaXZhdGU6CisgICAgV2ViWFJXZWJHTExheWVyKGNvbnN0IFdlYlhSU2Vzc2lvbiYsIFdl
YlhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7CisKKyAgICBX
ZWJYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxpYXMgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisKKyAgICBz
dHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0OworICAgICAg
ICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9Owor
ICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJXZWJHTExheWVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGJhZDM3YmQ3YzJhMzljZTE2OWEwNjY0
NGY4YTQ5NTljZWI5NjYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaWRsCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQpIFdlYlhSV2ViR0xSZW5kZXJpbmdDb250ZXh0OworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKFdlYlhSU2Vzc2lvbiBzZXNzaW9uLCBX
ZWJYUldlYkdMUmVuZGVyaW5nQ29udGV4dCBjb250ZXh0LCBvcHRpb25hbCBYUldlYkdMTGF5ZXJJ
bml0IGxheWVySW5pdCksCisgICAgQ29uc3RydWN0b3JNYXlUaHJvd0V4Y2VwdGlvbiwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJXZWJHTExheWVy
CitdIGludGVyZmFjZSBXZWJYUldlYkdMTGF5ZXIgeworICAgIC8vIEF0dHJpYnV0ZXMKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhbnRpYWxpYXM7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaWdub3JlRGVwdGhWYWx1ZXM7CisKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXI7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJhbWVidWZmZXJXaWR0aDsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmcmFtZWJ1ZmZlckhlaWdodDsKKworICAgIC8vIE1ldGhv
ZHMKKyAgICBXZWJYUlZpZXdwb3J0PyBnZXRWaWV3cG9ydChXZWJYUlZpZXcgdmlldyk7CisKKyAg
ICAvLyBTdGF0aWMgTWV0aG9kcworICAgIHN0YXRpYyBkb3VibGUgZ2V0TmF0aXZlRnJhbWVidWZm
ZXJTY2FsZUZhY3RvcihXZWJYUlNlc3Npb24gc2Vzc2lvbik7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NmY0MDcyYTcxNWNkZjVjYjcxMzNiMzI5ZjljYjhlYTU3ODc2MGZmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRN
b2RlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52
aXJvbm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBo
YUJsZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmly
b25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWZhMDg4Y2ZjZWQ2MTA5ZTljY2IyMWRl
ZjNjNDExZTg4Y2EzOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFs
PVdFQlhSCitdIGVudW0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisg
ICAgImFkZGl0aXZlIiwKKyAgICAiYWxwaGEtYmxlbmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMWVhN2UxZTdkODIyNjMyNWY2MGM4MjZmZmZiYzBi
OWJhNGQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSRXllLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhS
RXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAgUmlnaHQsCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJFeWUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZDFlNDMwNGE2MmVhNjU5MzcwMzU0NjU5
NTQ0MDM5NjIwMzgzOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJF
eWUgeworICAgICJub25lIiwKKyAgICAibGVmdCIsCisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTg1MDQ5NzY4ODRlYzE4ZWVmMzgxZWRhY2MyYTUzNTRmMWNmMjgzMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVl
c3RDYWxsYmFjay5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgor
I2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUkZyYW1lOworCitjbGFzcyBYUkZy
YW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8WFJGcmFtZVJlcXVlc3RDYWxs
YmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0
aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBDYWxsYmFj
a1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUgaGlnaFJlc1RpbWVNcywgV2ViWFJGcmFt
ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJh
bWVSZXF1ZXN0Q2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YjE1MWEzMWJhZjhlN2I5ODBiMTJm
NTI1MDk0ODRmYzU5NDgxN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworWworICAg
IENvbmRpdGlvbmFsPVdFQlhSCitdIGNhbGxiYWNrIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB2
b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUsIFdlYlhSRnJhbWUgZnJhbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMzMzAz
NGQwY2Q0OWFjOGRlZTkwMmEwODE2NDQ4MDQzNzhjYmMyYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSSGFuZGVkbmVzcyB7CisgICAgTm9uZSwK
KyAgICBMZWZ0LAorICAgIFJpZ2h0LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkhhbmRlZG5lc3MuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZjcwNWE2MDBiZWViYjIxZTgxZDgxMmYyZDdk
MGM3MmM1MDZmMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSGFuZGVkbmVzcy5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVt
IFhSSGFuZGVkbmVzcyB7CisgICAgIm5vbmUiLAorICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZl
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIyNjMxYWI1NTI5NzA1NmNjMDYzZDc0NDY4OWQzZTAzM2NhMGZh
NTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5w
dXRTb3VyY2VFdmVudC5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUV2ZW50LmgiCisKKyNpZiBFTkFC
TEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1
dFNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlRXZl
bnQ+IFhSSW5wdXRTb3VyY2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFhSSW5wdXRTb3VyY2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VFdmVudDo6WFJJbnB1dFNvdXJjZUV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQg
aXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAg
ICAsIG1fZnJhbWUoaW5pdGlhbGl6ZXIuZnJhbWUpCisgICAgLCBtX2lucHV0U291cmNlKGluaXRp
YWxpemVyLmlucHV0U291cmNlKQorICAgICwgbV9idXR0b25JbmRleChpbml0aWFsaXplci5idXR0
b25JbmRleCkKK3sKKyAgICBBU1NFUlQobV9mcmFtZSk7CisgICAgQVNTRVJUKG1faW5wdXRTb3Vy
Y2UpOworfQorCitYUklucHV0U291cmNlRXZlbnQ6On5YUklucHV0U291cmNlRXZlbnQoKSA9IGRl
ZmF1bHQ7CisKK2NvbnN0IFdlYlhSRnJhbWUmIFhSSW5wdXRTb3VyY2VFdmVudDo6ZnJhbWUoKSBj
b25zdAoreworICAgIHJldHVybiAqbV9mcmFtZTsKK30KKworY29uc3QgV2ViWFJJbnB1dFNvdXJj
ZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjppbnB1dFNvdXJjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICptX2lucHV0U291cmNlOworfQorCitPcHRpb25hbDxpbnQ+IFhSSW5wdXRTb3VyY2VFdmVudDo6
YnV0dG9uSW5kZXgoKSBjb25zdAoreworICAgIHJldHVybiBtX2J1dHRvbkluZGV4OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YzdmYzA0NzQ3YTJiZjExZWE4YjJmYjdiNWNhOWY0NTRhYzE1MzAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
aApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViWFJGcmFtZTsKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2U7CisKK2NsYXNzIFhSSW5wdXRT
b3VyY2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IElu
aXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQdHI8V2ViWFJGcmFtZT4gZnJhbWU7CisgICAg
ICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlPiBpbnB1dFNvdXJjZTsKKyAgICAgICAgT3B0aW9u
YWw8aW50PiBidXR0b25JbmRleDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxYUklucHV0U291
cmNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VFdmVudCgpOwor
CisgICAgY29uc3QgV2ViWFJGcmFtZSYgZnJhbWUoKSBjb25zdDsKKyAgICBjb25zdCBXZWJYUklu
cHV0U291cmNlJiBpbnB1dFNvdXJjZSgpIGNvbnN0OworICAgIE9wdGlvbmFsPGludD4gYnV0dG9u
SW5kZXgoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUklucHV0U291cmNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhS
RnJhbWU+IG1fZnJhbWU7CisgICAgUmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+IG1faW5wdXRTb3Vy
Y2U7CisgICAgT3B0aW9uYWw8aW50PiBtX2J1dHRvbkluZGV4OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjli
NDhhNjAyZjhiMTI1OWZkODg5OWFlMTY3NWFmYWIyNDQzYmYxNjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBYUklucHV0U291cmNlRXZl
bnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBXZWJYUkZyYW1lIGZyYW1lOworICAg
IHJlcXVpcmVkIFdlYlhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVD
b250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0
eXBlLCBYUklucHV0U291cmNlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorXSBpbnRlcmZhY2Ug
WFJJbnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgV2ViWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIFdlYlhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzA5YzIyZmZlNDU5MDVhMDZmYTFjODkwMDc4NDMwZDcwMTY4MGEwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJjZS5oIgorI2lu
Y2x1ZGUgIldlYlhSU2Vzc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3Rl
ZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNz
aW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAgICwgbV9hZGRlZChpbml0aWFsaXplci5hZGRl
ZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXplci5yZW1vdmVkKQoreworfQorCitYUklucHV0
U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVs
dDsKKworY29uc3QgV2ViWFJTZXNzaW9uJiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNz
aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uOworfQorCitjb25zdCBWZWN0b3I8
UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRk
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2FkZGVkOworfQorCitjb25zdCBWZWN0b3I8UmVm
UHRyPFdlYlhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3Zl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVtb3ZlZDsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZTRlY2M3NzRmOThkYjMwYTIyMjgxODBhOGU2YWI2MzhhMmM0OGExCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBXZWJYUklucHV0U291cmNlOworY2xhc3MgV2ViWFJTZXNzaW9uOworCitjbGFzcyBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxXZWJYUlNlc3Npb24+
IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4+IGFkZGVk
OworICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiByZW1vdmVkOworICAg
IH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8p
OworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoKTsKKworICAgIGNvbnN0
IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
V2ViWFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViWFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYs
IElzVHJ1c3RlZCk7CisKKyAgICBSZWY8V2ViWFJTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVj
dG9yPFJlZlB0cjxXZWJYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRy
PFdlYlhSSW5wdXRTb3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42OGE0NjU5MmI5NmNiZDlmMWZmMTY3YmIxOTEwYTZlMTQ3ZGFlYzA2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmlkbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBX
ZWJYUlNlc3Npb24gc2Vzc2lvbjsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxXZWJYUklucHV0
U291cmNlPiBhZGRlZDsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxXZWJYUklucHV0U291cmNl
PiByZW1vdmVkOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywK
KyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVyZmFjZSBYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJT
ZXNzaW9uIHNlc3Npb247CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96
ZW5BcnJheTxXZWJYUklucHV0U291cmNlPiBhZGRlZDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFdlYlhSSW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODk5YjM0OGI1NWZkMjc5NDM4N2IzZmM4ZjRkMmMwZGYx
MTNjZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgiCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlJlZmVyZW5jZVNwYWNlLmgiCisj
aW5jbHVkZSAiV2ViWFJSaWdpZFRyYW5zZm9ybS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxYUlJlZmVyZW5jZVNwYWNlRXZlbnQ+IFhSUmVmZXJlbmNlU3BhY2VFdmVudDo6Y3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0
ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmVmZXJlbmNlU3Bh
Y2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSUmVmZXJlbmNl
U3BhY2VFdmVudDo6WFJSZWZlcmVuY2VTcGFjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVmZXJlbmNlU3BhY2Uo
aW5pdGlhbGl6ZXIucmVmZXJlbmNlU3BhY2UpCisgICAgLCBtX3RyYW5zZm9ybShpbml0aWFsaXpl
ci50cmFuc2Zvcm0pCit7CisgICAgQVNTRVJUKG1fcmVmZXJlbmNlU3BhY2UpOworICAgIEFTU0VS
VChtX3RyYW5zZm9ybSk7Cit9CisKK1hSUmVmZXJlbmNlU3BhY2VFdmVudDo6flhSUmVmZXJlbmNl
U3BhY2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYgWFJS
ZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICptX3JlZmVyZW5jZVNwYWNlOworfQorCitjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX3Ry
YW5zZm9ybTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVy
ZW5jZVNwYWNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1MjBhN2NkZjE5MDA5OTE0NDMyZGZiYTllNzU4
Yjg4ZjNlZDhmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV2ZW50Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgV2ViWFJS
aWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZUV2ZW50IDogcHVibGljIEV2
ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJl
ZlB0cjxXZWJYUlJlZmVyZW5jZVNwYWNlPiByZWZlcmVuY2VTcGFjZTsKKyAgICAgICAgUmVmUHRy
PFdlYlhSUmlnaWRUcmFuc2Zvcm0+IHRyYW5zZm9ybTsKKyAgICB9OworCisgICAgc3RhdGljIFJl
ZjxYUlJlZmVyZW5jZVNwYWNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3Qg
SW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSUmVmZXJl
bmNlU3BhY2VFdmVudCgpOworCisgICAgY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYgcmVmZXJl
bmNlU3BhY2UoKSBjb25zdDsKKyAgICBjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zv
cm0oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlJlZmVyZW5jZVNwYWNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhS
UmVmZXJlbmNlU3BhY2U+IG1fcmVmZXJlbmNlU3BhY2U7CisgICAgUmVmUHRyPFdlYlhSUmlnaWRU
cmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2OWMxNGMzNTgz
ZjEzZWY4ZDdjYWI0YzhjOTMxM2Q5NzEyYzJkNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBYUlJlZmVyZW5jZVNwYWNlRXZlbnRJ
bml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBXZWJYUlJlZmVyZW5jZVNwYWNlIHJlZmVy
ZW5jZVNwYWNlOworICAgIFdlYlhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKKworWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAg
U2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01T
dHJpbmcgdHlwZSwgWFJSZWZlcmVuY2VTcGFjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKK10g
aW50ZXJmYWNlIFhSUmVmZXJlbmNlU3BhY2VFdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSUmVmZXJlbmNlU3BhY2UgcmVmZXJlbmNlU3BhY2U7
CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3Jt
IHRyYW5zZm9ybTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSUmVmZXJlbmNlU3BhY2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQzNTg5NmFiOWMyNDA2NTAyMjUyYmQw
MjkxYzU1MGIwZDkzNThkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgWFJSZWZlcmVuY2VTcGFjZVR5cGUgeworICAgIFZpZXdlciwK
KyAgICBMb2NhbCwKKyAgICBMb2NhbEZsb29yLAorICAgIEJvdW5kZWRGbG9vciwKKyAgICBVbmJv
dW5kZWQKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI5OTZiYmU5MGVmNGRjM2VlZmY5YzNjNWZiZjc5
ZGM5MGNlNTQ1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIK
K10gZW51bSBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7CisgICAgInZpZXdlciIsCisgICAgImxvY2Fs
IiwKKyAgICAibG9jYWwtZmxvb3IiLAorICAgICJib3VuZGVkLWZsb29yIiwKKyAgICAidW5ib3Vu
ZGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5k
ZXJTdGF0ZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0
ZUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MDcxODBiMGUwZjc4MmMyMTc2Nzk5MzdiMTRjOTg3YjNiNGYx
MjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlSW5pdC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUldlYkdMTGF5ZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBk
ZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBSZWZQ
dHI8V2ViWFJXZWJHTExheWVyPiBiYXNlTGF5ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MGVhZTRiMmE5
ZDQxZjk0ZGE3Y2IyNWNiMDk5YmE1ZTJhZWMxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBk
b3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBkZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5l
VmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBXZWJYUldlYkdMTGF5ZXI/IGJhc2VMYXllcjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmODc0OGM4YTAxYTI4ZGViNmI1NDgxZmNjNTRhN2MxZDg3ZTZkY2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJYUlNlc3Npb25FdmVudC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5j
bHVkZSAiV2ViWFJTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSU2Vz
c2lvbkV2ZW50PiBYUlNlc3Npb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFhSU2Vzc2lvbkV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1Ry
dXN0ZWQpKTsKK30KKworWFJTZXNzaW9uRXZlbnQ6OlhSU2Vzc2lvbkV2ZW50KGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVk
KQorICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICAsIG1fc2Vz
c2lvbihpbml0aWFsaXplci5zZXNzaW9uKQoreworICAgIEFTU0VSVChtX3Nlc3Npb24pOworfQor
CitYUlNlc3Npb25FdmVudDo6flhSU2Vzc2lvbkV2ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBX
ZWJYUlNlc3Npb24mIFhSU2Vzc2lvbkV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gKm1fc2Vzc2lvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25F
dmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjllOGNlYjQwNzJkNWVjZjY5YWYwZWZiZTcwYjNmOWY4NjQ0YWY5
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbkV2ZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV2ViWFJTZXNzaW9uOworCitjbGFzcyBYUlNlc3Npb25FdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudElu
aXQgeworICAgICAgICBSZWZQdHI8V2ViWFJTZXNzaW9uPiBzZXNzaW9uOworICAgIH07CisKKyAg
ICBzdGF0aWMgUmVmPFhSU2Vzc2lvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNv
bnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUlNl
c3Npb25FdmVudCgpOworCisgICAgY29uc3QgV2ViWFJTZXNzaW9uJiBzZXNzaW9uKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgWFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0
IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhSU2Vzc2lvbj4gbV9zZXNzaW9u
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NzE5MzNmMjk1ZTU0NDEwZWQ2MGY2MzkwYWU1YzI4NGYyYmM5MjI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBYUlNlc3Np
b25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFdlYlhSU2Vzc2lvbiBzZXNz
aW9uOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9u
YWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJTZXNzaW9uRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QpLAorXSBpbnRlcmZhY2UgWFJTZXNzaW9uRXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNlc3Npb24gc2Vzc2lvbjsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MmEy
NjgyMjk2ZTJlZDQ5MWE3N2I0MmQ4NzQwMDBhMmNlYjY5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBYUlNlc3Npb25Jbml0IHsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVl
PiByZXF1aXJlZEZlYXR1cmVzOworICAgIFZlY3RvcjxKU0M6OkpTVmFsdWU+IG9wdGlvbmFsRmVh
dHVyZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lv
bkluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDVjMGQ1MDcyNDVkNWE4Mzc5Y2M2MjU5NWFjNTUxOWY5YTBkZGExCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25J
bml0LmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSU2Vz
c2lvbkluaXQgeworICAgIHNlcXVlbmNlPGFueT4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICBzZXF1
ZW5jZTxhbnk+IG9wdGlvbmFsRmVhdHVyZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbk1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzFhOWRhNTg0YmMwYTJkZjRkODFk
YjA5ODQxMmQxZjI5NWIxZjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlBsYXRmb3Jt
WFIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBYUlNlc3Npb25Nb2RlID0gUGxh
dGZvcm1YUjo6U2Vzc2lvbk1vZGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uTW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbk1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NWY2MDZiNDY5NzlhMTJkN2MxNGMzNmIzMTU3NzEy
OGQyYjFjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbk1vZGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBY
UlNlc3Npb25Nb2RlIHsKKyAgICAiaW5saW5lIiwKKyAgICAiaW1tZXJzaXZlLXZyIiwKKyAgICAi
aW1tZXJzaXZlLWFyIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJUYXJnZXRSYXlNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFy
Z2V0UmF5TW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmY2E0NGU0NTFiOTdjNTYwMjZlMTQ1YjUyMjMzMWY4
MTY1YmFlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVGFyZ2V0UmF5TW9kZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBYUlRhcmdldFJheU1vZGUgeworICAgIEdhemUsCisgICAgVHJhY2tlZFBvaW50ZXIs
CisgICAgU2NyZWVuLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlRhcmdldFJheU1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdl
dFJheU1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZTU0NjNkMzRjZjY2ZTY4YzNjMjFiMzQ2YmJiOTc3
M2FiZDhhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVGFyZ2V0UmF5TW9kZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVt
IFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgImdhemUiLAorICAgICJ0cmFja2VkLXBvaW50ZXIiLAor
ICAgICJzY3JlZW4iCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZp
c2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZGQ4NTk3OGQ5ZDAxZmY3OTM2MmM3YzBiYjg1
OGQ3NzdmYjI5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFhSVmlzaWJpbGl0eVN0YXRlIHsKKyAgICBWaXNpYmxlLAorICAgIFZpc2li
bGVCbHVycmVkLAorICAgIEhpZGRlbgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWVmMjc1ODBmYzE5OGYzNjc5
NzFjMzg4YzBmOThmZmM5ZDZmZThlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25h
bD1XRUJYUgorXSBlbnVtIFhSVmlzaWJpbGl0eVN0YXRlIHsKKyAgICAidmlzaWJsZSIsCisgICAg
InZpc2libGUtYmx1cnJlZCIsCisgICAgImhpZGRlbiIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNDRkNTEwYTBl
ZjRlYzFkYzg5OTFmNTRmMmIwMDdkZDAzOGU3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBYUldlYkdMTGF5ZXJJbml0IHsKKyAgICBib29sIGFu
dGlhbGlhcyB7IHRydWUgfTsKKyAgICBib29sIGRlcHRoIHsgdHJ1ZSB9OworICAgIGJvb2wgc3Rl
bmNpbCB7IGZhbHNlIH07CisgICAgYm9vbCBhbHBoYSB7IHRydWUgfTsKKyAgICBib29sIGlnbm9y
ZURlcHRoVmFsdWVzIHsgdHJ1ZSB9OworICAgIGRvdWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9y
IHsgMS4wIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2Vi
R0xMYXllckluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXJJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTQzNmQyYjU0MzJjY2Y5ODUyYWNhZGViNzBkNDMyZTVh
NTUzYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UldlYkdMTGF5ZXJJbml0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0
aW9uYXJ5IFhSV2ViR0xMYXllckluaXQgeworICAgIGJvb2xlYW4gYW50aWFsaWFzID0gdHJ1ZTsK
KyAgICBib29sZWFuIGRlcHRoID0gdHJ1ZTsKKyAgICBib29sZWFuIHN0ZW5jaWwgPSBmYWxzZTsK
KyAgICBib29sZWFuIGFscGhhID0gdHJ1ZTsKKyAgICBib29sZWFuIGlnbm9yZURlcHRoVmFsdWVz
ID0gZmFsc2U7CisgICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IgPSAxLjA7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFl
ODAxYjQuLjgxZGFmZTU5YjUxMDg2NjM4Y2U2NjRkMjA3MTQ0ZDQwYmUyODE1ODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTM5NCw2ICszOTQsOCBAQCBFTkFCTEVfV0VCR1BVX2FwcGxldHZvcyA9
IEVOQUJMRV9XRUJHUFU7CiBFTkFCTEVfV0VCR1BVX21hY29zeCA9ICQoRU5BQkxFX1dFQkdQVSQo
V0tfTUFDT1NfMTAxNCkpOwogRU5BQkxFX1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0ID0gRU5BQkxF
X1dFQkdQVTsKIAorRU5BQkxFX1dFQlhSID0gRU5BQkxFX1dFQlhSOworCiBFTkFCTEVfV0VCX0FQ
SV9TVEFUSVNUSUNTID0gOwogCiBFTkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsK
QEAgLTQxNCw0ICs0MTYsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5B
QkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNM
VDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQo
RU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9W
OSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxF
TUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcp
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykg
JChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQo
RU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQo
RU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQo
RU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9D
U1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQo
RU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VY
UEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVf
R0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lO
UFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNU
T1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAk
KEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5U
UykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9D
T05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NP
VVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAk
KEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVf
TUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NU
QU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9O
KSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJG
TE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9Q
REZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZG
SVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5B
QkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChF
TkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkg
JChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChF
TkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5B
QkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxF
X1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRT
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikg
JChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVS
X0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAk
KEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVf
V0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJM
RV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExF
X1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElD
QVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhU
KSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJ
VElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElO
R19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZ
KSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JU
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJF
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJ
T05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9D
T0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVU
VEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FN
UExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxF
X05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JL
X0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZF
UikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JB
TkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNP
Tk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VS
KSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxF
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVT
U0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVS
X01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChF
TkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dF
Ql9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVf
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
UEUuY21ha2UKaW5kZXggMGQ1OTgyZTFkYzY5ZWI2ODBmMDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4u
ZTc1ZWNlZjE0MGFiNWNlZWYxZDBkNmRiYzA2NmUzNWM5MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XUEUuY21ha2UKQEAgLTcwLDMgKzcwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1f
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7VVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9CiAgICAg
JHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9CiApCisKK2lmIChVU0VfT1BFTlhSKQorICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTlhSX0xJQlJBUklFU30pCisgICAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke09QRU5YUl9J
TkNMVURFX0RJUlN9KQorZW5kaWYgKCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDc3ODI2M2U0YTBiMzE3MzFlM2I1ZjY0ODEwODljMWQwZTMxODU0ODAuLjQw
MWNhZDRhYTVmNDJiNjNiNDU5MGM1MGU0ODQzNTUxM2U5ZGZkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC00MTEsNiArNDExLDMxIEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1
bGVzL3dlYmdwdS9XZWJHUFVUZXh0dXJlVmlldy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5h
dmlnYXRvckdQVS5jcHAKIAorI2lmIEVOQUJMRV9XRUJYUgorCitNb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcCBAbm8t
dW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBAbm8tdW5pZnkK
K01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dl
YnhyL1dlYlhSUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcCBA
bm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgQG5vLXVuaWZ5
CitNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhy
L1dlYlhSU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAg
QG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5jcHAgQG5vLXVuaWZ5CitNb2R1bGVz
L3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld3BvcnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3Bw
IEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwIEBuby11bmlm
eQorTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBAbm8tdW5pZnkK
K01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVs
ZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorCisjZW5kaWYKKwogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwCiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkBA
IC0yMDc3LDYgKzIxMDIsOSBAQCBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKIHBsYXRm
b3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRF
bmNvZGluZ1JlZ2lzdHJ5LmNwcAogCitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5p
ZnkKK3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKKwogcGx1Z2lu
cy9ET01NaW1lVHlwZS5jcHAKIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKIHBsdWdpbnMv
RE9NUGx1Z2luLmNwcApAQCAtMzUyNCw2ICszNTUyLDQxIEBAIEpTWFBhdGhOU1Jlc29sdmVyLmNw
cAogSlNYUGF0aFJlc3VsdC5jcHAKIEpTWFNMVFByb2Nlc3Nvci5jcHAKIAorI2lmIEVOQUJMRV9X
RUJHTAorCitKU1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVudmlyb25tZW50
QmxlbmRNb2RlLmNwcAorSlNYUkV5ZS5jcHAKK0pTV2ViWFJGcmFtZS5jcHAKK0pTWFJGcmFtZVJl
cXVlc3RDYWxsYmFjay5jcHAKK0pTWFJIYW5kZWRuZXNzLmNwcAorSlNXZWJYUklucHV0U291cmNl
LmNwcAorSlNXZWJYUklucHV0U291cmNlQXJyYXkuY3BwCitKU1hSSW5wdXRTb3VyY2VFdmVudC5j
cHAKK0pTWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKK0pTV2ViWFJQb3NlLmNwcAorSlNX
ZWJYUlJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hS
UmVmZXJlbmNlU3BhY2VUeXBlLmNwcAorSlNXZWJYUlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRl
clN0YXRlSW5pdC5jcHAKK0pTV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTV2ViWFJTZXNzaW9u
LmNwcAorSlNYUlNlc3Npb25FdmVudC5jcHAKK0pTWFJTZXNzaW9uSW5pdC5jcHAKK0pTWFJTZXNz
aW9uTW9kZS5jcHAKK0pTV2ViWFJTcGFjZS5jcHAKK0pTV2ViWFJTeXN0ZW0uY3BwCitKU1hSVGFy
Z2V0UmF5TW9kZS5jcHAKK0pTV2ViWFJWaWV3LmNwcAorSlNXZWJYUlZpZXdlclBvc2UuY3BwCitK
U1dlYlhSVmlld3BvcnQuY3BwCitKU1hSVmlzaWJpbGl0eVN0YXRlLmNwcAorSlNXZWJYUldlYkdM
TGF5ZXIuY3BwCitKU1hSV2ViR0xMYXllckluaXQuY3BwCisKKyNlbmRpZgorCiAjaWYgRU5BQkxF
X0dBTUVQQUQKIAogSlNHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDczZjNhOWY4YjY1ZTNkMTdkOThjZGEyZmRm
ZDIwMjZmNWUyMDkxMTQuLjg2YWU4NTg5YTUxYjhjYTNmZGQ2OTUyNDI5NjM1ZGJlZjFlMzFhNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTQ4MTYsNiArNDgxNiw2MCBAQAogCQlFMUU2RUVBODBCNjI4REIzMDA1RjJGNzAgLyog
SlNIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFNkVFQTcwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1l
bnQuaCAqLzsgfTsKIAkJRTFFQzI5QTAwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFQzI5OUUw
QkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxRUQ4QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBD
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUUxRUU4QjcwMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjZDMjQxMkIy
QTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCAqLzsgfTsKKwkJRTFFRThCNzEyNDEyQjJBODAw
RTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3Bw
ICovOyB9OworCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCNkYyNDEyQjJB
NzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCAqLzsgfTsKKwkJRTFFRThCNzYyNDEzMTkxRjAwRTc5
NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9z
ZS5oICovOyB9OworCQlFMUVFOEI3NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFj
ZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUM5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oICovOyB9Owor
CQlFMUVFOEI3ODI0MTMxOTFGMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNBMjQxMkIxNzAwMEU3
OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovOyB9OworCQlFMUVFOEI3OTI0MTMxOTFGMDBFNzk0
RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRl
SW5pdC5oICovOyB9OworCQlFMUVFOEI3QTI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJj
ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QUNDMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICovOyB9
OworCQlFMUVFOEI3QjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDRDI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi87IH07CisJCUUxRUU4
QjdDMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNFMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlJlbmRlclN0YXRlLmNwcCAqLzsgfTsKKwkJRTFFRThCN0QyNDEzMTkxRjAwRTc5
NEQ2IC8qIFdlYlhSU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU4QUNGMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmggKi87IH07
CisJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThB
RDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggKi87IH07
CisJCUUxRUU4QjdGMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQyMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLzsgfTsKKwkJRTFFRThC
ODAyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQzMjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi87IH07CisJCUUx
RUU4QjgxMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFENTI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5oICovOyB9OworCQlFMUVFOEI4MjI0MTMxOTFGMDBFNzk0
RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlT
dGF0ZS5oICovOyB9OworCQlFMUVFOEI4MzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJXZWJHTExh
eWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwICovOyB9OworCQlF
MUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEQjI0MTJCMTcw
MDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggKi87IH07CisJCUUxRUU4Qjg1MjQx
MzE5MUYwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJT
ZXNzaW9uRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEI4NjI0MTMxOTFGMDBFNzk0RDYgLyogV2Vi
WFJJbnB1dFNvdXJjZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmggKi87IH07CisJCUUxRUU4Qjg3MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUwMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLzsgfTsKKwkJRTFFRThCODgyNDEzMTkxRjAw
RTc5NEQ2IC8qIFdlYlhSUG9zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5oICovOyB9
OworCQlFMUVFOEI4OTI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUyMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUlN5c3RlbS5oICovOyB9OworCQlFMUVFOEI4QTI0MTMxOTFGMDBFNzk0RDYg
LyogV2ViWFJGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCAqLzsgfTsKKwkJ
RTFFRThCOEIyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNTI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJQb3NlLmNwcCAqLzsgfTsKKwkJRTFFRThCOEMyNDEzMTkxRjAwRTc5NEQ2IC8qIFdl
YlhSSW5wdXRTb3VyY2VBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJj
ZUFycmF5LmNwcCAqLzsgfTsKKwkJRTFFRThCOEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lv
bkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFFNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAqLzsgfTsKKwkJRTFF
RThCOEUyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU4MjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlN5c3RlbS5jcHAgKi87IH07CisJCUUxRUU4QjhGMjQxMzE5NTAwMEU3OTRENiAvKiBY
UkZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RD
YWxsYmFjay5oICovOyB9OworCQlFMUVFOEI5MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJUYXJnZXRS
YXlNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFFQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi87IH07CisJCUUx
RUU4QjkxMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUVCMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlZpZXdwb3J0LmNwcCAqLzsgfTsKKwkJRTFFRThCOTIyNDEzMTk1MDAwRTc5NEQ2
IC8qIFhSSGFuZGVkbmVzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRThBRUUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovOyB9
OworCQlFMUVFOEI5MzI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGMDI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi87IH07CisJCUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRE
NiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIu
Y3BwICovOyB9OworCQlFMUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QUYzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwICov
OyB9OworCQlFMUVFOEI5NjI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjQyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuaCAqLzsgfTsKKwkJRTFFRThCOTcyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUVFOEFGNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaCAqLzsgfTsKKwkJRTFF
RThCOTgyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjgyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSU3BhY2UuY3BwICovOyB9OworCQlFMUVFOEI5OTI0MTMxOTUwMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQuaCAqLzsgfTsKKwkJRTFFRThCOUEyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vz
c2lvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QUZFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmggKi87IH07CisJCUUx
RUU4QjlCMjQxMzE5NTAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAv
KiBYUldlYkdMTGF5ZXIuaCAqLzsgfTsKKwkJRTFFRThCOUMyNDEzMTk1MDAwRTc5NEQ2IC8qIFhS
RW52aXJvbm1lbnRCbGVuZE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50Qmxl
bmRNb2RlLmggKi87IH07CisJCUUxRUU4QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlJpZ2lk
VHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5oICovOyB9
OworCQlFMUVFOEI5RTI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDgyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaCAqLzsgfTsKKwkJRTFFRThCOUYyNDEzMTk1
MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5w
dXRTb3VyY2VFdmVudC5oICovOyB9OworCQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYgLyogV2Vi
WFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3BwICov
OyB9OworCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwRDI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAgKi87IH07CisJCUUxRUU4QkEy
MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSU2Vzc2lvbi5jcHAgKi87IH07CisJCUUxRUU4QkEzMjQxMzE5NjMwMEU3OTRENiAvKiBXZWJY
UlNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uaCAqLzsgfTsKKwkJRTFF
RThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJWaWV3LmNwcCAqLzsgfTsKKwkJRTFFRThCQTUyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vz
c2lvbkluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QjEzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggKi87IH07CisJCUUx
RUU4QkE2MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNDI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oICovOyB9OworCQlFMUVFOEJBNzI0MTMxOTYz
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4QkE4MjQxMzE5
NjMwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJ
bnB1dFNvdXJjZS5oICovOyB9OwogCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4
dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjFFODJFMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovOyB9OwogCQlF
MUY4MEI4ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGODBCODYxODMxNzI1MjAwNzg4NUMz
IC8qIENyeXB0b0tleVBhaXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFMUY4MEI4RTE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWly
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4
QzE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggKi87IH07CkBAIC0xNTE1NCw2
ICsxNTIwOCw5MSBAQAogCQlFMUVDMjk5RDBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoTm9kZVNldC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3
QiAvKiBYUGF0aE5vZGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBh
dGhOb2RlU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUQ4QUMyMENDNDlC
RTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFdlYlhSVmll
d2VyUG9zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlZpZXdlclBv
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzgyNDEyQjE2RjAwRTc5
NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lv
bk1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDOTI0MTJCMTcw
MDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBQ0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldlYlhSLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRl
clN0YXRlSW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlJlbmRlclN0
YXRlSW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDQzI0MTJCMTcw
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNm
b3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSUmlnaWRU
cmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDRTI0MTJC
MTcwMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJYUlJlbmRlclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJTcGFjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEMTI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJl
bmNlU3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJS
ZWZlcmVuY2VTcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQz
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ0MjQxMkIxNzAwMEU3
OTRENiAvKiBYUlNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNwYWNlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUmVuZGVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
WFJSZW5kZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFENjI0
MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFJWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBRDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJXZWJHTExheWVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSV2ViR0xMYXll
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3
OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJW
aXNpYmlsaXR5U3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFE
QTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VT
cGFjZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURDMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYUlNlc3Npb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZUFycmF5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURFMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlNlc3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURGMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlZpZXcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlldy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZp
ZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJWaWV3Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlBvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJQb3NlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlN5c3Rl
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFMzI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJY
UkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU0MjQxMkIxNzAw
MEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlBvc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJ
bnB1dFNvdXJjZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlhSSW5wdXRTb3VyY2VBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJTeXN0ZW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJUYXJnZXRSYXlNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSVmlld3BvcnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0
RDYgLyogWFJSZW5kZXJTdGF0ZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVu
ZGVyU3RhdGVJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUQy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSVmlld2VyUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gWFJWaWV3ZXJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThB
RUUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBYUkhhbmRlZG5lc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThBRUYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUkZyYW1lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjEyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRv
cldlYlhSLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRv
cldlYlhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjIyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhS
UmVuZGVyU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGMzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlZpZXdwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSVmlld3Bv
cnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjUyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSRXllLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSRXllLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY2MjQxMkIxNzAwMEU3OTRENiAv
KiBYUlJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5j
ZVNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjcyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSU3BhY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
UklucHV0U291cmNlc0NoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUZBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJl
cXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJGcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZDMjQxMkIx
NzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhS
V2ViR0xMYXllci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZEMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gWFJTZXNzaW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFGRTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYUlNlc3Npb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QUZGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVGFyZ2V0UmF5TW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QjAwMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNl
RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAxMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlJpZ2lkVHJhbnNmb3JtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJpZ2lkVHJh
bnNmb3JtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDIyNDEyQjE3
MDAwRTc5NEQ2IC8qIFhSU3lzdGVtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlN5c3Rl
bS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAzMjQxMkIxNzAwMEU3
OTRENiAvKiBYUkV5ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJFeWUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJX
ZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSV2ViR0xMYXll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBYUkVudmlyb25tZW50QmxlbmRNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjA2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSUmlnaWRUcmFuc2Zvcm0uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDcyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSSGFuZGVkbmVzcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJIYW5kZWRuZXNzLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDgyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSV2ViR0xMYXllckluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFJXZWJHTExheWVySW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIw
OTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEIwQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJWaWV3ZXJQb3Nl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEMyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSRnJhbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRnJhbWUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJJbnB1dFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJYUklucHV0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThCMEUyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOYXZpZ2F0b3JXZWJYUi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QjBGMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJTZXNzaW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xM
YXllckluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSV2ViR0xMYXllckluaXQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMTI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhS
U2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMjI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlhSVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QjEzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhSU2Vzc2lvbkluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThCMTQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJSZWZlcmVuY2VTcGFjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTFFRThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxODI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1
dFNvdXJjZUFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlQXJy
YXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEI2QzI0MTJCMkE3MDBF
Nzk0RDYgLyogUGxhdGZvcm1YUi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQbGF0Zm9ybVhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThC
NkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1YUi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtWFIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFGMUU4MkQwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkx
IC8qIFhTTFRFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhT
TFRFeHRlbnNpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRjgwQjg0MTgz
MTcyNDcwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcnlwdG9LZXlQYWlyLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzk0LDYgKzIyNTMzLDcgQEAKIAkJ
CQk5OTZFNTlEQTFERjAwRDQ1MDA2NjEyQjkgLyogd2ViZHJpdmVyICovLAogCQkJCUQwMEY1OTNF
MjE2RUNDNDMwMDBENzFEQiAvKiB3ZWJncHUgKi8sCiAJCQkJOTdBQUJDRjcxNEZBMDlCNTAwNzQ1
N0FFIC8qIHdlYnNvY2tldHMgKi8sCisJCQkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdl
YnhyICovLAogCQkJKTsKIAkJCXBhdGggPSBNb2R1bGVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTI1OTQ0LDYgKzI2MDg0LDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1
QjQgLyogbmV0d29yayAqLywKIAkJCQkxQTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICov
LAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAorCQkJCUUxRUU4QjZC
MjQxMkIyQTcwMEU3OTRENiAvKiB4ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYg
LyogQWJvcnRhYmxlVGFza1F1ZXVlLmggKi8sCiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBB
IC8qIENhbGN1bGF0aW9uVmFsdWUuY3BwICovLAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIw
QSAvKiBDYWxjdWxhdGlvblZhbHVlLmggKi8sCkBAIC0yNzAzNiw2ICsyNzE3NywxMTMgQEAKIAkJ
CW5hbWUgPSBUaHJlYWRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFF
RThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdh
dG9yV2ViWFIuY3BwICovLAorCQkJCUUxRUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0
b3JXZWJYUi5oICovLAorCQkJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JX
ZWJYUi5pZGwgKi8sCisJCQkJRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLywKKwkJCQlFMUVFOEFGMDI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8sCisJCQkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSRnJhbWUuaCAqLywKKwkJCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJJbnB1dFNvdXJjZS5jcHAgKi8sCisJCQkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSSW5wdXRTb3VyY2UuaCAqLywKKwkJCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJJbnB1dFNvdXJjZUFycmF5LmNwcCAqLywKKwkJCQlFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmggKi8sCisJCQkJRTFFRThBRTUyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8sCisJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUG9zZS5oICovLAorCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJl
ZmVyZW5jZVNwYWNlLmNwcCAqLywKKwkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlJlbmRlclN0YXRlLmNwcCAqLywKKwkJCQlFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJSZW5kZXJTdGF0ZS5oICovLAorCQkJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCAqLywKKwkJCQlFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJSaWdpZFRyYW5zZm9ybS5oICovLAorCQkJCUUxRUU4QjBGMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlNlc3Npb24uY3BwICovLAorCQkJCUUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlNlc3Npb24uaCAqLywKKwkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJTcGFjZS5jcHAgKi8sCisJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3Bh
Y2UuaCAqLywKKwkJCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3Bw
ICovLAorCQkJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5oICovLAor
CQkJCUUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovLAorCQkJCUUx
RUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLywKKwkJCQlFMUVFOEIwQjI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCAqLywKKwkJCQlFMUVFOEFDNzI0
MTJCMTZGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi8sCisJCQkJRTFFRThBRUIyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwICovLAorCQkJCUUxRUU4QUY0MjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmggKi8sCisJCQkJRTFFRThBRDgyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgKi8sCisJCQkJRTFFRThBRjcyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLywKKwkJCQlFMUVFOEIwNTI0
MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oICovLAorCQkJCUUxRUU4
QURBMjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCAqLywKKwkJ
CQlFMUVFOEFGNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaCAqLywKKwkJCQlFMUVFOEIwMzI0
MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaWRsICovLAorCQkJCUUxRUU4QjBDMjQxMkIxNzAwMEU3
OTRENiAvKiBYUkZyYW1lLmlkbCAqLywKKwkJCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oICovLAorCQkJCUUxRUU4QUZCMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbCAqLywKKwkJCQlFMUVFOEFFRTI0MTJCMTcw
MDBFNzk0RDYgLyogWFJIYW5kZWRuZXNzLmggKi8sCisJCQkJRTFFRThCMDcyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSSGFuZGVkbmVzcy5pZGwgKi8sCisJCQkJRTFFRThBRUYyNDEyQjE3MDAwRTc5NEQ2
IC8qIFhSSW5wdXRTb3VyY2UuaWRsICovLAorCQkJCUUxRUU4QjE4MjQxMkIxNzAwMEU3OTRENiAv
KiBYUklucHV0U291cmNlQXJyYXkuaWRsICovLAorCQkJCUUxRUU4QUNDMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QjA5MjQxMkIxNzAwMEU3
OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEIwMDI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEIxNTI0MTJCMTcw
MDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8sCisJCQkJRTFFRThB
RjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLywKKwkJ
CQlFMUVFOEFFNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5p
ZGwgKi8sCisJCQkJRTFFRThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8sCisJ
CQkJRTFFRThBRjYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuaWRsICovLAor
CQkJCUUxRUU4QUYzMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3Bw
ICovLAorCQkJCUUxRUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZl
bnQuaCAqLywKKwkJCQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaCAqLywKKwkJCQlFMUVFOEFGQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZl
cmVuY2VTcGFjZVR5cGUuaWRsICovLAorCQkJCUUxRUU4QUYyMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlJlbmRlclN0YXRlLmlkbCAqLywKKwkJCQlFMUVFOEFDQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJS
ZW5kZXJTdGF0ZUluaXQuaCAqLywKKwkJCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJS
ZW5kZXJTdGF0ZUluaXQuaWRsICovLAorCQkJCUUxRUU4QjAxMjQxMkIxNzAwMEU3OTRENiAvKiBY
UlJpZ2lkVHJhbnNmb3JtLmlkbCAqLywKKwkJCQlFMUVFOEFERTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJTZXNzaW9uLmlkbCAqLywKKwkJCQlFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNz
aW9uRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Np
b25FdmVudC5oICovLAorCQkJCUUxRUU4QUZEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25F
dmVudC5pZGwgKi8sCisJCQkJRTFFRThCMTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbklu
aXQuaCAqLywKKwkJCQlFMUVFOEFENzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5p
ZGwgKi8sCisJCQkJRTFFRThBRkUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaCAq
LywKKwkJCQlFMUVFOEFDODI0MTJCMTZGMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5pZGwgKi8s
CisJCQkJRTFFRThBRDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2UuaWRsICovLAorCQkJCUUx
RUU4QjAyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlN5c3RlbS5pZGwgKi8sCisJCQkJRTFFRThBRUEy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oICovLAorCQkJCUUxRUU4QUZGMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaWRsICovLAorCQkJCUUxRUU4QURGMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlZpZXcuaWRsICovLAorCQkJCUUxRUU4QUVEMjQxMkIxNzAwMEU3
OTRENiAvKiBYUlZpZXdlclBvc2UuaWRsICovLAorCQkJCUUxRUU4QjBBMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlZpZXdwb3J0LmlkbCAqLywKKwkJCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJWaXNpYmlsaXR5U3RhdGUuaCAqLywKKwkJCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJWaXNpYmlsaXR5U3RhdGUuaWRsICovLAorCQkJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAv
KiBYUldlYkdMTGF5ZXIuaCAqLywKKwkJCQlFMUVFOEFGQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJX
ZWJHTExheWVyLmlkbCAqLywKKwkJCQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJH
TExheWVySW5pdC5oICovLAorCQkJCUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdM
TGF5ZXJJbml0LmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VieHI7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OworCQlFMUVFOEI2QjI0MTJCMkE3MDBFNzk0RDYgLyogeHIgKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRUU4QjZEMjQx
MkIyQTcwMEU3OTRENiAvKiBvcGVueHIgKi8sCisJCQkJRTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2
IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQ
bGF0Zm9ybVhSLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHhyOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKKwkJRTFFRThCNkQyNDEyQjJBNzAwRTc5NEQ2IC8qIG9wZW54ciAqLyA9
IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFFRThCNkUyNDEy
QjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJKTsKKwkJCXBhdGggPSBvcGVu
eHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFMUYwNDI0MzA5ODM5Mzg5
MDA2Njk0RUEgLyogeG1sICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTMxNzEzLDYgKzMxOTYxLDcgQEAKIAkJCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIg
LyogTmF2aWdhdG9ySXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVBNzI1RDYxQUNB
QkQ1NzAwRUFEMTdCIC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhS
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGlu
Z0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzQzMEFEQkE1REUw
MEE0NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTI3LDYgKzMyMTc2LDcgQEAKIAkJCQkwNzRFODJC
QjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzVDNDc2QjA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZv
cm1YUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEyQkU0ODAxRkU4NjRBNzAwMjAzMUNDIC8qIFBs
YXliYWNrRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEwOTFDQkQ5OUY0MDA5
MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REEyOUEzMjFDQzAxQTk1MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQu
aCBpbiBIZWFkZXJzICovLApAQCAtMzMxNzIsNiArMzM0MjIsMjAgQEAKIAkJCQk1RDIxQTgwMzEz
RUNFNURGMDBCQjcwNjQgLyogV2ViVlRUUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMTBC
Njk4MDE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW4uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIxMEI2OTgyMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbml6ZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUUxRUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOEEyNDEzMTkxRjAwRTc5NEQ2IC8q
IFdlYlhSRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRE
NiAvKiBXZWJYUklucHV0U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NjI0MTMx
OTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI4ODI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMUVFOEJBNjI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVy
U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBX
ZWJYUlJpZ2lkVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEJBMzI0MTMxOTYz
MDBFNzk0RDYgLyogV2ViWFJTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3RDI0
MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
ODkyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MUVFOEI4NzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI3NjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI5NjI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjUxMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVl
bEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUJCQzNEODFCNjU5ODgzMDBGNTI1M0QgLyog
V2hlZWxFdmVudERlbHRhRmlsdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMzMjY4LDYgKzMzNTMy
LDIyIEBACiAJCQkJMUFCN0ZDODQwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVXRpbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFCN0ZDODYwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjdGQzg4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlh
YmxlUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0
RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
OTcyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4
RjI0MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTFFRThCOTIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTkyNDEzMTk1MDAwRTc5NEQ2IC8qIFhS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg0MjQx
MzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUxRUU4Qjc3MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3Rh
dGVJbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyog
WFJTZXNzaW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE1MjQxMzE5NjMwMEU3
OTRENiAvKiBYUlNlc3Npb25Jbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QTI0MTMx
OTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThC
OTAyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCODIyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUVFOEI5QjI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5RTI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExh
eWVySW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUyMTdFMDMwQTVFQ0Q0NzAwREI4RDAwIC8q
IFhTTEltcG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUVDMDgyNDVFNTkwMDFF
OUFCQyAvKiBYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUYxRTgzMDBDM0My
QkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4MDEs
NiArMzQwODEsNyBAQAogCQkJCUNERjJCMDE2MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjc0MjFEQkZEQzI3MDA3
QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTRCQjEwMTk1
NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNf
cnVudGltZS5tbSBpbiBTb3VyY2VzICovLApAQCAtMzM4MDgsNiArMzQwODksOCBAQAogCQkJCUUx
Njk4MjYwMTEzNDYzNkEwMDg5NDExNSAvKiBPYmpDUnVudGltZU9iamVjdC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNFQTI4NDY2MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9y
eUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThC
NzEyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTFFRThCNzAyNDEyQjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RBMjlBMzAxQ0JGNzRENDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMTYxQ0JEQTU2QzAwOTAxQ0NGIC8q
IFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0
MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5t
bSBpbiBTb3VyY2VzICovLApAQCAtMzQ0NjgsMTAgKzM0NzUxLDI5IEBACiAJCQkJRjEyMTcxRjUx
NkE4Q0VEMjAwMDA1M0NBIC8qIFdlYlZUVEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUQyMUE4MDIxM0VDRTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMTBCNjk4MTE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUxRUU4QjgwMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5MzI0MTMxOTUw
MDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBMTI0
MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMUVFOEI4QzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUxRUU4QjhCMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlBvc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0YyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhS
UmVmZXJlbmNlU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0MyNDEzMTkxRjAw
RTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThC
N0IyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRTFFRThCQTIyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMUVFOEI5ODI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4RTI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJT
eXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8q
IFdlYlhSVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0
RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjkxMjQx
MzE5NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUx
RUU4QjgzMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTE0ODMyQzIxODdGNjVDNzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291
cmNlcyAqLywKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtOYW1lcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1QTM2RDkxMTA0NTcyNzAwQjdCNjM5IC8qIFhNTE5T
TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBNzI0MTMx
OTYzMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjg1MjQxMzE5MUYwMEU3OTRENiAvKiBYUlNl
c3Npb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5o
CmluZGV4IDMwNWJjZjUxNDRlMDJlMzYxZTVkMzJmMDQ3NTQxNWU1OGI4NjVmZjMuLjk0ZjMxNjVl
MWYyN2JhMDJjYTlkNmIzMjI0MmNkMzEzNGViMTMyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURM
VHlwZXMuaApAQCAtNjIsNiArNjIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IElE
TFR5cGUgewogICAgIHVzaW5nIEltcGxlbWVudGF0aW9uVHlwZSA9IFQ7CiAgICAgdXNpbmcgU3Rv
cmFnZVR5cGUgPSBUOworICAgIHVzaW5nIFNlcXVlbmNlU3RvcmFnZVR5cGUgPSBUOwogCiAgICAg
dXNpbmcgUGFyYW1ldGVyVHlwZSA9IFQ7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBl
ID0gT3B0aW9uYWw8SW1wbGVtZW50YXRpb25UeXBlPjsKQEAgLTgyLDYgKzgzLDcgQEAgc3RydWN0
IElETFVuc3VwcG9ydGVkVHlwZSA6IElETFR5cGU8dm9pZD4geyB9Owogc3RydWN0IElETE51bGwg
OiBJRExUeXBlPHN0ZDo6bnVsbHB0cl90PiB7IH07CiAKIHN0cnVjdCBJRExBbnkgOiBJRExUeXBl
PEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+IHsKKyAgICB1c2luZyBTZXF1ZW5jZVN0b3JhZ2VU
eXBlID0gSlNDOjpKU1ZhbHVlOwogICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBKU0M6OkpTVmFs
dWU7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5j
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5o
CmluZGV4IGM0OWRkOTM4ZmNlMjcxNjVmNzQ3ZTU4ZmUwOGE1NTNkYmJmZGY1YzIuLjg2ZjdmMjc2
ZmMwOGFlMDdjMDEwMDAyMjJkMzU5ZjBlZmViNWFlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCkBAIC00MCw3ICs0MCw3IEBA
IG5hbWVzcGFjZSBEZXRhaWwgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgogc3RydWN0
IEdlbmVyaWNTZXF1ZW5jZUNvbnZlcnRlciB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IFZlY3Rv
cjx0eXBlbmFtZSBJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+OworICAgIHVzaW5nIFJldHVy
blR5cGUgPSBWZWN0b3I8dHlwZW5hbWUgSURMVHlwZTo6U2VxdWVuY2VTdG9yYWdlVHlwZT47CiAK
ICAgICBzdGF0aWMgUmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QqIG9iamVjdCkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNDRkNTBi
MjA3YzUzOGExOTc5MmI0ZjMyMjZhZmU2NTI4Nzc4NzIwOS4uMTg4MmE5ZWZmZTI0MGM0NTliZDVk
MzQyNjE3YTBjZDkzM2MyZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM1LDYgKzIzNSwyNSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oV29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oV3JpdGFi
bGVTdHJlYW0pIFwKICAgICBtYWNybyhYTUxIdHRwUmVxdWVzdCkgXAorICAgIG1hY3JvKFhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlKSBcCisgICAgbWFjcm8oWFJGcmFtZSkgXAorICAgIG1hY3JvKFhS
SW5wdXRTb3VyY2UpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlQXJyYXkpIFwKKyAgICBtYWNy
byhYUklucHV0U291cmNlRXZlbnQpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50KSBcCisgICAgbWFjcm8oWFJQb3NlKSBcCisgICAgbWFjcm8oWFJSZWZlcmVuY2VTcGFjZSkg
XAorICAgIG1hY3JvKFhSUmVmZXJlbmNlU3BhY2VFdmVudCkgXAorICAgIG1hY3JvKFhSUmVuZGVy
U3RhdGUpIFwKKyAgICBtYWNybyhYUlJpZ2lkVHJhbnNmb3JtKSBcCisgICAgbWFjcm8oWFJTZXNz
aW9uKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uRXZlbnQpIFwKKyAgICBtYWNybyhYUlNwYWNlKSBc
CisgICAgbWFjcm8oWFJTeXN0ZW0pIFwKKyAgICBtYWNybyhYUlZpZXcpIFwKKyAgICBtYWNybyhY
UlZpZXdlclBvc2UpIFwKKyAgICBtYWNybyhYUlZpZXdwb3J0KSBcCisgICAgbWFjcm8oWFJXZWJH
TExheWVyKSBcCiAgICAgbWFjcm8oYXBwZW5kRnJvbUpTKSBcCiAgICAgbWFjcm8oYXNzb2NpYXRl
ZFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIpIFwKICAgICBtYWNybyhhdXRvQWxsb2NhdGVD
aHVua1NpemUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGQ0OTYwYjljZjc1MWY0MTE0
MjJiNjcwODQxYTA1YjhiZDJjNzFjMjguLjVjZWVlNmY2ODE2ZGVlOWQ3OTljYjE1MGUxNzVhYzVk
N2VkNGFjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSkgXAog
ICAgIG1hY3JvKGluYWN0aXZlKSBcCiAgICAgbWFjcm8oaW5wdXQpIFwKKyAgICBtYWNybyhpbnB1
dHNvdXJjZXNjaGFuZ2UpIFwKICAgICBtYWNybyhpbnN0YWxsKSBcCiAgICAgbWFjcm8oaW52YWxp
ZCkgXAogICAgIG1hY3JvKGtleWRvd24pIFwKQEAgLTIzMSw2ICsyMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oc2Vla2VkKSBcCiAgICAgbWFjcm8oc2Vla2luZykgXAogICAg
IG1hY3JvKHNlbGVjdCkgXAorICAgIG1hY3JvKHNlbGVjdGVuZCkgXAogICAgIG1hY3JvKHNlbGVj
dGlvbmNoYW5nZSkgXAogICAgIG1hY3JvKHNlbGVjdHN0YXJ0KSBcCiAgICAgbWFjcm8oc2hpcHBp
bmdhZGRyZXNzY2hhbmdlKSBcCkBAIC0yODUsMTMgKzI4Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyh2ZXJzaW9uY2hhbmdlKSBcCiAgICAgbWFjcm8odmlzaWJpbGl0eWNoYW5n
ZSkgXAogICAgIG1hY3JvKHZvbHVtZWNoYW5nZSkgXAotICAgIG1hY3JvKHZyZGlzcGxheWFjdGl2
YXRlKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5Ymx1cikgXAotICAgIG1hY3JvKHZyZGlzcGxheWNv
bm5lY3QpIFwKLSAgICBtYWNybyh2cmRpc3BsYXlkZWFjdGl2YXRlKSBcCi0gICAgbWFjcm8odnJk
aXNwbGF5ZGlzY29ubmVjdCkgXAotICAgIG1hY3JvKHZyZGlzcGxheWZvY3VzKSBcCi0gICAgbWFj
cm8odnJkaXNwbGF5cHJlc2VudGNoYW5nZSkgXAogICAgIG1hY3JvKHdhaXRpbmcpIFwKICAgICBt
YWNybyh3YWl0aW5nZm9ya2V5KSBcCiAgICAgbWFjcm8od2ViZ2xjb250ZXh0Y2hhbmdlZCkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBhNTkwODYxMDY4ZjVlMzc2NjcxMzJmZDFhYTQy
ZTY3OTE4MTdkOGEwLi5hZWIyMzRhYTNlNDY3YzNhZWM5YjQ4ZTliMDA4Y2UxYTBlNjM2MDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtODUsMyArODUsNyBAQCBNZWRpYUtleU1lc3Nh
Z2VFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIFBvaW50ZXJFdmVudAogR1BVVW5j
YXB0dXJlZEVycm9yRXZlbnQgY29uZGl0aW9uYWw9V0VCR1BVCiBFbnRlclBpY3R1cmVJblBpY3R1
cmVFdmVudCBjb25kaXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJCitYUklucHV0U291cmNl
RXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgY29uZGl0
aW9uYWw9V0VCWFIKK1hSUmVmZXJlbmNlU3BhY2VFdmVudCBjb25kaXRpb25hbD1XRUJYUgorWFJT
ZXNzaW9uRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCmluZGV4IDgxZTdjYzlmMGI3NjUwNTYyYWFiZmVmZTA1YTVhM2FkMWJiYmI4
ZmYuLjgzN2ViNWRjZDBlOTk1Y2EwMjI0ZWNmZWJlNzBiY2UxZWI4MzNiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNTgsNCArNTgsNiBAQCBXb3JrZXIK
IFdvcmtsZXRHbG9iYWxTY29wZSBjb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJCiBYTUxIdHRw
UmVxdWVzdAogWE1MSHR0cFJlcXVlc3RVcGxvYWQKLQorV2ViWFJTZXNzaW9uIGNvbmRpdGlvbmFs
PVdFQlhSCitXZWJYUlNwYWNlIGNvbmRpdGlvbmFsPVdFQlhSCitXZWJYUlN5c3RlbSBjb25kaXRp
b25hbD1XRUJYUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aAppbmRleCA1ZDFhZmRiZWQ1NWUzNmZlYjEwZjRlMzUwMzcxMDI2OWYzN2VlOWFlLi5kZTdlMzhk
MjVlYjIzM2M4ODVhODE0ZmRjYzIyYzZiYzM4YzQ1MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTM4LDYgKzEzOCwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgaW5z
cGVjdG9yQWRkaXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yQWRkaXRp
b25zRW5hYmxlZDsgfQogCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIHZvaWQgc2V0V2ViWFJFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fd2ViWFJFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAg
Ym9vbCB3ZWJYUkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYlhSRW5hYmxlZDsgfQorI2Vu
ZGlmCisKICAgICB2b2lkIHNldEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQoYm9vbCBp
c0VuYWJsZWQpIHsgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkID0gaXNFbmFibGVk
OyB9CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOyB9CiAKQEAgLTQ0Niw2ICs0
NTEsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1dlYlNvY2tldEVuYWJsZWQgeyB0cnVlIH07
CiAgICAgYm9vbCBtX2ZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIEVOQUJMRShXRUJY
UikKKyAgICBib29sIG1fd2ViWFJFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wg
bV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
YXJpYVJlZmxlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZv
cm1YUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNzI2OGVlNjc3YTM3OWE2YmY1NTE3MGI5OTA0ZjMzYmJlNzcxYWY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAKQEAg
LTAsMCArMSwyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvUGxhdGZvcm1YUi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwODgzYmQ1MmRiZjc1ODFhODU4Yzky
MWZkMjVhYjAwYjk4NmI3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS94ci9QbGF0Zm9ybVhSLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCitlbnVtIGNs
YXNzIFNlc3Npb25Nb2RlIHsKKyAgICBJbmxpbmUsCisgICAgSW1tZXJzaXZlVnIsCisgICAgSW1t
ZXJzaXZlQXIsCit9OworCisjaWYgRU5BQkxFKFdFQlhSKQorCitjbGFzcyBEZXZpY2UgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8RGV2aWNlPiB7CitwdWJsaWM6Cit9OworCitjbGFzcyBJbnN0YW5j
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIEluc3RhbmNlJiBzaW5nbGV0b24oKTsKKworcHJpdmF0
ZToKKyAgICBJbnN0YW5jZSgpOworICAgIH5JbnN0YW5jZSgpOworCisgICAgc3RydWN0IEltcGw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEltcGw+IG1faW1wbDsKK307CisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCisKK30gLy8gbmFtZXNwYWNlIFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTRmNGMy
YzE4ZjNhM2RlMTMxYjg3NDkzMTFhNDFhZWZlYmJlZDViCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEs
MTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVhSLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpZiBVU0VfT1BFTlhSCisjaW5jbHVkZSA8b3BlbnhyL29wZW54ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorI2VuZGlmIC8vIFVTRV9PUEVOWFIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCisjaWYgVVNFX09QRU5YUgorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBYclN0cnVjdHVyZVR5cGUgU3RydWN0dXJlVHlwZT4KK1QgY3Jl
YXRlU3RydWN0dXJlKCkKK3sKKyAgICBUIG9iamVjdDsKKyAgICBzdGQ6Om1lbXNldCgmb2JqZWN0
LCAwLCBzaXplb2YoVCkpOworICAgIG9iamVjdC50eXBlID0gU3RydWN0dXJlVHlwZTsKKyAgICBv
YmplY3QubmV4dCA9IG51bGxwdHI7CisgICAgcmV0dXJuIG9iamVjdDsKK30KKworU3RyaW5nIHJl
c3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGluc3RhbmNlKQoreworICAg
IGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOworICAgIFhyUmVzdWx0IHJl
c3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZmZXIpOworICAgIGlm
IChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOwor
ICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOworfQor
CisjZGVmaW5lIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCBjYWxsLCBpbnN0YW5jZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAo
WFJfRkFJTEVEKHJlc3VsdCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBXVEZMb2dBbHdh
eXMoIiVzICVzOiAlc1xuIiwgX19mdW5jX18sIGNhbGwsIHJlc3VsdFRvU3RyaW5nKHJlc3VsdCwg
aW5zdGFuY2UpLnV0ZjgoKS5kYXRhKCkpOyBcCisgICAgICAgIHJldHVybjsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorCisjZW5kaWYgLy8gVVNFX09QRU5YUgorCitzdHJ1Y3QgSW5zdGFuY2U6OkltcGwg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEltcGwoKTsKKyAg
ICB+SW1wbCgpOworCisjaWYgVVNFX09QRU5YUgorICAgIFhySW5zdGFuY2UgbV9pbnN0YW5jZSB7
IFhSX05VTExfSEFORExFIH07CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfTsKKworSW5zdGFuY2U6
OkltcGw6OkltcGwoKQoreworI2lmIFVTRV9PUEVOWFIKKyAgICBXVEZMb2dBbHdheXMoIk9wZW5Y
UjogaW5pdGlhbGl6aW5nXG4iKTsKKworICAgIFsmXSB7CisgICAgICAgIHVpbnQzMl90IHByb3Bl
cnR5Q291bnRPdXRwdXQgeyAwIH07CisgICAgICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyRW51bWVy
YXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKDAsICZwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyKTsK
KyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUFwaUxheWVyUHJv
cGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0
cHV0KSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9w
ZXJ0aWVzKCk6IG5vIHByb3BlcnRpZXNcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgVmVjdG9yPFhyQXBpTGF5ZXJQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHBy
b3BlcnR5Q291bnRPdXRwdXQpOworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVy
UHJvcGVydGllcyhwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyLCBwcm9wZXJ0aWVzLmRhdGEo
KSk7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXll
clByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygieHJF
bnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMoKTogJXp1IHByb3BlcnRpZXNcbiIsIHByb3BlcnRp
ZXMuc2l6ZSgpKTsKKyAgICB9KCk7CisKKyAgICBbJl0geworICAgICAgICB1aW50MzJfdCBwcm9w
ZXJ0eUNvdW50T3V0cHV0IHsgMCB9OworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckVudW1l
cmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCAwLCAmcHJvcGVydHlDb3Vu
dE91dHB1dCwgbnVsbHB0cik7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJF
bnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisg
ICAgICAgIGlmICghcHJvcGVydHlDb3VudE91dHB1dCkgeworICAgICAgICAgICAgV1RGTG9nQWx3
YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpOiBubyBwcm9wZXJ0
aWVzXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3Rv
cjxYckV4dGVuc2lvblByb3BlcnRpZXM+IHByb3BlcnRpZXMocHJvcGVydHlDb3VudE91dHB1dCwK
KyAgICAgICAgICAgIFtdIHsKKyAgICAgICAgICAgICAgICBYckV4dGVuc2lvblByb3BlcnRpZXMg
b2JqZWN0OworICAgICAgICAgICAgICAgIHN0ZDo6bWVtc2V0KCZvYmplY3QsIDAsIHNpemVvZihY
ckV4dGVuc2lvblByb3BlcnRpZXMpKTsKKyAgICAgICAgICAgICAgICBvYmplY3QudHlwZSA9IFhS
X1RZUEVfRVhURU5TSU9OX1BST1BFUlRJRVM7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVj
dDsKKyAgICAgICAgICAgIH0oKSk7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRXcml0
dGVuIHsgMCB9OworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9u
UHJvcGVydGllcyhudWxscHRyLCBwcm9wZXJ0eUNvdW50T3V0cHV0LCAmcHJvcGVydHlDb3VudFdy
aXR0ZW4sIHByb3BlcnRpZXMuZGF0YSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1
bHQsICJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpIiwgbV9pbnN0YW5j
ZSk7CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9u
UHJvcGVydGllcygpOiAlenUgZXh0ZW5zaW9uIHByb3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6
ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IHByb3BlcnRpZXMpIHsKKyAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiICBleHRlbnNpb24gJyVzJywgdmVyc2lvbiAldVxuIiwKKyAg
ICAgICAgICAgICAgICBwcm9wZXJ0eS5leHRlbnNpb25OYW1lLCBwcm9wZXJ0eS5leHRlbnNpb25W
ZXJzaW9uKTsKKyAgICAgICAgfQorICAgIH0oKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBz
X2FwcGxpY2F0aW9uTmFtZSA9ICJXZWJYUiAoV2ViS2l0KSI7CisgICAgc3RhdGljIGNvbnN0IHVp
bnQzMl90IHNfYXBwbGljYXRpb25WZXJzaW9uID0gMTsKKworICAgIHsKKyAgICAgICAgYXV0byBj
cmVhdGVJbmZvID0gY3JlYXRlU3RydWN0dXJlPFhySW5zdGFuY2VDcmVhdGVJbmZvLCBYUl9UWVBF
X0lOU1RBTkNFX0NSRUFURV9JTkZPPigpOworICAgICAgICBjcmVhdGVJbmZvLmNyZWF0ZUZsYWdz
ID0gMDsKKyAgICAgICAgc3RkOjptZW1jcHkoY3JlYXRlSW5mby5hcHBsaWNhdGlvbkluZm8uYXBw
bGljYXRpb25OYW1lLCBzX2FwcGxpY2F0aW9uTmFtZSwgWFJfTUFYX0FQUExJQ0FUSU9OX05BTUVf
U0laRSk7CisgICAgICAgIGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwaVZlcnNpb24gPSBY
Ul9DVVJSRU5UX0FQSV9WRVJTSU9OOworICAgICAgICBjcmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5m
by5hcHBsaWNhdGlvblZlcnNpb24gPSBzX2FwcGxpY2F0aW9uVmVyc2lvbjsKKyAgICAgICAgY3Jl
YXRlSW5mby5lbmFibGVkQXBpTGF5ZXJDb3VudCA9IDA7CisgICAgICAgIGNyZWF0ZUluZm8uZW5h
YmxlZEV4dGVuc2lvbkNvdW50ID0gMDsKKworICAgICAgICBYckluc3RhbmNlIGluc3RhbmNlOwor
ICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckNyZWF0ZUluc3RhbmNlKCZjcmVhdGVJbmZvLCAm
aW5zdGFuY2UpOworICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyQ3JlYXRlSW5z
dGFuY2UoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIG1faW5zdGFuY2UgPSBpbnN0YW5jZTsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckNyZWF0ZUluc3RhbmNlKCk6IHVzaW5nIGluc3RhbmNl
ICVwXG4iLCBtX2luc3RhbmNlKTsKKyAgICB9CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfQorCitJ
bnN0YW5jZTo6SW1wbDo6fkltcGwoKQoreworfQorCitJbnN0YW5jZSYgSW5zdGFuY2U6OnNpbmds
ZXRvbigpCit7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxJbnN0YW5jZT4gc19pbnN0
YW5jZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAgICBzdGQ6OmNh
bGxfb25jZShzX29uY2VGbGFnLAorICAgICAgICBbJl0geworICAgICAgICAgICAgc19pbnN0YW5j
ZS0+bV9pbXBsID0gbWFrZVVuaXF1ZTxJbXBsPigpOworICAgICAgICB9KTsKKyAgICByZXR1cm4g
c19pbnN0YW5jZS5nZXQoKTsKK30KKworSW5zdGFuY2U6Okluc3RhbmNlKCkgPSBkZWZhdWx0Owor
SW5zdGFuY2U6On5JbnN0YW5jZSgpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3BhY2UgUGxhdGZv
cm1YUgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFk
ZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4MDFiNC4uODFkYWZlNTliNTEwODY2MzhjZTY2NGQyMDcx
NDRkNDBiZTI4MTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0zOTQsNiArMzk0LDggQEAgRU5BQkxFX1dFQkdQ
VV9hcHBsZXR2b3MgPSBFTkFCTEVfV0VCR1BVOwogRU5BQkxFX1dFQkdQVV9tYWNvc3ggPSAkKEVO
QUJMRV9XRUJHUFUkKFdLX01BQ09TXzEwMTQpKTsKIEVOQUJMRV9XRUJHUFVfTUFDT1NfU0lOQ0Vf
MTAxNCA9IEVOQUJMRV9XRUJHUFU7CiAKK0VOQUJMRV9XRUJYUiA9IEVOQUJMRV9XRUJYUjsKKwog
RU5BQkxFX1dFQl9BUElfU1RBVElTVElDUyA9IDsKIAogRU5BQkxFX1dFQl9BVURJTyA9IEVOQUJM
RV9XRUJfQVVESU87CkBAIC00MTQsNCArNDE2LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xU
ID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElU
WV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19H
UkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJ
TlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVE
X09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJM
RV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxf
MikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVf
UFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9S
X1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1Nf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
RElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZF
X1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElE
QVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAk
KEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5T
UEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VY
VEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09V
UkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VT
RVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZB
UklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5U
X0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9U
T1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5B
QkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VC
X1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsK
K0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAk
KEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJM
RV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQo
RU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQp
ICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5B
QkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJM
RV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJM
RV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAk
KEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklN
RU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQ
QUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FM
VEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFC
TEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
Q1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEp
ICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJP
TFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0Up
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFC
TEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1M
KSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFM
T05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChF
TkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19T
Q1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lU
X1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9S
RVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxF
X1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5B
QkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxF
X1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9T
RVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVF
Q0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0la
SU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVO
QUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9W
SURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5B
QkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlC
T0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMp
ICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFC
TEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElP
KSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9S
VEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCAwYjNjZTk0M2FjMzA1
MDhlMDRjZGIwYzcxMTAyMWZjNWY3NDdiNGY4Li40NzFiMTkzZWY1MGM1ODFkMzM0MzBiODg2NzUx
NWZiYzdlMmY3MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
QEAgLTE5ODIsNiArMTk4MiwxNSBAQCBJbmNyZW1lbnRhbFBERkxvYWRpbmdFbmFibGVkOgogICBj
b25kaXRpb246IEhBVkUoSU5DUkVNRU5UQUxfUERGX0FQSVMpCiAgIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCiAKK1dlYlhSRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBk
ZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViWFIgRGV2aWNlIEFQ
SSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWRkcyBzdXBwb3J0IGZvciBhY2Nlc3Np
bmcgdmlydHVhbCByZWFsaXR5IChWUikgYW5kIGF1Z21lbnRlZCByZWFsaXR5IChBUikgZGV2aWNl
cywgaW5jbHVkaW5nIHNlbnNvcnMgYW5kIGhlYWQtbW91bnRlZCBkaXNwbGF5cywgb24gdGhlIFdl
YiIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVu
YWJsZWRGZWF0dXJlcworICBjb25kaXRpb246IEVOQUJMRShXRUJYUikKKwogIyBEZXByZWNhdGVk
CiAKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcAppbmRleCA3ZGRhYzEzM2Qx
YWJmYzIwMjk5NTE3YmM2NTI0YjdhODMwNTgxMDU4Li5lY2YzZjAzODQyNzVjM2Q4ZjdkZmNjYWMw
MzBiMGY3MTc5YWM1ZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAgLTIyNSw0ICsyMjUsMTggQEAgYm9vbCBkZWZh
dWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQlhS
KQorCitib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKQoreworI2lmIEhBVkUoSEFWRV9TWVNURU1f
RkVBVFVSRV9GTEFHUykKKyAgICByZXR1cm4gb3NfZmVhdHVyZV9lbmFibGVkKFdlYktpdCwgV2Vi
WFIpOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCmluZGV4IDcxN2NmMjQ2NWY0NDU2
ZDJiNTBiZjcyNzBmZGExZmFmNmQ1NDA4YjUuLjI5NTVhMDk0ZDY0MzZiZmM5NmJmZDY1ZGY0NmZj
ZWE5MTE2OTljMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0zMzIsNCArMzMyLDggQEAgYm9vbCBkZWZhdWx0SW5BcHBC
cm93c2VyUHJpdmFjeSgpOwogYm9vbCBkZWZhdWx0SW5jcmVtZW50YWxQREZFbmFibGVkKCk7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKK2Jvb2wgZGVmYXVsdFdlYlhSRW5hYmxlZCgpOwor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
NTYxNWI5OTFiMzNmYmRkMmIwNjU5MWU3OWI1OTA2YzgzNGYzZjJkMC4uZjNlNmFiNzU1YjcyYzcz
OTNkZmRhYTVkMjhmMTA5NTNjZmM1YmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yODks
NiArMjg5LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VG
b3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlCiAgICAgICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0T2Zmc2NyZWVuQ2FudmFzRW5hYmxlZChl
bmFibGVkKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIGlmIChwcmVmZXJlbmNl
ID09ICJXZWJLaXRXZWJYUkVuYWJsZWQiKQorICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlhSRW5hYmxlZChlbmFibGVkKTsKKyNlbmRpZgorCiAg
ICAgLy8gTWFwIHRoZSBuYW1lcyB1c2VkIGluIExheW91dFRlc3RzIHdpdGggdGhlIG5hbWVzIHVz
ZWQgaW4gV2ViQ29yZTo6U2V0dGluZ3MgYW5kIFdlYlByZWZlcmVuY2VzU3RvcmUuCiAjZGVmaW5l
IEZPUl9FQUNIX09WRVJSSURFX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKFdl
YktpdEphdmFFbmFibGVkLCBKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1OGZhODQxMTU4MWU4
MDFiNC4uODFkYWZlNTliNTEwODY2MzhjZTY2NGQyMDcxNDRkNDBiZTI4MTU4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKQEAgLTM5NCw2ICszOTQsOCBAQCBFTkFCTEVfV0VCR1BVX2Fw
cGxldHZvcyA9IEVOQUJMRV9XRUJHUFU7CiBFTkFCTEVfV0VCR1BVX21hY29zeCA9ICQoRU5BQkxF
X1dFQkdQVSQoV0tfTUFDT1NfMTAxNCkpOwogRU5BQkxFX1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0
ID0gRU5BQkxFX1dFQkdQVTsKIAorRU5BQkxFX1dFQlhSID0gRU5BQkxFX1dFQlhSOworCiBFTkFC
TEVfV0VCX0FQSV9TVEFUSVNUSUNTID0gOwogCiBFTkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dF
Ql9BVURJTzsKQEAgLTQxNCw0ICs0MTYsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBF
TkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFD
SE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJU
SVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJ
TFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJ
RU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElO
R19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19M
RVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00p
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RB
UktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VM
RU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9D
RVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJM
RV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFf
U1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkg
JChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVW
QUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5B
QkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAk
KEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BV
QkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNU
T1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9R
VUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJD
RV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5T
SU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJP
TFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0Up
ICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFU
SU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01P
REUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVM
TFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVf
V0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNI
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVf
V0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRD
KSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5B
QkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFC
TEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChF
TkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVf
Q1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NT
U19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NT
U19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NT
U19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9W
SVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RB
VEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJB
R19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRB
TF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lO
Q09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVf
VElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJO
QVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9J
TlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFC
TEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNU
T01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChF
TkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9N
RU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUp
ICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJM
RV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9M
TElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0la
RV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVf
UlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VS
VkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxF
X1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVP
X1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVf
V0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJE
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9X
RUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykg
JChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRP
cGVuWFIuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJmZGYwNGMxMWVkZDAzOTAwZmM0YzE0MmNlNzZhNjYx
NDgzMGY2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtl
CkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8gZmluZCBPcGVuWFIuCisjIE9uY2UgZG9uZSwg
dGhpcyB3aWxsIGRlZmluZQorIworIyAgT1BFTlhSX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUuCisj
ICBPUEVOWFJfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBP
UEVOWFJfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLgorIworIyBDb3B5cmlnaHQg
KEMpIDIwMTkgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMn
JyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQor
cGtnX2NoZWNrX21vZHVsZXMoUENfT1BFTlhSIFFVSUVUIG9wZW54cikKKworZmluZF9wYXRoKE9Q
RU5YUl9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyBvcGVueHIvb3BlbnhyLmgKKyAgICBISU5UUyAk
e1BDX09QRU5YUl9JTkNMVURFRElSfSAke1BDX09QRU5YUl9JTkNMVURFX0RJUlN9CispCisKK2Zp
bmRfbGlicmFyeShPUEVOWFJfTElCUkFSSUVTCisgICAgTkFNRVMgb3BlbnhyX2xvYWRlcgorICAg
IEhJTlRTICR7UENfT1BFTlhSX0xJQkRJUn0gJHtQQ19PUEVOWFJfTElCUkFSWV9ESVJTfQorKQor
CittYXJrX2FzX2FkdmFuY2VkKE9QRU5YUl9JTkNMVURFX0RJUlMgT1BFTlhSX0xJQlJBUklFUykK
KworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9o
YW5kbGVfc3RhbmRhcmRfYXJncyhPcGVuWFIgUkVRVUlSRURfVkFSUyBPUEVOWFJfSU5DTFVERV9E
SVJTIE9QRU5YUl9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQ
RS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IGRmZjY0OTFhNzM0
MGYxYjM1Y2UwY2MyODEyN2QyYzc0MTY1NjU2NjAuLjExNTM1ZTU1MjJhYWJjMWE5YTg5NGM0Mzhj
YTI2MGZhYmYyOTY5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCkBAIC00OSw2ICs0OSw5IEBAIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9YU0xUIFBVQkxJQyBPTikKICMg
Q2hhbmdpbmcgdGhlc2Ugb3B0aW9ucyBpcyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLgogV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FTWU5DX1NDUk9MTElORyBQUklWQVRF
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FVVE9DQVBJVEFM
SVpFIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
Q1NTX0NPTklDX0dSQURJRU5UUyBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0NTU19QQUlOVElOR19BUEkgUFJJVkFURSAke0VOQUJMRV9FWFBFUklN
RU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0NTU19UWVBFRF9PTSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ09OVEVOVF9FWFRFTlNJT05T
IFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFU
VVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfU1RS
RUFNIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKQEAgLTYyLDkgKzY1
LDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NNT09USF9TQ1JP
TExJTkcgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfVE9VQ0hfRVZFTlRTIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfV0VCR0wyIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVT
fSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfUlRDIFBSSVZB
VEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKLVdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJIFBSSVZBVEUgJHtFTkFCTEVfRVhQ
RVJJTUVOVEFMX0ZFQVRVUkVTfSkKLVdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9DU1NfVFlQRURfT00gUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9
KQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19DT05JQ19HUkFE
SUVOVFMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9XRUJYUiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiAKICMgUHVi
bGljIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFdQRSBwb3J0LiBEbyBub3QgYWRkIGFueSBvcHRp
b25zIGhlcmUgdW5sZXNzCiAjIHRoZXJlIGlzIGEgc3Ryb25nIHJlYXNvbiB3ZSBzaG91bGQgc3Vw
cG9ydCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIG9wdGlvbiwKQEAgLTE3MSw2ICsxNzIsMTEg
QEAgaWYgKEVOQUJMRV9XUEVfUVRfQVBJIE9SIFVTRV9XUEVfVklERU9fUExBTkVfRElTUExBWV9E
TUFCVUYpCiAgICAgZmluZF9wYWNrYWdlKFdQRUJhY2tlbmRfZmRvIDEuNS4wIFJFUVVJUkVEKQog
ZW5kaWYgKCkKIAoraWYgKEVOQUJMRV9XRUJYUikKKyAgICBmaW5kX3BhY2thZ2UoT3BlblhSIDEu
MCBSRVFVSVJFRCkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BFTlhSICR7T3Bl
blhSX0ZPVU5EfSkKK2VuZGlmICgpCisKIGFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dQRV9f
PTEpCiBhZGRfZGVmaW5pdGlvbnMoLURHRVRURVhUX1BBQ0tBR0U9IldQRSIpCiBhZGRfZGVmaW5p
dGlvbnMoLURKU0NfR0xJQl9BUElfRU5BQkxFRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpp
bmRleCBmZjdkNmQxYzcwZjlkMTMwMDdiZGY3ZDQ2ZTY0ZDA3ZDc3NTZmMGY4Li5iNTkxOTY1MTE5
OGYyZTM4MjVkY2E5YjgzZWY2ZGI3ZTM1YTI4YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
V2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNt
YWtlCkBAIC0yMzAsNiArMjMwLDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCX0FVVEhOICJUb2dnbGUgV2ViIEF1dGhOIHN1
cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9XRUJf
Q1JZUFRPICJUb2dnbGUgV2ViQ3J5cHRvIFN1YnRsZS1DcnlwdG8gc3VwcG9ydCIgUFJJVkFURSBP
TikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCX1JUQyAiVG9nZ2xlIFdlYlJU
QyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
V0VCWFIgIlRvZ2dsZSBXZWJYUiBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUICJUb2dnbGUgd2lyZWxl
c3MgcGxheWJhY2sgdGFyZ2V0IHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9YU0xUICJUb2dnbGUgWFNMVCBzdXBwb3J0IiBQUklWQVRFIE9OKQog
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9TWVNURU1fTUFMTE9DICJUb2dnbGUgc3lzdGVt
IGFsbG9jYXRvciBpbnN0ZWFkIG9mIFdlYktpdCdzIGN1c3RvbSBhbGxvY2F0b3IiIFBSSVZBVEUg
JHtVU0VfU1lTVEVNX01BTExPQ19ERUZBVUxUfSkKQEAgLTI1Nyw2ICsyNTgsNyBAQCBtYWNybyhX
RUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9WSURF
T19UUkFDSyBFTkFCTEVfVklERU8pCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1ZJ
REVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOIEVOQUJMRV9WSURFTykKICAgICBXRUJLSVRfT1BU
SU9OX0RFUEVORChFTkFCTEVfVE9VQ0hfU0xJREVSIEVOQUJMRV9UT1VDSF9FVkVOVFMpCisgICAg
V0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1dFQlhSIEVOQUJMRV9XRUJHTCkKIGVuZG1hY3Jv
KCkKIAogbWFjcm8oX1dFQktJVF9PUFRJT05fRU5GT1JDRV9ERVBFTkRTIF9uYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHMgYi9T
b3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcwppbmRleCA5NmQ0
NjAwY2ZiNmEyMTc0YzBkODllNDdkYmNlN2NjZGUwZWY1NWQxLi5iZGUyYjg4ZmQ1ZWY0OGMzMWI1
ZGRkZTU1ZDBjODI2Yjg3N2E0NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvdG9vbHMvdnNw
cm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcworKysgYi9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9w
cy9GZWF0dXJlRGVmaW5lcy5wcm9wcwpAQCAtNjYsNiArNjYsNyBAQAogICAgIDxFTkFCTEVfV0VC
X0FVVEhOIC8+CiAgICAgPEVOQUJMRV9XRUJHTCAvPgogICAgIDxFTkFCTEVfV0VCR1BVIC8+Cisg
ICAgPEVOQUJMRV9XRUJYUiAvPgogICAgIDxFTkFCTEVfWEhSX1RJTUVPVVQ+RU5BQkxFX1hIUl9U
SU1FT1VUPC9FTkFCTEVfWEhSX1RJTUVPVVQ+CiAgICAgPEVOQUJMRV9YU0xUPkVOQUJMRV9YU0xU
PC9FTkFCTEVfWFNMVD4KICAgPC9Qcm9wZXJ0eUdyb3VwPgpAQCAtNzQsNyArNzUsNyBAQAogICA8
L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgogICAgIDxDbENvbXBpbGU+
Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkdfVE9VQ0gpOyQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19J
TUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTsk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7
JChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVE
KTskKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKTskKEVOQUJMRV9EQVJLX01PREVfQ1NTKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9FTkNSWVBURURfTUVESUEpOyQoRU5BQkxFX0ZFVENI
X0FQSSk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVO
QUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSElHSF9EUElfQ0FO
VkFTKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9JTlRMKTskKEVOQUJM
RV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVf
TUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9T
VFJFQU1TX0FQSSk7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFSRURfV09S
S0VSUyk7JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKTskKEVOQUJMRV9NRURJQV9TT1VS
Q0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChF
TkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7
JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVfV0VCR0wp
OyQoRU5BQkxFX1dFQkdQVSk7JChFTkFCTEVfWEhSX1RJTUVPVVQpOyQoRU5BQkxFX1hTTFQpOyUo
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAg
IDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4kKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKTskKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SCk7JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
Ryk7JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyk7JChFTkFCTEVfQ1NTX0lNQUdFX1NF
VCk7JChFTkFCTEVfQ1NTM19URVhUKTskKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
OyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpOyQoRU5BQkxF
X0NTU19TRUxFQ1RPUlNfTEVWRUw0KTskKEVOQUJMRV9DU1NfU0hBUEVfSU5TSURFKTskKEVOQUJM
RV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1RSQU5TSVRJT05TX1VOUFJFRklYRUQpOyQoRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZKTskKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpOyQo
RU5BQkxFX0RBUktfTU9ERV9DU1MpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpOyQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfRkVUQ0hfQVBJKTsk
KEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dB
TUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpOyQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpOyQoRU5B
QkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1F
KTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0lOVEwpOyQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKTskKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKTsk
KEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9F
TEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSk7
JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1NUUkVBTVNf
QVBJKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTsk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChF
TkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9T
VFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCk7JChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9WSURFT19UUkFDSyk7JChFTkFCTEVfV0VCX0FVRElPKTskKEVOQUJMRV9XRUJHTCk7JChFTkFC
TEVfV0VCR1BVKTskKEVOQUJMRV9XRUJYUik7JChFTkFCTEVfWEhSX1RJTUVPVVQpOyQoRU5BQkxF
X1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz4KICAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdy
b3VwPgpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXNDYWlyby5wcm9wcyBiL1NvdXJjZS9jbWFrZS90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
Q2Fpcm8ucHJvcHMKaW5kZXggMjRiOTRiYzcwNjM2NDBhYzg4NWI2NWZlZWMxM2UzMTMxNjc1MzUy
Ny4uZDcxOTRiMmQ5MDU0ZWVkZTFmYTYyYmIxMjQ1MTU3MmJiYWJjMzFmNyAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby5wcm9wcworKysg
Yi9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnByb3BzCkBA
IC02NSw2ICs2NSw3IEBACiAgICAgPEVOQUJMRV9XRUJfQVVUSE4gLz4KICAgICA8RU5BQkxFX1dF
QkdMPkVOQUJMRV9XRUJHTDwvRU5BQkxFX1dFQkdMPgogICAgIDxFTkFCTEVfV0VCR1BVIC8+Cisg
ICAgPEVOQUJMRV9XRUJYUiAvPgogICAgIDxFTkFCTEVfWEhSX1RJTUVPVVQ+RU5BQkxFX1hIUl9U
SU1FT1VUPC9FTkFCTEVfWEhSX1RJTUVPVVQ+CiAgICAgPEVOQUJMRV9YU0xUPkVOQUJMRV9YU0xU
PC9FTkFCTEVfWFNMVD4KICAgPC9Qcm9wZXJ0eUdyb3VwPgpAQCAtNzMsNyArNzQsNyBAQAogICA8
L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgogICAgIDxDbENvbXBpbGU+
Ci0gICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkdfVE9VQ0gpOyQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19J
TUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTsk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7
JChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVE
KTskKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKTskKEVOQUJMRV9EQVJLX01PREVfQ1NTKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9FTkNSWVBURURfTUVESUEpOyQoRU5BQkxFX0ZFVENI
X0FQSSk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVO
QUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSElHSF9EUElfQ0FO
VkFTKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9JTlRMKTskKEVOQUJM
RV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVf
TUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9T
Q1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9NRURJQV9D
T05UUk9MU19TQ1JJUFQpOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RB
VElTVElDUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQo
RU5BQkxFX1NVQlBJWEVMX0xBWU9VVCk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTsk
KEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9WSURFT19UUkFDSyk7
JChFTkFCTEVfV0VCX0FVRElPKTskKEVOQUJMRV9XRUJHTCk7JChFTkFCTEVfWEhSX1RJTUVPVVQp
OyQoRU5BQkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4kKEVOQUJMRV8zRF9U
UkFOU0ZPUk1TKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX09WRVJG
TE9XX1NDUk9MTElOR19UT1VDSCk7JChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKTskKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUyk7JChF
TkFCTEVfQ1NTX0lNQUdFX1NFVCk7JChFTkFCTEVfQ1NTM19URVhUKTskKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpOyQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KTskKEVOQUJMRV9DU1NfU0hB
UEVfSU5TSURFKTskKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1RSQU5TSVRJT05T
X1VOUFJFRklYRUQpOyQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKTskKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX0RBUktfTU9ERV9DU1MpOyQoRU5BQkxFX0RBVEFHUklE
KTskKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
OyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSk7JChF
TkFCTEVfRkVUQ0hfQVBJKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9I
SUdIX0RQSV9DQU5WQVMpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFC
TEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0lO
VEwpOyQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKTskKEVOQUJMRV9MRUdBQ1lf
RU5DUllQVEVEX01FRElBKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1M
KTskKEVOQUJMRV9NRVRFUl9FTEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUVVPVEEp
OyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX1NUWUxF
X1NDT1BFRCk7JChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKTskKEVOQUJMRV9TVkdfRE9NX09CSkNf
QklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX1ZJ
REVPX1RSQUNLKTskKEVOQUJMRV9XRUJfQVVESU8pOyQoRU5BQkxFX1dFQkdMKTskKEVOQUJMRV9X
RUJYUik7JChFTkFCTEVfWEhSX1RJTUVPVVQpOyQoRU5BQkxFX1hTTFQpOyUoUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KICAgICA8L0NsQ29tcGlsZT4K
ICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbUdyb3VwPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgzMzNjYmYyZTlhNjM5NzlmZjcw
NzM3NjU2NzA3NmQ2ZWE4OTEzNDMuLmEwODNjZThlZjY0YWE0N2U4MjczNjkwZmI2NGEzZWIyMWI0
MzIzNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxs
YXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBj
b25maWd1cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbTogQWRkZWQgV2Vi
WFIuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLgorCiAyMDIwLTAzLTE1ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgU2hvdWxkIG5vdCB1c2UgdmFyaWFi
bGUtbGVuZ3RoLWFycmF5IChWTEEpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3Qu
cG0KaW5kZXggMWM4NDAxNWNhZmJjNTJlYzllYjViNzIyNmY2OTgzOThjYzVlNWYwYi4uNzYzYWEy
ZTgzMjkxNzBlY2JjNjg3MGY0Y2M5NmI5MzBhNjE3MzlhZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTg5LDYgKzE4OSw3IEBAIG15ICgKICAgICAkd2ViZ2wy
U3VwcG9ydCwKICAgICAkd2ViZ2xTdXBwb3J0LAogICAgICR3ZWJncHVTdXBwb3J0LAorICAgICR3
ZWJYUlN1cHBvcnQsCiAgICAgJHdpcmVsZXNzUGxheWJhY2tUYXJnZXRTdXBwb3J0LAogICAgICR4
c2x0U3VwcG9ydCwKICk7CkBAIC01OTUsNiArNTk2LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
IHsgb3B0aW9uID0+ICJ3ZWJncHUiLCBkZXNjID0+ICJUb2dnbGUgV2ViR1BVIHN1cHBvcnQiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCR1BVIiwgdmFsdWUgPT4gXCR3ZWJncHVTdXBwb3J0
IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAid2VieHIiLCBkZXNjID0+ICJUb2dnbGUgV2ViWFIgc3Vw
cG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJYUiIsIHZhbHVlID0+IFwkd2ViWFJT
dXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAid2ViLWFwaS1zdGF0aXN0aWNzIiwgZGVzYyA9
PiAiVG9nZ2xlIFdlYiBBUEkgc3RhdGlzdGljcyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1dFQl9BUElfU1RBVElTVElDUyIsIHZhbHVlID0+IFwkd2ViQVBJU3RhdGlzdGljc1N1
cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3
MmY1OGZhODQxMTU4MWU4MDFiNC4uODFkYWZlNTliNTEwODY2MzhjZTY2NGQyMDcxNDRkNDBiZTI4
MTU4OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0zOTQsNiArMzk0LDggQEAgRU5BQkxFX1dF
QkdQVV9hcHBsZXR2b3MgPSBFTkFCTEVfV0VCR1BVOwogRU5BQkxFX1dFQkdQVV9tYWNvc3ggPSAk
KEVOQUJMRV9XRUJHUFUkKFdLX01BQ09TXzEwMTQpKTsKIEVOQUJMRV9XRUJHUFVfTUFDT1NfU0lO
Q0VfMTAxNCA9IEVOQUJMRV9XRUJHUFU7CiAKK0VOQUJMRV9XRUJYUiA9IEVOQUJMRV9XRUJYUjsK
KwogRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUyA9IDsKIAogRU5BQkxFX1dFQl9BVURJTyA9IEVO
QUJMRV9XRUJfQVVESU87CkBAIC00MTQsNCArNDE2LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5T
Rk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJ
TElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BB
WV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQ
TEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJM
RV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05J
Q19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZ
UEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVO
QUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVS
RV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9H
UFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVD
VE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9J
T1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZB
TElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFT
KSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVR
VUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVO
QUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVf
SU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05f
TUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVf
UkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9Y
X0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JF
U09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikg
JChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxF
X1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxF
X1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVN
RU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQo
RU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZF
Ul9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQo
RU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVf
V0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xU
KTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVO
QUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkp
ICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVO
QUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVO
QUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9D
VVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NT
KSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVO
QUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBF
UklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dB
TUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9S
X0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChF
TkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMp
ICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09O
VFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChF
TkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01I
VE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFO
REFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikg
JChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxP
V19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklY
X0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJM
RV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQo
RU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5B
QkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJM
RV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAk
KEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJM
RV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQo
RU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9L
RVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChF
TkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dF
Ql9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZmEwYTEyZGZlMjhiMTJh
MGRiNTljMjk5MDQyMjg0MThiNDhiMjk3OC4uYTQyZDY5ZTYyMGRlYTM2MGNjMzgxNWVkMDg5NTA3
OTQ3ZTk2MmIzMiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3Vy
YXRpb24gZm9yIFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAg
ICAgIEFkZGVkIGEgbmV3IGNvbXBpbGUgZmxhZyBmb3IgV0VCWFIgd2hpY2ggZGVwZW5kcyBvbiBX
RUJHTC4KKworICAgICAgICBGb3IgdGhlIFdQRSBwb3J0LCBhZGRlZCBPcGVuWFIgZGV0ZWN0aW9u
IGFuZCBVU0VfT1BFTlhSIGRlZmluZSB0byBiZQorICAgICAgICB1c2VkIGluIHRoZSBzb3VyY2Vz
LiBJdCBhbHNvIGFkZHMgYSBkZXBlbmRlbmN5IGJldHdlZW4gVVNFX09QRU5YUiBhbmQKKyAgICAg
ICAgRU5BQkxFX1dFQlhSLgorCisgICAgICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29y
ayBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kT3BlblhS
LmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZTog
QWRkZWQgbWFuZGF0b3J5IE9wZW5YUiBkZXBlbmRlbmN5IGlmCisgICAgICAgIFdFQlhSIGlzIGVu
YWJsZWQgZXhwb3NpbmcgVVNFX09QRU5YUiB0byB0aGUgYnVpbGQuCisgICAgICAgICogU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOiBBZGRlZCBFTkFCTEVfV0VCWFIuCisgICAgICAg
ICogU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHM6IERpdHRv
LgorICAgICAgICAqIFNvdXJjZS9jbWFrZS90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fp
cm8ucHJvcHM6IERpdHRvLgorCiAyMDIwLTAzLTE0ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRh
bnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtDTWFrZV0gV2FybmluZyB3aGVuIGNjYWNoZSBp
cyBub3QgaW5zdGFsbGVkCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393639</attachid>
            <date>2020-03-16 02:51:52 -0700</date>
            <delta_ts>2022-01-17 01:12:25 -0800</delta_ts>
            <desc>Patch for landing v3</desc>
            <filename>bug-208702-20200316105147.patch</filename>
            <type>text/plain</type>
            <size>335643</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MTFhMjkzOTM3ZmJiMTgyNDBiZjAzMmVkNjE4NTRkYzYxZGQwNTJjLi43NDU1YWFmMWRmMjVkNjFl
NjUzYzk4NGM3OGRmYjY3MjI4MDlkN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1
cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFC
TEVfV0VCWFIsIG9mZiBieSBkZWZhdWx0LgorCiAyMDIwLTAzLTE1ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgcmVwb3J0WmFwcGVkQ2VsbEFuZENyYXNoIHNo
b3VsZCBoYW5kbGUgUHJlY2lzZUFsbG9jYXRpb24gaW4gSXNvU3Vic3BhY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBlMzE0NTU0OTAyMzRiNGE4MWU2NjZhZGU2NmFkN2E3Nzk5ZjFjZWE2Li5kMWU1MzI1OWNiZjUx
NjZlMWU1MzkyOGVlM2VjZDgwN2Q5NmMzYWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjE2IEBA
CisyMDIwLTAzLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtXZWJYUl0gSURMcywgc3R1YnMgYW5kIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9y
IFdQRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
NzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEFkZGVk
IHRoZSBJRExzIGRlZmluZWQgYnkgdGhlIHNwZWMgd2l0aCB2ZXJ5IGJhc2ljIGVtcHR5IGltcGxl
bWVudGF0aW9ucyB0byBnZXQgdGhlbQorICAgICAgICBidWlsdC4gQXBhcnQgZnJvbSB0aGF0IGEg
dmVyeSBiYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVxdWlyZWQgcGxhdGZvcm0gY29kZSB1
c2luZworICAgICAgICBPcGVuWFIgQVBJIHdhcyBhbHNvIGFkZGVkLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBhcyBubyBuZXcgZnVuY3Rpb25hbGl0eSB3YXMgcmVhbGx5IGFkZGVkIChlbXB0eSBp
bXBsZW1lbnRhdGlvbnMpLiBIb3dldmVyCisgICAgICAgIGZvbGxvdyB1cCBwYXRjaGVzIHdpbGwg
aW1wb3J0IHRoZSBhbHJlYWR5IGF2YWlsYWJsZSBXUFQgdGVzdHMgZm9yIFdlYlhSLgorCisgICAg
ICAgIExhcmdlbHkgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSDFvWFuIERvYmVyxaFlay4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFCTEVfV0VCWFIgb2ZmIGJ5IGRlZmF1bHQuCisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL05h
dmlnYXRvcldlYlhSLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JXZWJY
Ujo6eHIpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yV2ViWFI6OmZyb20pOgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJGcmFtZTo6V2ViWFJGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkZy
YW1lOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSRnJhbWU6OmdldFZp
ZXdlclBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJGcmFtZTo6Z2V0UG9zZSk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJGcmFtZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIv
V2ViWFJJbnB1dFNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1
dFNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6Oldl
YlhSSW5wdXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJJbnB1dFNvdXJjZTo6aGFu
ZGVkbmVzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjp0YXJn
ZXRSYXlNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OnRh
cmdldFJheVNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6
OmdyaXBTcGFjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlOjpw
cm9maWxlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNl
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6Omxlbmd0
aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUklucHV0U291cmNlQXJyYXk6Oml0ZW0g
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSUG9zZTo6V2ViWFJQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUG9zZTo6ZW11bGF0ZWRQb3Np
dGlvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OldlYlhSUmVmZXJlbmNlU3BhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3Bh
Y2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlJlbmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlJlbmRlclN0YXRlOjpkZXB0aEZhciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlJlbmRlclN0YXRlOjppbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSUmVuZGVyU3RhdGU6OmJhc2VMYXllciBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSUmlnaWRUcmFuc2Zvcm06OldlYlhSUmlnaWRUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViWFJSaWdpZFRyYW5zZm9ybTo6bWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSUmlnaWRUcmFuc2Zvcm06OmludmVyc2UgY29uc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
ZXNzaW9uOjplbnZpcm9ubWVudEJsZW5kTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUlNlc3Npb246OnJlbmRlclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhS
U2Vzc2lvbjo6aW5wdXRTb3VyY2VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU2Vz
c2lvbjo6dXBkYXRlUmVuZGVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9u
OjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246
OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OmFjdGl2ZURPTU9iamVjdE5h
bWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpzdG9wKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViWFJTcGFjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTcGFjZTo6
V2ViWFJTcGFjZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSU3lzdGVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06
OldlYlhSU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjppc1Nlc3Npb25T
dXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OnJlcXVlc3RTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjphY3RpdmVET01PYmplY3ROYW1lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViWFJTeXN0ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3OjpXZWJYUlZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJWaWV3OjpleWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3Ojpw
cm9qZWN0aW9uTWF0cml4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmlldzo6dHJh
bnNmb3JtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlZpZXdlclBvc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UlZpZXdlclBvc2U6OnZpZXdzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld2VyUG9zZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld2Vy
UG9zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJWaWV3cG9ydDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSVmlld3BvcnQ6OnggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJWaWV3cG9ydDo6eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdw
b3J0Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlZpZXdwb3J0OjpoZWln
aHQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJXZWJHTExheWVyOjpXZWJYUldlYkdMTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJXZWJHTExheWVyOjphbnRpYWxpYXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJX
ZWJHTExheWVyOjppZ25vcmVEZXB0aFZhbHVlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUldlYkdMTGF5ZXI6OmZyYW1lYnVmZmVySGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSV2ViR0xMYXllcjo6Z2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9yKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2VieHIvWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSRXllLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJF
eWUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENh
bGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3Mu
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpYUklucHV0U291cmNlRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZUV2ZW50OjpmcmFtZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpYUklucHV0U291cmNlRXZlbnQ6OmlucHV0U291cmNlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VFdmVudDo6YnV0dG9uSW5kZXggY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50Lmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6WFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUklucHV0U291cmNlc0NoYW5nZUV2ZW50
OjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQ6OmFkZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhSSW5wdXRTb3VyY2VzQ2hh
bmdlRXZlbnQ6OnJlbW92ZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFJSZWZl
cmVuY2VTcGFjZUV2ZW50OjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WFJSZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpYUlJlZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpYUlNlc3Npb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhSU2Vzc2lv
bkV2ZW50OjpYUlNlc3Npb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpYUlNlc3Npb25FdmVu
dDo6c2Vzc2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YnhyL1hSVGFyZ2V0UmF5TW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hS
VGFyZ2V0UmF5TW9kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJWaXNp
YmlsaXR5U3RhdGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxp
dHlTdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVy
SW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQgT3BlblhSIGxp
YnJhcmllcyBhbmQgaW5jbHVkZSBwYXRocy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkZWQg
bmV3IGNwcCBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBlcy5oOiBBZGRl
ZCBTZXF1ZW5jZVN0b3JhZ2VUeXBlLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFNlcXVlbmNlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVz
LmluOiBBZGRlZCBXZWJYUiBldmVudHMuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbjogQWRkZWQgV2ViWFIgZXZlbnQgdGFyZ2V0cy4KKyAgICAgICAgKiBwYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaDogQWRkZWQgbmV3IHJ1bnRpbWUgZmVhdHVyZSBmb3IgV2ViWFIuCisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRXZWJYUkVuYWJsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViWFJFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUi5jcHA6IEFkZGVkLgorICAgICAgICAoUGxhdGZvcm1Y
Ujo6Y3JlYXRlU3RydWN0dXJlKTogVXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgT3BlblhSIHN0
cnVjdHMuCisgICAgICAgIChQbGF0Zm9ybVhSOjpyZXN1bHRUb1N0cmluZyk6IFRyYW5zbGF0ZXMg
T3BlblhSIGVycm9yIGNvZGVzIHRvIHN0cmluZ3MuCisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0
YW5jZTo6SW1wbDo6SW1wbCk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpJbnN0YW5jZTo6SW1wbDo6
fkltcGwpOgorICAgICAgICAoUGxhdGZvcm1YUjo6SW5zdGFuY2U6OnNpbmdsZXRvbik6CisKIDIw
MjAtMDMtMTYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUg
YWRkSFRUUE9yaWdpbklmTmVlZGVkIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBkY2E1OGNi
Mjk2Yjg2ZWQwZjRkMWM0ODkzYzRiN2I4OTFiNTNjMmFmLi42ZTdkOWFhMjczODlhOTQ2NjAyMDE0
N2EyNWVlODQ0MjgwZTVmMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1cmF0aW9uIGZvciBX
UEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODcw
MgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBFTkFCTEVfV0VCWFIgb2Zm
IGJ5IGRlZmF1bHQuCisKIDIwMjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBTaG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZM
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzBmZjZlMGI5ODk5MzQ5ZTMzODJlZWU3ODFiMzk2NTcyZTNkYTcxZS4u
M2YzZTQwNmY2YjU4MThjZTMzNzgyMDQzNzc5MGQ3MDBjZGUwN2I5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wMy0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIElETHMsIHN0dWJzIGFuZCBidWlsZCBjb25maWd1
cmF0aW9uIGZvciBXUEUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwODcwMgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAg
ICAgICBBZGRlZCBXZWJYUiB0byB0aGUgbGlzdCBvZiBleHBlcmltZW50YWwgZmVhdHVyZXMuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkZWQg
RU5BQkxFX1dFQlhSIG9mZiBieSBkZWZhdWx0LgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sOiBBZGRlZCBXZWJYUiBmZWF0dXJlLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViWFJF
bmFibGVkKTogU2V0IFdlYlhSIHRvIG9mZiBieSBkZWZhdWx0IHVubGVzcyBIQVZFX1NZU1RFTV9G
RUFUVVJFX0ZMQUdTLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZl
cmVuY2VGb3JUZXN0UnVubmVyKToKKwogMjAyMC0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IENocm9tZUNsaWVudC5jcmVhdGVXaW5kb3cKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmODAyNjdhNTkwZjNkYjAxM2U1YjRlZjliNTUx
NTg5ZGI3NzNlYmUxLi42NTRiNDUzNGE4NDJmZDAzMzFhMTA1ZDE4OThiMzQwZGUwZDA4YjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTMg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dl
YlhSXSBJRExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkZWQgRU5BQkxFX1dFQlhSLCBvZmYgYnkgZGVmYXVs
dC4KKwogMjAyMC0wMy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNob3VsZCBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aC1hcnJheSAoVkxBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFl
ODAxYjQuLmNmYmI3Mjk1MTM1ZjAxYjRjNzQ3NjUxOWQ0Njg3ZTZjNmYxYmUzNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTM5NCw2ICszOTQsOCBAQCBFTkFCTEVfV0VCR1BVX2FwcGxl
dHZvcyA9IEVOQUJMRV9XRUJHUFU7CiBFTkFCTEVfV0VCR1BVX21hY29zeCA9ICQoRU5BQkxFX1dF
QkdQVSQoV0tfTUFDT1NfMTAxNCkpOwogRU5BQkxFX1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0ID0g
RU5BQkxFX1dFQkdQVTsKIAorRU5BQkxFX1dFQlhSID0gOworCiBFTkFCTEVfV0VCX0FQSV9TVEFU
SVNUSUNTID0gOwogCiBFTkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKQEAgLTQx
NCw0ICs0MTYsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAot
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQo
RU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChF
TkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkg
JChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFC
TEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxF
X0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVf
Q1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxF
X0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxF
X0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNP
Ul9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQo
RU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxF
X0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1F
TlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBB
RCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxU
RVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJM
RV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVY
VCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9D
VVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9M
U19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkg
JChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJM
RV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwp
ICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxP
TkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVO
QUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1ND
Uk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
U0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFC
TEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVf
U0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NF
UlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJ
TkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVO
QUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJ
REVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFC
TEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJP
QVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJM
RV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FV
VEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05f
TUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJ
T05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJ
T04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkg
JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JE
KSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVO
QUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04p
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChF
TkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
UElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
KSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JT
RVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZ
X0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFO
QUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJF
U1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikg
JChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hF
X1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChF
TkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcp
ICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1Qp
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVO
QUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9O
VU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9I
QU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJM
RV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNF
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykg
JChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVf
V0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRI
TikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGRlZGZh
MTRkNWE1ZGRkYTg0ZTMzNWJmZDQ4NWU3NTUwOTdmYWVjNTcuLjY4MDJjYzhjY2IxNWE4NGYxMWQw
ZDNmMDc3ZmNlOTI3YjY0NDA2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTgwLDYgKzE4MCw3IEBACiAj
aWYgKFVTRV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVk
KFVTRV9FR0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJvciBV
U0VfQU5HTEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBh
bmQgVVNFX0VHTAogI2VuZGlmCisKICNlbmRpZgogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAm
JiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkgJiYgIWRlZmluZWQoVVNFX1RFWFRVUkVfTUFQ
UEVSX0dMKQpAQCAtMTkwLDMgKzE5MSw0IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShBQ0NFU1NJQklMSVRZKQogI2RlZmluZSBVU0VfQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVT
IDEKICNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJlZmNlMGQzZDk0NTFjNTE0MGY3
Y2ZiZTYyMjNlMmZmMzkyODdmNTMuLjEyNzZmY2UxZDdhNGQyZjBlZGJiMjI2YWQxNzczYmI5ZjQ0
MjJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02NCw2ICs2NCw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVz
L3dlYmdwdS9XSExTTCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy93ZWJncHUvV0hMU0wv
QVNUIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnNvY2tldHMiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvd2VieHIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxp
dHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlIgogICAg
ICIke1dFQkNPUkVfRElSfS9hbmltYXRpb24iCkBAIC0xNDEsNyArMTQyLDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL25ldHdvcmsiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3NxbCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4dCIKLSAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
dnIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3hyIgogICAgICIke1dFQkNPUkVfRElS
fS9wbHVnaW5zIgogICAgICIke1dFQkNPUkVfRElSfS9yZW5kZXJpbmciCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L3JlbmRlcmluZy9saW5lIgpAQCAtMTE3OSw2ICsxMTgwLDQyIEBAIGlmIChFTkFCTEVf
R0FNRVBBRCkKICAgICApCiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX1dFQkdMKQorICAgIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9O
YXZpZ2F0b3JXZWJYUi5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbAorICAg
ICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCisgICAgICAgIE1vZHVsZXMv
d2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dl
YlhSUG9zZS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmlk
bAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSUmVuZGVyU3RhdGUuaWRsCisgICAgICAgIE1v
ZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4
ci9XZWJYUlNlc3Npb24uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5pZGwKKyAgICAgICAgTW9kdWxlcy93
ZWJ4ci9XZWJYUlZpZXcuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3Nl
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsCisgICAgICAgIE1v
ZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
RW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJFeWUuaWRs
CisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKKyAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIv
WFJJbnB1dFNvdXJjZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3Vy
Y2VzQ2hhbmdlRXZlbnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFj
ZUV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VUeXBlLmlk
bAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbAorICAgICAgICBN
b2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkluaXQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwK
KyAgICAgICAgTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsCisgICAgICAgIE1vZHVs
ZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvWFJX
ZWJHTExheWVySW5pdC5pZGwKKyAgICApCitlbmRpZiAoKQorCiBzZXQoV2ViQ29yZV9JRExfRklM
RVMKICAgICAke1dlYkNvcmVfTk9OX1NWR19JRExfRklMRVN9CiAgICAgJHtXZWJDb3JlX1NWR19J
RExfRklMRVN9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1
ODFlODAxYjQuLmNmYmI3Mjk1MTM1ZjAxYjRjNzQ3NjUxOWQ0Njg3ZTZjNmYxYmUzNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCkBAIC0zOTQsNiArMzk0LDggQEAgRU5BQkxFX1dFQkdQVV9hcHBsZXR2b3MgPSBFTkFC
TEVfV0VCR1BVOwogRU5BQkxFX1dFQkdQVV9tYWNvc3ggPSAkKEVOQUJMRV9XRUJHUFUkKFdLX01B
Q09TXzEwMTQpKTsKIEVOQUJMRV9XRUJHUFVfTUFDT1NfU0lOQ0VfMTAxNCA9IEVOQUJMRV9XRUJH
UFU7CiAKK0VOQUJMRV9XRUJYUiA9IDsKKwogRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUyA9IDsK
IAogRU5BQkxFX1dFQl9BVURJTyA9IEVOQUJMRV9XRUJfQVVESU87CkBAIC00MTQsNCArNDE2LDQg
QEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBM
RV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJ
Q0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FW
Rl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xM
X1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJ
TkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElU
WSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRB
Q1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVS
QUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNU
SU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RP
Q09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAk
KEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01F
RElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NB
TVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJM
RV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09S
S19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9V
Q0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChF
TkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJW
RVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xP
QURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9C
QU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVD
T05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktF
UikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01F
U1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZF
Ul9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFD
VElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCX0FQSV9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFC
TEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJM
RV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
Q1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09Q
KSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5f
UElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVf
SU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVO
QUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQ
VFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNT
SU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElM
RV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5f
Q0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NL
KSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09M
VVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChF
TkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9T
QU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVB
QkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQo
RU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNF
U19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJH
TDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RB
VElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxF
X1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA0ZDllZGFmMWE2NmI2ZGFkOTU3MTUwYWJjNjQ5ZDNlZWQyMWY3NjQxLi40ZTkyNTY4ZjA3MjI5
MTZhZWE5Mjg1ODZjNjQ5NzYzMjg3MDVmZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTY0LDYgKzY0LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmRyaXZlciBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnNvY2tldHMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ciBcCiAg
ICAgJChXZWJDb3JlKS9hY2Nlc3NpYmlsaXR5IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbiBc
CiAgICAgJChXZWJDb3JlKS9iaW5kaW5ncy9qcyBcCkBAIC00NjAsNiArNDYxLDM3IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZ3B1L1dvcmtlck5hdmln
YXRvckdQVS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
eHIvV2ViWFJTZXNzaW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhS
U3BhY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQb3NlLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2suaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJIYW5k
ZWRuZXNzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VF
dmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0No
YW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNl
U3BhY2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlJlbmRlclN0
YXRlSW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0LmlkbCBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbk1vZGUuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJvbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FjY2Vz
c2liaWxpdHkvQXJpYUF0dHJpYnV0ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9B
bmltYXRhYmxlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L05hdmlnYXRvcldlYlhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdh
dG9yV2ViWFIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2YTRjNWQ3ODM4OTAwNDVjMTNiNzE5ZDM5ZmIxZDJi
ZjIzODEyNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L05hdmlnYXRvcldlYlhSLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JXZWJYUi5oIgorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJYUlN5c3RlbSYgTmF2aWdhdG9yV2ViWFI6
OnhyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE5hdmln
YXRvciYgbmF2aWdhdG9yT2JqZWN0KQoreworICAgIGF1dG8mIG5hdmlnYXRvciA9IE5hdmlnYXRv
cldlYlhSOjpmcm9tKG5hdmlnYXRvck9iamVjdCk7CisgICAgaWYgKCFuYXZpZ2F0b3IubV94cikK
KyAgICAgICAgbmF2aWdhdG9yLm1feHIgPSBXZWJYUlN5c3RlbTo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgIHJldHVybiAqbmF2aWdhdG9yLm1feHI7Cit9CisKK05hdmlnYXRv
cldlYlhSJiBOYXZpZ2F0b3JXZWJYUjo6ZnJvbShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKK3sKKyAg
ICBhdXRvKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yV2ViWFIqPihTdXBwbGVt
ZW50PE5hdmlnYXRvcj46OmZyb20oJm5hdmlnYXRvciwgIk5hdmlnYXRvcldlYlhSIikpOworICAg
IGlmICghc3VwcGxlbWVudCkgeworICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBtYWtlVW5p
cXVlPE5hdmlnYXRvcldlYlhSPigpOworICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVu
dC5nZXQoKTsKKyAgICAgICAgcHJvdmlkZVRvKCZuYXZpZ2F0b3IsICJOYXZpZ2F0b3JXZWJYUiIs
IFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gKnN1cHBsZW1lbnQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZjM0ZTRlNTlmMzljODlkYjJhOTJhNDE2MGI4ODAzZWUwN2Y0MmRiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOYXZpZ2F0b3I7CitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViWFJTeXN0ZW07CisKK2NsYXNzIE5hdmln
YXRvcldlYlhSIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8TmF2aWdhdG9yPiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYlhSU3lzdGVtJiB4
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2aWdhdG9yJik7CisKK3ByaXZhdGU6CisgICAg
c3RhdGljIE5hdmlnYXRvcldlYlhSJiBmcm9tKE5hdmlnYXRvciYpOworCisgICAgUmVmUHRyPFdl
YlhSU3lzdGVtPiBtX3hyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJiZjVkZDEzOTk0MzRhM2M2MzY2ZDUwZGVmMDY3
NTM2ZThkMTNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBwYXJ0
aWFsIGludGVyZmFjZSBOYXZpZ2F0b3IgeworICAgIFtTZWN1cmVDb250ZXh0LCBTYW1lT2JqZWN0
LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSByZWFkb25seSBhdHRyaWJ1dGUgV2Vi
WFJTeXN0ZW0geHI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmRlZGEz
NTIzMGViNzMwZDdlNTZiZGU1YmQ1MmFhMmIzMjYxZjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9u
bHk+PiYgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6OmJvdW5kc0dlb21ldHJ5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9ib3VuZHNHZW9tZXRyeTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjliM2I3NGYzZTJhZDQzNzg1Y2VlMDM2ZGI4ZTMyYWU2MmQ5ZDQ4ZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIldlYlhSUmVmZXJlbmNlU3BhY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisKK2NsYXNzIFdlYlhSQm91bmRl
ZFJlZmVyZW5jZVNwYWNlIDogcHVibGljIFdlYlhSUmVmZXJlbmNlU3BhY2UgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKCk7CisKKyAgICBjb25zdCBW
ZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYgYm91bmRzR2VvbWV0cnkoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiBtX2JvdW5kc0dlb21l
dHJ5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWI4ODMzNzQyM2QwNmFhOWZh
NGQ1NTQxYjZjNTEwNGYwZTQ3ZTRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBD
b25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93
LAorICAgIEludGVyZmFjZU5hbWU9WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UKK10gaW50ZXJmYWNl
IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIDogV2ViWFJSZWZlcmVuY2VTcGFjZSB7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVBvaW50UmVhZE9ubHk+IGJvdW5kc0dl
b21ldHJ5OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkzNWRjMTI3YzlkMDdhN2M4ZDIzODQxNTQ1ODdkNTEzNTg4N2FlMWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUu
Y3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYlhSRnJhbWUuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUg
IldlYlhSU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYlhSVmlld2VyUG9zZS5oIgorI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSRnJhbWUpOworCitSZWY8V2ViWFJGcmFtZT4gV2Vi
WFJGcmFtZTo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkZyYW1lKFdURk1vdmUoc2Vzc2lvbikpKTsKK30KKworV2Vi
WFJGcmFtZTo6V2ViWFJGcmFtZShSZWY8V2ViWFJTZXNzaW9uPiYmIHNlc3Npb24pCisgICAgOiBt
X3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKK3sKK30KKworV2ViWFJGcmFtZTo6fldlYlhSRnJh
bWUoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IFdlYlhSU2Vzc2lvbiYgV2ViWFJGcmFtZTo6c2Vzc2lv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbjsKK30KKworUmVmUHRyPFdlYlhSVmll
d2VyUG9zZT4gV2ViWFJGcmFtZTo6Z2V0Vmlld2VyUG9zZShjb25zdCBXZWJYUlJlZmVyZW5jZVNw
YWNlJikKK3sKKyAgICByZXR1cm4geyB9OworfQorCitSZWZQdHI8V2ViWFJQb3NlPiBXZWJYUkZy
YW1lOjpnZXRQb3NlKGNvbnN0IFdlYlhSU3BhY2UmLCBjb25zdCBXZWJYUlNwYWNlJikKK3sKKyAg
ICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgwOGE2NzY0ZjBkMmM1YWU2MWU0ZDY1OGMyODI1MDU3OWZlNWI2MjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSRnJhbWUuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlBvc2U7CitjbGFzcyBXZWJYUlJl
ZmVyZW5jZVNwYWNlOworY2xhc3MgV2ViWFJTZXNzaW9uOworY2xhc3MgV2ViWFJTcGFjZTsKK2Ns
YXNzIFdlYlhSVmlld2VyUG9zZTsKKworY2xhc3MgV2ViWFJGcmFtZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlhSRnJhbWU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSRnJhbWUp
OworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJGcmFtZT4gY3JlYXRlKFJlZjxXZWJYUlNl
c3Npb24+JiYpOworICAgIH5XZWJYUkZyYW1lKCk7CisKKyAgICBjb25zdCBXZWJYUlNlc3Npb24m
IHNlc3Npb24oKSBjb25zdDsKKworICAgIFJlZlB0cjxXZWJYUlZpZXdlclBvc2U+IGdldFZpZXdl
clBvc2UoY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYpOworICAgIFJlZlB0cjxXZWJYUlBvc2U+
IGdldFBvc2UoY29uc3QgV2ViWFJTcGFjZSYsIGNvbnN0IFdlYlhSU3BhY2UmKTsKKworcHJpdmF0
ZToKKyAgICBXZWJYUkZyYW1lKFJlZjxXZWJYUlNlc3Npb24+JiYpOworCisgICAgUmVmPFdlYlhS
U2Vzc2lvbj4gbV9zZXNzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUkZyYW1lLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJG
cmFtZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFmY2YzY2ZlNGQ5Yzc1ZmQ3ZjQ2OGU0OTdkYjhlODAwN2I4
YWRmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJGcmFtZS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250
ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgSW50ZXJmYWNlTmFtZT1YUkZyYW1lCitdIGludGVyZmFjZSBXZWJYUkZyYW1lIHsKKyAg
ICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSU2Vzc2lvbiBzZXNzaW9uOwor
CisgICAgV2ViWFJWaWV3ZXJQb3NlPyBnZXRWaWV3ZXJQb3NlKFdlYlhSUmVmZXJlbmNlU3BhY2Ug
cmVmZXJlbmNlU3BhY2UpOworICAgIFdlYlhSUG9zZT8gZ2V0UG9zZShXZWJYUlNwYWNlIHNwYWNl
LCBXZWJYUlNwYWNlIGJhc2VTcGFjZSk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMwNzY3NTExOThkYmJj
Mzc2Y2I5NzE5YjhhODdiMTJjNjIwMThkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAKQEAgLTAsMCArMSw3OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNv
dXJjZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSSW5wdXRTb3VyY2UpOworCitSZWY8
V2ViWFJJbnB1dFNvdXJjZT4gV2ViWFJJbnB1dFNvdXJjZTo6Y3JlYXRlKFJlZjxXZWJYUlNwYWNl
PiYmIHRhcmdldFJheVNwYWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSSW5w
dXRTb3VyY2UoV1RGTW92ZSh0YXJnZXRSYXlTcGFjZSkpKTsKK30KKworV2ViWFJJbnB1dFNvdXJj
ZTo6V2ViWFJJbnB1dFNvdXJjZShSZWY8V2ViWFJTcGFjZT4mJiB0YXJnZXRSYXlTcGFjZSkKKyAg
ICA6IG1faGFuZGVkbmVzcyhYUkhhbmRlZG5lc3M6Ok5vbmUpCisgICAgLCBtX3RhcmdldFJheU1v
ZGUoWFJUYXJnZXRSYXlNb2RlOjpHYXplKQorICAgICwgbV90YXJnZXRSYXlTcGFjZShXVEZNb3Zl
KHRhcmdldFJheVNwYWNlKSkKK3sKK30KKworV2ViWFJJbnB1dFNvdXJjZTo6fldlYlhSSW5wdXRT
b3VyY2UoKSA9IGRlZmF1bHQ7CisKK1hSSGFuZGVkbmVzcyBXZWJYUklucHV0U291cmNlOjpoYW5k
ZWRuZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kZWRuZXNzOworfQorCitYUlRhcmdl
dFJheU1vZGUgV2ViWFJJbnB1dFNvdXJjZTo6dGFyZ2V0UmF5TW9kZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdGFyZ2V0UmF5TW9kZTsKK30KKworY29uc3QgV2ViWFJTcGFjZSYgV2ViWFJJbnB1
dFNvdXJjZTo6dGFyZ2V0UmF5U3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3RhcmdldFJh
eVNwYWNlOworfQorCitSZWZQdHI8V2ViWFJTcGFjZT4gV2ViWFJJbnB1dFNvdXJjZTo6Z3JpcFNw
YWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCitjb25zdCBWZWN0b3I8U3RyaW5n
PiYgV2ViWFJJbnB1dFNvdXJjZTo6cHJvZmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
b2ZpbGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5w
dXRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY4YzI5YWIxY2RiOTA2ZGJlMTRiYjk0OTJhYjJmZDg4YjQxZDQxMTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5w
dXRTb3VyY2UuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVk
ZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJTcGFjZTsK
KworY2xhc3MgV2ViWFJJbnB1dFNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSSW5wdXRT
b3VyY2U+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSSW5wdXRTb3VyY2UpOwor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJJbnB1dFNvdXJjZT4gY3JlYXRlKFJlZjxXZWJY
UlNwYWNlPiYmKTsKKyAgICB+V2ViWFJJbnB1dFNvdXJjZSgpOworCisgICAgWFJIYW5kZWRuZXNz
IGhhbmRlZG5lc3MoKSBjb25zdDsKKyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZSgp
IGNvbnN0OworICAgIGNvbnN0IFdlYlhSU3BhY2UmIHRhcmdldFJheVNwYWNlKCkgY29uc3Q7Cisg
ICAgUmVmUHRyPFdlYlhSU3BhY2U+IGdyaXBTcGFjZSgpIGNvbnN0OworICAgIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwcm9maWxlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlhSSW5wdXRT
b3VyY2UoUmVmPFdlYlhSU3BhY2U+JiYpOworCisgICAgWFJIYW5kZWRuZXNzIG1faGFuZGVkbmVz
czsKKyAgICBYUlRhcmdldFJheU1vZGUgbV90YXJnZXRSYXlNb2RlOworICAgIFJlZjxXZWJYUlNw
YWNlPiBtX3RhcmdldFJheVNwYWNlOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcHJvZmlsZXM7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2Uu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNDU5ZjNmZTQ3MDc1MjExMzdiZjUzZjFhMzQ0ZWRkZDk4ZWJkMzY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291
cmNlLmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBJbnRlcmZhY2VOYW1lPVhSSW5wdXRTb3VyY2UKK10gaW50ZXJmYWNlIFdlYlhSSW5wdXRTb3Vy
Y2UgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzczsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgWFJUYXJnZXRSYXlNb2RlIHRhcmdldFJheU1vZGUgOworICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJTcGFjZSB0YXJnZXRSYXlTcGFj
ZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSU3BhY2U/IGdyaXBT
cGFjZSA7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxE
T01TdHJpbmc+IHByb2ZpbGVzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGMwODU1MzJi
Y2Q5YWFjMjczODA5MGJmYTNmZGRmZWE0MzM1NWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuY3BwCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlhSSW5wdXRTb3VyY2VBcnJheS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJJbnB1dFNvdXJjZUFycmF5KTsKKwordW5zaWduZWQg
V2ViWFJJbnB1dFNvdXJjZUFycmF5OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCitXZWJYUklucHV0U291cmNlKiBXZWJYUklucHV0U291cmNlQXJyYXk6Oml0ZW0odW5zaWdu
ZWQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQy
MWYwMjllNjRjYjA4YTJiYjliNmE2NTY4NWRhMGQ1OTg3ZDAyNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmgKQEAg
LTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShX
RUJYUikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2U7
CisKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2VBcnJheSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhS
SW5wdXRTb3VyY2VBcnJheT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJJbnB1
dFNvdXJjZUFycmF5KTsKK3B1YmxpYzoKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAg
ICBXZWJYUklucHV0U291cmNlKiBpdGVtKHVuc2lnbmVkKSBjb25zdDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mY2FkODRhYzA1NWZlNjA1MTAxOWFlN2M3NzJjMDQyYzllMDJjNzE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNl
QXJyYXkuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRB
dFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4
dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAor
ICAgIEludGVyZmFjZU5hbWU9WFJJbnB1dFNvdXJjZUFycmF5CitdIGludGVyZmFjZSBXZWJYUklu
cHV0U291cmNlQXJyYXkgeworICAgIGl0ZXJhYmxlPFdlYlhSSW5wdXRTb3VyY2U+OworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgV2ViWFJJ
bnB1dFNvdXJjZSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM1ZjgwYTU0NDU1Y2JlOGZjYjA3
MmQ1NDdiMzE5NmE5ODg3ODY1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJQb3NlLmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlBvc2UuaCIKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSUmlnaWRUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChXZWJYUlBvc2UpOworCitSZWY8V2ViWFJQb3NlPiBXZWJYUlBv
c2U6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJQb3NlKTsKK30K
KworV2ViWFJQb3NlOjpXZWJYUlBvc2UoKQorICAgIDogbV90cmFuc2Zvcm0oV2ViWFJSaWdpZFRy
YW5zZm9ybTo6Y3JlYXRlKCkpCit7Cit9CisKK1dlYlhSUG9zZTo6fldlYlhSUG9zZSgpID0gZGVm
YXVsdDsKKworY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgV2ViWFJQb3NlOjp0cmFuc2Zvcm0o
KSBjb25zdAoreworICAgIHJldHVybiBtX3RyYW5zZm9ybTsKK30KKworYm9vbCBXZWJYUlBvc2U6
OmVtdWxhdGVkUG9zaXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2VtdWxhdGVkUG9zaXRp
b247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5
OTE5ZDI0YzM5NTNhYTM5YTJjNDg5NGJjN2NjZTVjMjljMTdlNmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5oCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJS
aWdpZFRyYW5zZm9ybTsKKworY2xhc3MgV2ViWFJQb3NlIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
WFJQb3NlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlBvc2UpOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViWFJQb3NlPiBjcmVhdGUoKTsKKyAgICB+V2ViWFJQb3NlKCk7
CisKKyAgICBjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zvcm0oKSBjb25zdDsKKyAg
ICBib29sIGVtdWxhdGVkUG9zaXRpb24oKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIFdlYlhS
UG9zZSgpOworCisgICAgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworICAg
IGJvb2wgbV9lbXVsYXRlZFBvc2l0aW9uIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJQb3NlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJQb3NlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzRlOWRhZGM4ZWEwYWYzMTUxODY5
NDE5M2I5MjQ5NjQ0Nzg4MDI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlBvc2UuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisg
ICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJQb3NlCitdIGludGVyZmFjZSBXZWJY
UlBvc2UgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRy
YW5zZm9ybSB0cmFuc2Zvcm07CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZW11bGF0
ZWRQb3NpdGlvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlJlZmVyZW5jZVNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzNiZjcwOGNjNDI3YzgxOTA2YjAz
ZTU4ZWNkOTI4YTMwZmYwY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlJlZmVyZW5jZVNw
YWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2Vi
WFJSZWZlcmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVuY2VTcGFjZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQorICAgIDogV2ViWFJTcGFjZShjb250ZXh0KQoreworfQorCitXZWJYUlJl
ZmVyZW5jZVNwYWNlOjp+V2ViWFJSZWZlcmVuY2VTcGFjZSgpID0gZGVmYXVsdDsKKworUmVmPFdl
YlhSUmVmZXJlbmNlU3BhY2U+IFdlYlhSUmVmZXJlbmNlU3BhY2U6OmdldE9mZnNldFJlZmVyZW5j
ZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYlhSUmVmZXJlbmNlU3BhY2UoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3Bh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI2YmI0OGNiZjY5MDM4ZmVhMmJkMzE0ODI2Mzk2YjkzZDIxMzUzY2QKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJl
bmNlU3BhY2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgorCisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSUmlnaWRU
cmFuc2Zvcm07CisKK2NsYXNzIFdlYlhSUmVmZXJlbmNlU3BhY2UgOiBwdWJsaWMgV2ViWFJTcGFj
ZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViWFJSZWZlcmVuY2VTcGFjZSgpOworCisgICAg
UmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdl
YlhSUmlnaWRUcmFuc2Zvcm0mKTsKKworcHJpdmF0ZToKKyAgICBXZWJYUlJlZmVyZW5jZVNwYWNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MzUwN2Y0NDVh
NTJmZTJlMTcxOTY2ZjUwNzNiYzEzYjQ5ZmM1M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAg
Q29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRv
dywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmpl
Y3QsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJlZmVyZW5jZVNwYWNlCitdIGludGVyZmFjZSBXZWJY
UlJlZmVyZW5jZVNwYWNlIDogV2ViWFJTcGFjZSB7CisgICAgW05ld09iamVjdF0gV2ViWFJSZWZl
cmVuY2VTcGFjZSBnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShXZWJYUlJpZ2lkVHJhbnNmb3JtIG9y
aWdpbk9mZnNldCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzZXQ7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDY3ODlmODE5MjcxZTkxNTY1MjY5ZGEzZjNiOTYxZDMzZDk5NzZhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJT
dGF0ZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViWFJSZW5kZXJTdGF0ZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSAiV2ViWFJXZWJHTExheWVyLmgiCisjaW5jbHVkZSAiWFJSZW5kZXJTdGF0ZUlu
aXQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFdlYlhSUmVuZGVyU3RhdGUpOworCitSZWY8V2ViWFJSZW5kZXJTdGF0ZT4gV2Vi
WFJSZW5kZXJTdGF0ZTo6Y3JlYXRlKGNvbnN0IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAg
ICAvLyBXaGVuIGFuIFhSUmVuZGVyU3RhdGUgb2JqZWN0IGlzIGNyZWF0ZWQgZm9yIGFuIFhSU2Vz
c2lvbiBzZXNzaW9uLCB0aGUgdXNlciBhZ2VudCBNVVNUIGluaXRpYWxpemUgdGhlIHJlbmRlciBz
dGF0ZSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAxLiBMZXQgc3Rh
dGUgYmUgdGhlIG5ld2x5IGNyZWF0ZWQgWFJSZW5kZXJTdGF0ZSBvYmplY3QuCisKKyAgICAvLyAg
IDIuIEluaXRpYWxpemUgc3RhdGXigJlzIGRlcHRoTmVhciB0byAwLjEuCisgICAgLy8gICAzLiBJ
bml0aWFsaXplIHN0YXRl4oCZcyBkZXB0aEZhciB0byAxMDAwLjAuCisgICAgLy8gKERlZmF1bHQt
aW5pdGlhbGl6ZWQgaW4gdGhlIFhSUmVuZGVyU3RhdGUgY2xhc3MgZGVmaW5pdGlvbi4pCisKKyAg
ICAvLyAgIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNlc3Npb24sIGluaXRpYWxpemUg
c3RhdGXigJlzIGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXcgdG8gbnVsbC4KKyAgICAvLyAgIDUu
IEVsc2UgaW5pdGlhbGl6ZSBzdGF0ZeKAmXMgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldyB0byBQ
SSAqIDAuNS4KKyAgICAvLyBGSVhNRTogImltbWVyc2l2ZSBzZXNzaW9uIiBzdXBwb3J0CisgICAg
VU5VU0VEX1BBUkFNKHNlc3Npb24pOworICAgIE9wdGlvbmFsPGRvdWJsZT4gaW5saW5lVmVydGlj
YWxGaWVsZE9mVmlldyB7IHBpT3ZlclR3b0RvdWJsZSB9OworCisgICAgLy8gICA2LiBJbml0aWFs
aXplIHN0YXRl4oCZcyBiYXNlTGF5ZXIgdG8gbnVsbC4KKyAgICAvLyAgIDcuIEluaXRpYWxpemUg
c3RhdGXigJlzIG91dHB1dENvbnRleHQgdG8gbnVsbC4KKyAgICAvLyAoSW5pdGlhbGl6ZWQgdG8g
bnVsbCBieSBkZWZhdWx0LikKKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSUmVuZGVy
U3RhdGUoV1RGTW92ZShpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KSkpOworfQorCitXZWJYUlJl
bmRlclN0YXRlOjpXZWJYUlJlbmRlclN0YXRlKE9wdGlvbmFsPGRvdWJsZT4mJiBpbmxpbmVWZXJ0
aWNhbEZpZWxkT2ZWaWV3KQorICAgIDogbV9pbmxpbmVWZXJ0aWNhbEZpZWxkT2ZWaWV3KFdURk1v
dmUoaW5saW5lVmVydGljYWxGaWVsZE9mVmlldykpCit7Cit9CisKK1dlYlhSUmVuZGVyU3RhdGU6
OldlYlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKQoreworfQorCitXZWJY
UlJlbmRlclN0YXRlOjp+V2ViWFJSZW5kZXJTdGF0ZSgpID0gZGVmYXVsdDsKKworZG91YmxlIFdl
YlhSUmVuZGVyU3RhdGU6OmRlcHRoTmVhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGVwdGgu
bmVhcjsKK30KKworZG91YmxlIFdlYlhSUmVuZGVyU3RhdGU6OmRlcHRoRmFyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9kZXB0aC5mYXI7Cit9CisKK09wdGlvbmFsPGRvdWJsZT4gV2ViWFJSZW5k
ZXJTdGF0ZTo6aW5saW5lVmVydGljYWxGaWVsZE9mVmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKK30KKworUmVmUHRyPFdlYlhSV2ViR0xMYXll
cj4gV2ViWFJSZW5kZXJTdGF0ZTo6YmFzZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YXNlTGF5ZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
ZW5kZXJTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0
YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2YyOTJhYzFkNjgxYTQ2OTg3NjAxODE4OWE4N2E5NmYxZWRiYWM3
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
ZW5kZXJTdGF0ZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdlYlhSV2ViR0xMYXllcjsKK3N0cnVjdCBYUlJlbmRlclN0YXRlSW5p
dDsKK2NsYXNzIFdlYlhSU2Vzc2lvbjsKKworY2xhc3MgV2ViWFJSZW5kZXJTdGF0ZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdlYlhSUmVuZGVyU3RhdGU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFdlYlhSUmVuZGVyU3RhdGUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJSZW5k
ZXJTdGF0ZT4gY3JlYXRlKGNvbnN0IFdlYlhSU2Vzc2lvbiYpOworICAgIH5XZWJYUlJlbmRlclN0
YXRlKCk7CisKKyAgICBkb3VibGUgZGVwdGhOZWFyKCkgY29uc3Q7CisgICAgZG91YmxlIGRlcHRo
RmFyKCkgY29uc3Q7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbmxpbmVWZXJ0aWNhbEZpZWxkT2ZW
aWV3KCkgY29uc3Q7CisgICAgUmVmUHRyPFdlYlhSV2ViR0xMYXllcj4gYmFzZUxheWVyKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJSZW5kZXJTdGF0ZShPcHRpb25hbDxkb3VibGU+JiYp
OworICAgIFdlYlhSUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQmKTsKKworICAg
IHN0cnVjdCB7CisgICAgICAgIGRvdWJsZSBuZWFyIHsgMC4xIH07CisgICAgICAgIGRvdWJsZSBm
YXIgeyAxMDAwIH07CisgICAgfSBtX2RlcHRoOworICAgIE9wdGlvbmFsPGRvdWJsZT4gbV9pbmxp
bmVWZXJ0aWNhbEZpZWxkT2ZWaWV3OworICAgIFJlZlB0cjxXZWJYUldlYkdMTGF5ZXI+IG1fYmFz
ZUxheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJl
bmRlclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJT
dGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUxYWNlNjU1MmMzNDllODRhMjJhMjU2Y2Q2MGRjMmNjM2Nh
MDMzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJSZW5kZXJTdGF0ZS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1
cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJlbmRlclN0YXRlCitdIGludGVyZmFjZSBXZWJY
UlJlbmRlclN0YXRlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoTmVhcjsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlcHRoRmFyOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBkb3VibGU/IGlubGluZVZlcnRpY2FsRmllbGRPZlZpZXc7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFdlYlhSV2ViR0xMYXllcj8gYmFzZUxheWVyOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQzZmRjZmI5MGU3MjViMTc5NzgwMDU0YmE2ZTdiYTU0NjRmZjk4OWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0u
Y3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJYUlJpZ2lkVHJhbnNmb3JtLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSUmlnaWRUcmFuc2Zvcm0pOworCitS
ZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4gV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUlJpZ2lkVHJhbnNmb3JtKHsgfSwgeyB9KSk7
Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPj4gV2ViWFJSaWdpZFRy
YW5zZm9ybTo6Y3JlYXRlKGNvbnN0IERPTVBvaW50SW5pdCYgcG9zaXRpb24sIGNvbnN0IERPTVBv
aW50SW5pdCYgb3JpZW50YXRpb24pCit7CisgICAgLy8gVGhlIFhSUmlnaWRUcmFuc2Zvcm0ocG9z
aXRpb24sIG9yaWVudGF0aW9uKSBjb25zdHJ1Y3RvciBNVVNUIHBlcmZvcm0gdGhlIGZvbGxvd2lu
ZyBzdGVwcyB3aGVuIGludm9rZWQ6CisgICAgLy8gICAxLiBMZXQgdHJhbnNmb3JtIGJlIGEgbmV3
IFhSUmlnaWRUcmFuc2Zvcm0uCisKKyAgICAvLyAgIDIuIElmIHBvc2l0aW9uIGlzIG5vdCBhIERP
TVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb24gdG8geyB4OiAwLjAs
IHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4KKyAgICAvLyAgIDMuIElmIHBvc2l0aW9u4oCZcyB3
IHZhbHVlIGlzIG5vdCAxLjAsIHRocm93IGEgVHlwZUVycm9yLgorICAgIC8vICAgNC4gRWxzZSBp
bml0aWFsaXplIHRyYW5zZm9ybeKAmXMgcG9zaXRpb27igJlzIHggdmFsdWUgdG8gcG9zaXRpb27i
gJlzIHggZGljdGlvbmFyeSBtZW1iZXIsIHkgdmFsdWUgdG8gcG9zaXRpb27igJlzIHkgZGljdGlv
bmFyeSBtZW1iZXIsIHogdmFsdWUgdG8gcG9zaXRpb27igJlzIHogZGljdGlvbmFyeSBtZW1iZXIg
YW5kIHcgdG8gMS4wLgorICAgIGlmIChwb3NpdGlvbi53ICE9IDEuMCkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OworICAgIERPTVBvaW50SW5pdCBwb3NpdGlvbkluaXQg
eyBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBwb3NpdGlvbi56LCAxIH07CisKKyAgICAvLyAgIDUu
IElmIG9yaWVudGF0aW9uIGlzIG5vdCBhIERPTVBvaW50SW5pdCBpbml0aWFsaXplIHRyYW5zZm9y
beKAmXMgb3JpZW50YXRpb24gdG8geyB4OiAwLjAsIHk6IDAuMCwgejogMC4wLCB3OiAxLjAgfS4K
KyAgICAvLyAgIDYuIEVsc2UgaW5pdGlhbGl6ZSB0cmFuc2Zvcm3igJlzIG9yaWVudGF0aW9u4oCZ
cyB4IHZhbHVlIHRvIG9yaWVudGF0aW9u4oCZcyB4IGRpY3Rpb25hcnkgbWVtYmVyLCB5IHZhbHVl
IHRvIG9yaWVudGF0aW9u4oCZcyB5IGRpY3Rpb25hcnkgbWVtYmVyLCB6IHZhbHVlIHRvIG9yaWVu
dGF0aW9u4oCZcyB6IGRpY3Rpb25hcnkgbWVtYmVyIGFuZCB3IHZhbHVlIHRvIG9yaWVudGF0aW9u
4oCZcyB3IGRpY3Rpb25hcnkgbWVtYmVyLgorICAgIC8vICAgNy4gTm9ybWFsaXplIHgsIHksIHos
IGFuZCB3IGNvbXBvbmVudHMgb2YgdHJhbnNmb3Jt4oCZcyBvcmllbnRhdGlvbi4KKyAgICBET01Q
b2ludEluaXQgb3JpZW50YXRpb25Jbml0IHsgb3JpZW50YXRpb24ueCwgb3JpZW50YXRpb24ueSwg
b3JpZW50YXRpb24ueiwgb3JpZW50YXRpb24udyB9OworICAgIHsKKyAgICAgICAgZG91YmxlIGxl
bmd0aCA9IHN0ZDo6c3FydChvcmllbnRhdGlvbkluaXQueCAqIG9yaWVudGF0aW9uSW5pdC54ICsg
b3JpZW50YXRpb25Jbml0LnkgKiBvcmllbnRhdGlvbkluaXQueQorICAgICAgICAgICAgKyBvcmll
bnRhdGlvbkluaXQueiAqIG9yaWVudGF0aW9uSW5pdC56ICsgb3JpZW50YXRpb25Jbml0LncgKiBv
cmllbnRhdGlvbkluaXQudyk7CisgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWw8
ZG91YmxlPihsZW5ndGgsIDApKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICAgICAgb3JpZW50YXRpb25Jbml0PSB7CisgICAgICAgICAg
ICBvcmllbnRhdGlvbkluaXQueCAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0LnkgLyBsZW5ndGgs
CisgICAgICAgICAgICBvcmllbnRhdGlvbkluaXQueiAvIGxlbmd0aCwgb3JpZW50YXRpb25Jbml0
LncgLyBsZW5ndGgsCisgICAgICAgIH07CisgICAgfQorCisgICAgLy8gICA4LiBSZXR1cm4gdHJh
bnNmb3JtLgorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSUmlnaWRUcmFuc2Zvcm0ocG9z
aXRpb25Jbml0LCBvcmllbnRhdGlvbkluaXQpKTsKK30KKworV2ViWFJSaWdpZFRyYW5zZm9ybTo6
V2ViWFJSaWdpZFRyYW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmIHBvc2l0aW9uLCBjb25zdCBE
T01Qb2ludEluaXQmIG9yaWVudGF0aW9uKQorICAgIDogbV9wb3NpdGlvbihET01Qb2ludFJlYWRP
bmx5OjpjcmVhdGUocG9zaXRpb24pKQorICAgICwgbV9vcmllbnRhdGlvbihET01Qb2ludFJlYWRP
bmx5OjpjcmVhdGUob3JpZW50YXRpb24pKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJv
cGVybHksIHBlciBzcGVjLgorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdHJpeDsKKyAgICBh
dXRvIG1hdHJpeERhdGEgPSBtYXRyaXgudG9Db2x1bW5NYWpvckZsb2F0QXJyYXkoKTsKKyAgICBt
X21hdHJpeCA9IEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1hdHJpeERhdGEuZGF0YSgpLCBtYXRyaXhE
YXRhLnNpemUoKSk7Cit9CisKK1dlYlhSUmlnaWRUcmFuc2Zvcm06On5XZWJYUlJpZ2lkVHJhbnNm
b3JtKCkgPSBkZWZhdWx0OworCitjb25zdCBET01Qb2ludFJlYWRPbmx5JiBXZWJYUlJpZ2lkVHJh
bnNmb3JtOjpwb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9zaXRpb247Cit9CisK
K2NvbnN0IERPTVBvaW50UmVhZE9ubHkmIFdlYlhSUmlnaWRUcmFuc2Zvcm06Om9yaWVudGF0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmllbnRhdGlvbjsKK30KKworUmVmPEZsb2F0MzJB
cnJheT4gIFdlYlhSUmlnaWRUcmFuc2Zvcm06Om1hdHJpeCgpIGNvbnN0Cit7CisgICAgYXV0byBt
YXRyaXggPSBGbG9hdDMyQXJyYXk6OmNyZWF0ZSgxNik7CisgICAgbWF0cml4LT56ZXJvRmlsbCgp
OworICAgIHJldHVybiBtYXRyaXg7Cit9CisKK1JlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBXZWJY
UlJpZ2lkVHJhbnNmb3JtOjppbnZlcnNlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50IHByb3Blcmx5LgorICAgIHJldHVybiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjpjcmVhdGUoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNm
b3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZjdjYzFlN2FiNzE4ZDA0ZjEyMDE2ODg0M2JiYjQ2ZjFmODQ1NDE1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lk
VHJhbnNmb3JtLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Yy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IERPTVBvaW50SW5pdDsKK2NsYXNzIERPTVBvaW50UmVhZE9ubHk7CisKK2NsYXNz
IFdlYlhSUmlnaWRUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlJpZ2lkVHJhbnNm
b3JtPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlJpZ2lkVHJhbnNmb3JtKTsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+IGNyZWF0ZSgpOwor
ICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4+IGNyZWF0ZShj
b25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKyAgICB+V2ViWFJSaWdp
ZFRyYW5zZm9ybSgpOworCisgICAgY29uc3QgRE9NUG9pbnRSZWFkT25seSYgcG9zaXRpb24oKSBj
b25zdDsKKyAgICBjb25zdCBET01Qb2ludFJlYWRPbmx5JiBvcmllbnRhdGlvbigpIGNvbnN0Owor
ICAgIFJlZjxGbG9hdDMyQXJyYXk+IG1hdHJpeCgpIGNvbnN0OworICAgIFJlZjxXZWJYUlJpZ2lk
VHJhbnNmb3JtPiBpbnZlcnNlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViWFJSaWdpZFRy
YW5zZm9ybShjb25zdCBET01Qb2ludEluaXQmLCBjb25zdCBET01Qb2ludEluaXQmKTsKKworICAg
IFJlZjxET01Qb2ludFJlYWRPbmx5PiBtX3Bvc2l0aW9uOworICAgIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBtX29yaWVudGF0aW9uOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fbWF0cml4Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNm
b3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9y
bS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTAwY2FkN2YyZTA3MzM0MWVlNTYzNTNlNzEwOWJiZTJmMTY4MDUy
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
aWdpZFRyYW5zZm9ybS5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1
cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKG9wdGlvbmFs
IERPTVBvaW50SW5pdCBwb3NpdGlvbiwgb3B0aW9uYWwgRE9NUG9pbnRJbml0IG9yaWVudGF0aW9u
KSwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1YUlJpZ2lkVHJhbnNmb3JtCitdIGludGVy
ZmFjZSBXZWJYUlJpZ2lkVHJhbnNmb3JtIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVBvaW50UmVhZE9ubHkgcG9zaXRpb247CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01Qb2ludFJlYWRPbmx5IG9yaWVudGF0aW9uOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBGbG9hdDMyQXJyYXkgbWF0cml4OworICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRyYW5zZm9ybSBpbnZlcnNlOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDM1NjJm
MmUzZjZjOGQ4ODk0M2IwOTEzOGY3NjY4NzAyMTU3YTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSU2Vz
c2lvbi5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoV2ViWFJTZXNzaW9uKTsKKworV2ViWFJTZXNzaW9uOjp+V2ViWFJTZXNzaW9uKCkgPSBk
ZWZhdWx0OworCitYUkVudmlyb25tZW50QmxlbmRNb2RlIFdlYlhSU2Vzc2lvbjo6ZW52aXJvbm1l
bnRCbGVuZE1vZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2Vudmlyb25tZW50QmxlbmRNb2Rl
OworfQorCitYUlZpc2liaWxpdHlTdGF0ZSBXZWJYUlNlc3Npb246OnZpc2liaWxpdHlTdGF0ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorCitjb25zdCBXZWJY
UlJlbmRlclN0YXRlJiBXZWJYUlNlc3Npb246OnJlbmRlclN0YXRlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gKm1fcmVuZGVyU3RhdGU7Cit9CisKK2NvbnN0IFdlYlhSSW5wdXRTb3VyY2VBcnJheSYg
V2ViWFJTZXNzaW9uOjppbnB1dFNvdXJjZXMoKSBjb25zdAoreworICAgIHJldHVybiAqbV9pbnB1
dFNvdXJjZXM7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjp1cGRhdGVSZW5kZXJTdGF0ZShjb25z
dCBYUlJlbmRlclN0YXRlSW5pdCYpCit7Cit9CisKK3ZvaWQgV2ViWFJTZXNzaW9uOjpyZXF1ZXN0
UmVmZXJlbmNlU3BhY2UoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmLCBSZXF1ZXN0UmVmZXJl
bmNlU3BhY2VQcm9taXNlJiYpCit7Cit9CisKK2ludCBXZWJYUlNlc3Npb246OnJlcXVlc3RBbmlt
YXRpb25GcmFtZShSZWY8WFJGcmFtZVJlcXVlc3RDYWxsYmFjaz4mJikKK3sKKyAgICByZXR1cm4g
MDsKK30KKwordm9pZCBXZWJYUlNlc3Npb246OmNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCkKK3sK
K30KKwordm9pZCBXZWJYUlNlc3Npb246OmVuZChFbmRQcm9taXNlJiYpCit7Cit9CisKK2NvbnN0
IGNoYXIqIFdlYlhSU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICJYUlNlc3Npb24iOworfQorCit2b2lkIFdlYlhSU2Vzc2lvbjo6c3RvcCgpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4
YzIxY2E5YTkzNzRmZThkYjE1NjRmZTFhNjg1NDBhOWUxNDY5ZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCkBAIC0wLDAgKzEs
OTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNv
dXJjZUFycmF5LmgiCisjaW5jbHVkZSAiV2ViWFJSZW5kZXJTdGF0ZS5oIgorI2luY2x1ZGUgIldl
YlhSU3BhY2UuaCIKKyNpbmNsdWRlICJYUkVudmlyb25tZW50QmxlbmRNb2RlLmgiCisjaW5jbHVk
ZSAiWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKKyNpbmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5o
IgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgWFJGcmFtZVJlcXVlc3RDYWxsYmFjazsKK2NsYXNzIFdlYlhS
UmVmZXJlbmNlU3BhY2U7CitzdHJ1Y3QgWFJSZW5kZXJTdGF0ZUluaXQ7CisKK2NsYXNzIFdlYlhS
U2Vzc2lvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSU2Vzc2lvbj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU2Vzc2lvbik7CitwdWJsaWM6CisgICAgdXNpbmcg
UmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8V2ViWFJSZWZlcmVuY2VTcGFjZT4+OworICAgIHVzaW5nIEVuZFByb21pc2UgPSBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD47CisKKyAgICB2aXJ0dWFsIH5XZWJYUlNlc3Npb24oKTsKKwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTZXNzaW9uPjo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8V2ViWFJTZXNzaW9uPjo6ZGVyZWY7CisKKyAgICBYUkVudmlyb25tZW50QmxlbmRNb2Rl
IGVudmlyb25tZW50QmxlbmRNb2RlKCkgY29uc3Q7CisgICAgWFJWaXNpYmlsaXR5U3RhdGUgdmlz
aWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgY29uc3QgV2ViWFJSZW5kZXJTdGF0ZSYgcmVuZGVy
U3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBXZWJYUklucHV0U291cmNlQXJyYXkmIGlucHV0U291
cmNlcygpIGNvbnN0OworCisgICAgdm9pZCB1cGRhdGVSZW5kZXJTdGF0ZShjb25zdCBYUlJlbmRl
clN0YXRlSW5pdCYpOworICAgIHZvaWQgcmVxdWVzdFJlZmVyZW5jZVNwYWNlKGNvbnN0IFhSUmVm
ZXJlbmNlU3BhY2VUeXBlJiwgUmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSYmKTsKKworICAg
IGludCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUmVmPFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYp
OworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGhhbmRsZSk7CisKKyAgICB2b2lk
IGVuZChFbmRQcm9taXNlJiYpOworCisgICAgYm9vbCBlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KKworcHJvdGVjdGVkOgorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJn
ZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBXZWJYUlNlc3Npb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2
b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCisgICAgWFJFbnZpcm9ubWVudEJsZW5kTW9k
ZSBtX2Vudmlyb25tZW50QmxlbmRNb2RlOworICAgIFhSVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJp
bGl0eVN0YXRlOworICAgIFJlZlB0cjxXZWJYUlJlbmRlclN0YXRlPiBtX3JlbmRlclN0YXRlOwor
ICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlQXJyYXk+IG1faW5wdXRTb3VyY2VzOworICAgIGJv
b2wgbV9lbmRlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU2Vzc2lvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjliNDMwNzljMDYyMDVmMWVmZTgyZDUwNmM0OGMx
ZWEwN2ZlZGNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJTZXNzaW9uLmlkbApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEFj
dGl2ZURPTU9iamVjdCwKKyAgICBTZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAor
ICAgIEludGVyZmFjZU5hbWU9WFJTZXNzaW9uCitdIGludGVyZmFjZSBXZWJYUlNlc3Npb24gOiBF
dmVudFRhcmdldCB7CisgICAgLy8gQXR0cmlidXRlcworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBY
UkVudmlyb25tZW50QmxlbmRNb2RlIGVudmlyb25tZW50QmxlbmRNb2RlOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGU7CisgICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlJlbmRlclN0YXRlIHJlbmRlclN0YXRlOwor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJJbnB1dFNvdXJjZUFycmF5
IGlucHV0U291cmNlczsKKworICAgIC8vIE1ldGhvZHMKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclN0
YXRlKG9wdGlvbmFsIFhSUmVuZGVyU3RhdGVJbml0IHN0YXRlSW5pdCk7CisgICAgW05ld09iamVj
dF0gUHJvbWlzZTxXZWJYUlJlZmVyZW5jZVNwYWNlPiByZXF1ZXN0UmVmZXJlbmNlU3BhY2UoWFJS
ZWZlcmVuY2VTcGFjZVR5cGUgdHlwZSk7CisKKyAgICBsb25nIHJlcXVlc3RBbmltYXRpb25GcmFt
ZShYUkZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB2b2lkIGNhbmNlbEFuaW1h
dGlvbkZyYW1lKGxvbmcgaGFuZGxlKTsKKworICAgIFByb21pc2U8dm9pZD4gZW5kKCk7CisKKyAg
ICAvLyBFdmVudHMKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZW5kOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25zZWxlY3Q7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bmlucHV0c291cmNlc2NoYW5nZTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc2VsZWN0
c3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNlbGVjdGVuZDsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9udmlzaWJpbGl0eWNoYW5nZTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTU1ZGZlYjA1NTk1
NzBjY2MyYzlkNzZmNzYzNGI5Nzc3NDg4ZGVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlNwYWNlLmgiCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJY
UlNwYWNlKTsKKworV2ViWFJTcGFjZTo6V2ViWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCit7
Cit9CisKK1dlYlhSU3BhY2U6On5XZWJYUlNwYWNlKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNGE4YTQwZDNkMzZmMGI4ZTdk
NjAyMTAwOGM2ZjUxYTg4YWIxMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgV2ViWFJTcGFjZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYlhSU3BhY2U+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdl
YlhSU3BhY2UpOworcHVibGljOgorICAgIHZpcnR1YWwgfldlYlhSU3BhY2UoKTsKKworICAgIHVz
aW5nIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdl
YlhSU3BhY2U+OjpkZXJlZjsKKworcHJvdGVjdGVkOgorICAgIFdlYlhSU3BhY2UoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsg
fQorCitwcml2YXRlOgorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlNw
YWNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSB7IGRlcmVmKCk7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2Uu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiNzk0ZjE4YjIzMzE3MDY3NmQxZDU0OTliOWExNzExNmFlZTdjYjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3Bh
Y2UuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwK
KyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbnRlcmZhY2VOYW1lPVhSU3BhY2UKK10gaW50ZXJm
YWNlIFdlYlhSU3BhY2UgOiBFdmVudFRhcmdldCB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWM0ZDUyODAzNDRlYTQzNjEx
Mzg0ZTI2MWE1ZmZkYWYyYzEzMTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0uaCIKKworI2lm
IEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlBsYXRmb3JtWFIuaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChXZWJYUlN5c3RlbSk7CisKK1JlZjxXZWJYUlN5c3RlbT4gV2ViWFJT
eXN0ZW06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSU3lzdGVtKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpKTsKK30KKworV2ViWFJTeXN0ZW06OldlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmpl
Y3QoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7Cit9CisKK1dlYlhSU3lzdGVtOjp+V2ViWFJT
eXN0ZW0oKSA9IGRlZmF1bHQ7CisKK3ZvaWQgV2ViWFJTeXN0ZW06OmlzU2Vzc2lvblN1cHBvcnRl
ZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlJiYpCit7CisgICAgLy8g
V2hlbiB0aGUgc3VwcG9ydHNTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2VkLCBpdCBNVVNU
IHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBz
IGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gRW5zdXJlIGFuIFhSIGRldmljZSBpcyBzZWxlY3Rl
ZC4KKyAgICAvLyAgIDIuIElmIHRoZSBYUiBkZXZpY2UgaXMgbnVsbCwgcmVqZWN0IHByb21pc2Ug
d2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KKyAgICAvLyAgIDMuIElmIHRoZSBYUiBkZXZpY2UncyBsaXN0IG9mIHN1cHBvcnRlZCBt
b2RlcyBkb2VzIG5vdCBjb250YWluIG1vZGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSAiTm90U3Vw
cG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8g
ICA0LiBFbHNlIHJlc29sdmUgcHJvbWlzZS4KK30KKwordm9pZCBXZWJYUlN5c3RlbTo6cmVxdWVz
dFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNz
aW9uUHJvbWlzZSYmKQoreworICAgIFBsYXRmb3JtWFI6Okluc3RhbmNlOjpzaW5nbGV0b24oKTsK
KworICAgIC8vIFdoZW4gdGhlIHJlcXVlc3RTZXNzaW9uKG1vZGUpIG1ldGhvZCBpcyBpbnZva2Vk
LCB0aGUgdXNlciBhZ2VudCBNVVNUIHJldHVybiBhIG5ldyBQcm9taXNlIHByb21pc2UgYW5kIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgIC8vICAgMS4gTGV0IGltbWVy
c2l2ZSBiZSB0cnVlIGlmIG1vZGUgaXMgImltbWVyc2l2ZS12ciIgb3IgImltbWVyc2l2ZS1hciIs
IGFuZCBmYWxzZSBvdGhlcndpc2UuCisgICAgLy8gICAyLiBJZiBpbW1lcnNpdmUgaXMgdHJ1ZToK
KyAgICAvLyAgICAgMS4gSWYgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lvbiBpcyB0cnVlIG9yIGFj
dGl2ZSBpbW1lcnNpdmUgc2Vzc2lvbiBpcyBub3QgbnVsbCwgcmVqZWN0IHByb21pc2Ugd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgLy8gICAgIDIuIEVsc2Ugc2V0IHBlbmRpbmcgaW1tZXJzaXZlIHNlc3Npb24gdG8gYmUg
dHJ1ZS4KKyAgICAvLyAgIDMuIEVuc3VyZSBhbiBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAg
Ly8gICA0LiBJZiB0aGUgWFIgZGV2aWNlIGlzIG51bGwsIHJlamVjdCBwcm9taXNlIHdpdGggbnVs
bC4KKyAgICAvLyAgIDUuIEVsc2UgaWYgdGhlIFhSIGRldmljZSdzIGxpc3Qgb2Ygc3VwcG9ydGVk
IG1vZGVzIGRvZXMgbm90IGNvbnRhaW4gbW9kZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJOb3RT
dXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLgorICAgIC8vICAgNi4gRWxzZSBJZiBpbW1lcnNp
dmUgaXMgdHJ1ZSBhbmQgdGhlIGFsZ29yaXRobSBpcyBub3QgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0
aXZhdGlvbiwgcmVqZWN0IHByb21pc2Ugd2l0aCBhICJTZWN1cml0eUVycm9yIiBET01FeGNlcHRp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vICAgNy4gSWYgcHJvbWlzZSB3YXMgcmVq
ZWN0ZWQgYW5kIGltbWVyc2l2ZSBpcyB0cnVlLCBzZXQgcGVuZGluZyBpbW1lcnNpdmUgc2Vzc2lv
biB0byBmYWxzZS4KKyAgICAvLyAgIDguIElmIHByb21pc2Ugd2FzIHJlamVjdGVkLCBhYm9ydCB0
aGVzZSBzdGVwcy4KKyAgICAvLyAgIDkuIExldCBzZXNzaW9uIGJlIGEgbmV3IFhSU2Vzc2lvbiBv
YmplY3QuCisgICAgLy8gICAxMC4gSW5pdGlhbGl6ZSB0aGUgc2Vzc2lvbiB3aXRoIHNlc3Npb24g
YW5kIG1vZGUuCisgICAgLy8gICAxMS4gSWYgaW1tZXJzaXZlIGlzIHRydWUsIHNldCB0aGUgYWN0
aXZlIGltbWVyc2l2ZSBzZXNzaW9uIHRvIHNlc3Npb24sIGFuZCBzZXQgcGVuZGluZyBpbW1lcnNp
dmUgc2Vzc2lvbiB0byBmYWxzZS4KKyAgICAvLyAgIDEyLiBFbHNlIGFwcGVuZCBzZXNzaW9uIHRv
IHRoZSBsaXN0IG9mIGlubGluZSBzZXNzaW9ucy4KKyAgICAvLyAgIDEzLiBSZXNvbHZlIHByb21p
c2Ugd2l0aCBzZXNzaW9uLgorfQorCitjb25zdCBjaGFyKiBXZWJYUlN5c3RlbTo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJYUlN5c3RlbSI7Cit9CisKK3ZvaWQg
V2ViWFJTeXN0ZW06OnN0b3AoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
U3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlhYjE1ZDdhZWE0NDVkMTMzMmZjMjEyYTQ1Njg0NWRjZWQ5
Y2VlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgor
I2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViWFJTZXNzaW9uOworc3RydWN0IFhS
U2Vzc2lvbkluaXQ7CisKK2NsYXNzIFdlYlhSU3lzdGVtIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGlj
IEFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlN5c3Rl
bSk7CitwdWJsaWM6CisgICAgdXNpbmcgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSA9IERPTVBy
b21pc2VEZWZlcnJlZDxJRExCb29sZWFuPjsKKyAgICB1c2luZyBSZXF1ZXN0U2Vzc2lvblByb21p
c2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFdlYlhSU2Vzc2lvbj4+OworCisg
ICAgc3RhdGljIFJlZjxXZWJYUlN5c3RlbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyAgICB2aXJ0dWFsIH5XZWJYUlN5c3RlbSgpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxX
ZWJYUlN5c3RlbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6ZGVy
ZWY7CisKKyAgICB2b2lkIGlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2RlLCBJc1Nlc3Np
b25TdXBwb3J0ZWRQcm9taXNlJiYpOworICAgIHZvaWQgcmVxdWVzdFNlc3Npb24oWFJTZXNzaW9u
TW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSYmKTsKKwor
cHJvdGVjdGVkOgorICAgIFdlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKwor
ICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlN5c3RlbUV2ZW50VGFyZ2V0
SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBk
ZXJlZigpOyB9CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVt
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4YTc2MGNjYTlkNmRmMzM4MjZmZDNlM2RhZjgyMzIwNTFmMzkwYTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmlkbApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBT
ZWN1cmVDb250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJT
eXN0ZW0KK10gaW50ZXJmYWNlIFdlYlhSU3lzdGVtIDogRXZlbnRUYXJnZXQgeworICAgIC8vIE1l
dGhvZHMKKyAgICBQcm9taXNlPHZvaWQ+IGlzU2Vzc2lvblN1cHBvcnRlZChYUlNlc3Npb25Nb2Rl
IG1vZGUpOworICAgIFtOZXdPYmplY3RdIFByb21pc2U8V2ViWFJTZXNzaW9uPiByZXF1ZXN0U2Vz
c2lvbihYUlNlc3Npb25Nb2RlIG1vZGUsIG9wdGlvbmFsIFhSU2Vzc2lvbkluaXQgb3B0aW9ucyk7
CisKKyAgICAvLyBFdmVudHMKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGV2aWNlY2hh
bmdlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNDQwM2I3MGRkYzFkY2Y5OThmMzE4MzAxY2E2ZDAwNTIzZDBhY2E2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuY3BwCkBA
IC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYlhSVmlldy5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJS
aWdpZFRyYW5zZm9ybS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJWaWV3KTsKKworUmVm
PFdlYlhSVmlldz4gV2ViWFJWaWV3OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlhSVmlldyk7Cit9CisKK1dlYlhSVmlldzo6V2ViWFJWaWV3KCkKKyAgICA6IG1fZXll
KFhSRXllOjpMZWZ0KQorICAgICwgbV9wcm9qZWN0aW9uTWF0cml4KEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKDApKQorICAgICwgbV90cmFuc2Zvcm0oV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCkp
Cit7Cit9CisKK1dlYlhSVmlldzo6fldlYlhSVmlldygpID0gZGVmYXVsdDsKKworWFJFeWUgV2Vi
WFJWaWV3OjpleWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2V5ZTsKK30KKworY29uc3QgRmxv
YXQzMkFycmF5JiBXZWJYUlZpZXc6OnByb2plY3Rpb25NYXRyaXgoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3Byb2plY3Rpb25NYXRyaXg7Cit9CisKK2NvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0m
IFdlYlhSVmlldzo6dHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90cmFuc2Zvcm07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNTgw
YzZjZjdiNTI5YjdiZWU4Yjk5ODhiZmVlOTRlYmU4ZTM4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5oCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlICJYUkV5ZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJY
UlJpZ2lkVHJhbnNmb3JtOworCitjbGFzcyBXZWJYUlZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJYUlZpZXc+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSVmlldyk7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZpZXc+IGNyZWF0ZSgpOworICAgIH5XZWJYUlZpZXco
KTsKKworICAgIFhSRXllIGV5ZSgpIGNvbnN0OworICAgIGNvbnN0IEZsb2F0MzJBcnJheSYgcHJv
amVjdGlvbk1hdHJpeCgpIGNvbnN0OworICAgIGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIHRy
YW5zZm9ybSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlhSVmlldygpOworCisgICAgWFJF
eWUgbV9leWU7CisgICAgUmVmPEZsb2F0MzJBcnJheT4gbV9wcm9qZWN0aW9uTWF0cml4OworICAg
IFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiBtX3RyYW5zZm9ybTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjVmNDI5ODE0NjYyMTczMjE0
YzQ3ZDZkNWMxNDJlMzU4ZTIxOTIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXcuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIs
CisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJWaWV3CitdIGludGVyZmFjZSBX
ZWJYUlZpZXcgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkV5ZSBleWU7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEZsb2F0MzJBcnJheSBwcm9qZWN0aW9uTWF0cml4OworICAgIFtTYW1lT2Jq
ZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBv
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYwNjNjOTVmMzY0M2FkYWIwYTI4MWRhODhiM2NiYWU2NWE3OTdiMDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2Vy
UG9zZS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3ZXJQb3NlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdlYlhSVmlld2VyUG9zZT4gV2ViWFJWaWV3ZXJQ
b3NlOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVmlld2VyUG9z
ZSk7Cit9CisKK1dlYlhSVmlld2VyUG9zZTo6V2ViWFJWaWV3ZXJQb3NlKCkgPSBkZWZhdWx0Owor
V2ViWFJWaWV3ZXJQb3NlOjp+V2ViWFJWaWV3ZXJQb3NlKCkgPSBkZWZhdWx0OworCitjb25zdCBW
ZWN0b3I8UmVmPFdlYlhSVmlldz4+JiBXZWJYUlZpZXdlclBvc2U6OnZpZXdzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV92aWV3czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJWaWV3ZXJQb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRlZDI1YjEwYzI1MzE5YTZlOTIxODUyODA2NGU1
MWM4ZDRkOGYyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJWaWV3ZXJQb3NlLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIldlYlhSUG9zZS5oIgor
I2luY2x1ZGUgIldlYlhSVmlldy5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJWaWV3ZXJQ
b3NlIDogcHVibGljIFdlYlhSUG9zZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJYUlZp
ZXdlclBvc2U+IGNyZWF0ZSgpOworICAgIH5XZWJYUlZpZXdlclBvc2UoKTsKKworICAgIGNvbnN0
IFZlY3RvcjxSZWY8V2ViWFJWaWV3Pj4mIHZpZXdzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
V2ViWFJWaWV3ZXJQb3NlKCk7CisKKyAgICBWZWN0b3I8UmVmPFdlYlhSVmlldz4+IG1fdmlld3M7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9z
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDFiZWIyYzA4NmY4OWJmYWZkZjVlMGJmMWY5NWMwZjQ4YzYwNzYxMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQ
b3NlLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIFNlY3VyZUNvbnRleHQs
CisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBJbnRlcmZhY2VOYW1lPVhSVmlld2VyUG9zZQorXSBpbnRlcmZhY2UgV2ViWFJWaWV3ZXJQb3Nl
IDogV2ViWFJQb3NlIHsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3pl
bkFycmF5PFdlYlhSVmlldz4gdmlld3M7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJWaWV3cG9ydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JhYTNjOGE1YTkzZTZkMWU5ZTY5
M2ExOWQ0MTBjZmNkNTNmOWRkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJWaWV3cG9ydC5oIgorCisj
aWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJW
aWV3cG9ydCk7CisKK1JlZjxXZWJYUlZpZXdwb3J0PiBXZWJYUlZpZXdwb3J0OjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVmlld3BvcnQpOworfQorCitXZWJYUlZp
ZXdwb3J0OjpXZWJYUlZpZXdwb3J0KCkgPSBkZWZhdWx0OworCitpbnQgV2ViWFJWaWV3cG9ydDo6
eCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBXZWJYUlZpZXdwb3J0Ojp5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworaW50IFdlYlhSVmlld3BvcnQ6OndpZHRoKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworaW50IFdlYlhSVmlld3BvcnQ6OmhlaWdodCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJWaWV3cG9ydC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlZpZXdwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY4MjQ2YTliMWQ0ZWFhM2EwNDExMTY0YjE2YjVl
NDY5YzIwMzAxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJWaWV3cG9ydC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJWaWV3cG9ydCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlhSVmlld3BvcnQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSVmll
d3BvcnQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViWFJWaWV3cG9ydD4gY3JlYXRlKCk7
CisKKyAgICBpbnQgeCgpIGNvbnN0OworICAgIGludCB5KCkgY29uc3Q7CisgICAgaW50IHdpZHRo
KCkgY29uc3Q7CisgICAgaW50IGhlaWdodCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlhS
Vmlld3BvcnQoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJWaWV3cG9ydC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3Bv
cnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk5YjUxZWNmMTRjMzYzZjE4MzQ1ODMzNTc4OWQ3ZDBjY2ZmMmM5
NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld3BvcnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29u
dGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAorICAgIEludGVyZmFjZU5hbWU9WFJWaWV3cG9ydAorXSBpbnRlcmZhY2UgV2ViWFJWaWV3cG9y
dCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgeDsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyB5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHdpZHRoOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE3OGU4YjBiNjdkMDMx
ODE0YTllZWFkNmQ4MjJjNTZhODdmMDZhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcApAQCAtMCwwICsxLDEzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJXZWJHTExh
eWVyLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVy
LmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaWYgRU5BQkxFKFdFQkdM
MikKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCisjZW5kaWYKKyNpbmNsdWRl
ICJXZWJYUlNlc3Npb24uaCIKKyNpbmNsdWRlICJXZWJYUlZpZXdwb3J0LmgiCisjaW5jbHVkZSAi
WFJXZWJHTExheWVySW5pdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V4Y2VwdGlvbk9y
PFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldlYkdMTGF5ZXI6OmNyZWF0ZShjb25zdCBXZWJY
UlNlc3Npb24mIHNlc3Npb24sIFdlYlhSUmVuZGVyaW5nQ29udGV4dCYmIGNvbnRleHQsIGNvbnN0
IFhSV2ViR0xMYXllckluaXQmIGluaXQpCit7CisgICAgLy8gVGhlIFhSV2ViR0xMYXllcihzZXNz
aW9uLCBjb250ZXh0LCBsYXllckluaXQpIGNvbnN0cnVjdG9yIE1VU1QgcGVyZm9ybSB0aGUgZm9s
bG93aW5nIHN0ZXBzIHdoZW4gaW52b2tlZDoKKyAgICAvLyAgIDEuIExldCBsYXllciBiZSBhIG5l
dyBYUldlYkdMTGF5ZXIKKworICAgIC8vICAgMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUg
aXMgdHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgorICAgIGlmIChzZXNzaW9uLmVuZGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgLy8gICAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRo
cm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAg
IDQuIElmIGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1F
OiBUT0RPCisKKyAgICAvLyAgIDUuIEluaXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29u
dGV4dC4KKyAgICAvLyAgIDYuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXll
ckluaXTigJlzIGFudGlhbGlhcyB2YWx1ZS4KKyAgICAvLyAgIDcuIElmIGxheWVySW5pdOKAmXMg
aWdub3JlRGVwdGhWYWx1ZXMgdmFsdWUgaXMgZmFsc2UgYW5kIHRoZSBYUiBDb21wb3NpdG9yIHdp
bGwgbWFrZSB1c2Ugb2YgZGVwdGggdmFsdWVzLCBJbml0aWFsaXplIGxheWVy4oCZcyBpZ25vcmVE
ZXB0aFZhbHVlcyB0byBmYWxzZS4KKyAgICAvLyAgIDguIEVsc2UgSW5pdGlhbGl6ZSBsYXllcuKA
mXMgaWdub3JlRGVwdGhWYWx1ZXMgdG8gdHJ1ZQorICAgIC8vICAgOS4gSW5pdGlhbGl6ZSBsYXll
cuKAmXMgZnJhbWVidWZmZXIgdG8gYSBuZXcgb3BhcXVlIGZyYW1lYnVmZmVyIGNyZWF0ZWQgd2l0
aCBjb250ZXh0LgorICAgIC8vICAgMTAuIEluaXRpYWxpemUgdGhlIGxheWVy4oCZcyBzd2FwIGNo
YWluLgorICAgIC8vICAgMTEuIElmIGxheWVy4oCZcyBzd2FwIGNoYWluIHdhcyB1bmFibGUgdG8g
YmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFi
b3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIEZJWE1FOiBUT0RPCisKKyAgICAvLyAgIDEyLiBSZXR1
cm4gbGF5ZXIuCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJXZWJHTExheWVyKHNlc3Np
b24sIFdURk1vdmUoY29udGV4dCksIGluaXQpKTsKK30KKworV2ViWFJXZWJHTExheWVyOjpXZWJY
UldlYkdMTGF5ZXIoY29uc3QgV2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJpbmdDb250ZXh0JiYg
Y29udGV4dCwgY29uc3QgWFJXZWJHTExheWVySW5pdCYgaW5pdCkKKyAgICA6IG1fY29udGV4dChX
VEZNb3ZlKGNvbnRleHQpKQorICAgICwgbV9hbnRpYWxpYXMoaW5pdC5hbnRpYWxpYXMpCisgICAg
LCBtX2lnbm9yZURlcHRoVmFsdWVzKGluaXQuaWdub3JlRGVwdGhWYWx1ZXMpCit7CisgICAgbV9m
cmFtZWJ1ZmZlci5vYmplY3QgPSBXVEY6OnN3aXRjaE9uKG1fY29udGV4dCwKKyAgICAgICAgW10o
Y29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4mIGNvbnRleHQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBmcmFtZUJ1ZmZlciA9IFdlYkdM
RnJhbWVidWZmZXI6OmNyZWF0ZSgqY29udGV4dCk7CisgICAgICAgICAgICByZXR1cm4gZnJhbWVC
dWZmZXI7CisgICAgICAgIH0sCisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgW10oY29uc3Qg
UmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+JiBjb250ZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gZnJhbWVCdWZmZXIgPSBXZWJHTEZyYW1l
YnVmZmVyOjpjcmVhdGUoKmNvbnRleHQpOworICAgICAgICAgICAgcmV0dXJuIGZyYW1lQnVmZmVy
OworICAgICAgICB9LAorI2VuZGlmCisgICAgICAgIFtdKFdURjo6TW9ub3N0YXRlKSB7CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICB9CisgICAgKTsKK30KKworV2ViWFJXZWJHTExheWVyOjp+V2ViWFJXZWJHTExh
eWVyKCkgPSBkZWZhdWx0OworCitib29sIFdlYlhSV2ViR0xMYXllcjo6YW50aWFsaWFzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9hbnRpYWxpYXM7Cit9CisKK2Jvb2wgV2ViWFJXZWJHTExheWVy
OjppZ25vcmVEZXB0aFZhbHVlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWdub3JlRGVwdGhW
YWx1ZXM7Cit9CisKK2NvbnN0IFdlYkdMRnJhbWVidWZmZXImIFdlYlhSV2ViR0xMYXllcjo6ZnJh
bWVidWZmZXIoKSBjb25zdAoreworICAgIHJldHVybiAqbV9mcmFtZWJ1ZmZlci5vYmplY3Q7Cit9
CisKK3Vuc2lnbmVkIFdlYlhSV2ViR0xMYXllcjo6ZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZnJhbWVidWZmZXIud2lkdGg7Cit9CisKK3Vuc2lnbmVkIFdlYlhSV2Vi
R0xMYXllcjo6ZnJhbWVidWZmZXJIZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1l
YnVmZmVyLmhlaWdodDsKK30KKworUmVmUHRyPFdlYlhSVmlld3BvcnQ+IFdlYlhSV2ViR0xMYXll
cjo6Z2V0Vmlld3BvcnQoY29uc3QgV2ViWFJWaWV3JikKK3sKKyAgICByZXR1cm4geyB9OworfQor
Citkb3VibGUgV2ViWFJXZWJHTExheWVyOjpnZXROYXRpdmVGcmFtZWJ1ZmZlclNjYWxlRmFjdG9y
KGNvbnN0IFdlYlhSU2Vzc2lvbiYpCit7CisgICAgcmV0dXJuIDEuMDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJkMDQ4M2Vk
NWZiNjFlMjAyM2I0MzllZDFmZjI2MTFiZjFiZmMxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmgKQEAgLTAsMCArMSw5MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2lu
Y2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdlYkdMRnJhbWVidWZmZXI7CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ7CisjaWYgRU5BQkxFKFdFQkdMMikKK2NsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7Cisj
ZW5kaWYKK2NsYXNzIFdlYlhSU2Vzc2lvbjsKK2NsYXNzIFdlYlhSVmlldzsKK2NsYXNzIFdlYlhS
Vmlld3BvcnQ7CitzdHJ1Y3QgWFJXZWJHTExheWVySW5pdDsKKworY2xhc3MgV2ViWFJXZWJHTExh
eWVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJXZWJHTExheWVyPiB7CitwdWJsaWM6CisgICAg
CisgICAgdXNpbmcgV2ViWFJSZW5kZXJpbmdDb250ZXh0ID0gV1RGOjpWYXJpYW50PAorICAgICAg
ICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwKKyNpZiBFTkFCTEUoV0VCR0wyKQorICAg
ICAgICBSZWZQdHI8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4KKyNlbHNlCisgICAgICAgIFdURjo6
TW9ub3N0YXRlCisjZW5kaWYKKyAgICA+OworCisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxX
ZWJYUldlYkdMTGF5ZXI+PiBjcmVhdGUoY29uc3QgV2ViWFJTZXNzaW9uJiwgV2ViWFJSZW5kZXJp
bmdDb250ZXh0JiYsIGNvbnN0IFhSV2ViR0xMYXllckluaXQmKTsKKyAgICB+V2ViWFJXZWJHTExh
eWVyKCk7CisKKyAgICBib29sIGFudGlhbGlhcygpIGNvbnN0OworICAgIGJvb2wgaWdub3JlRGVw
dGhWYWx1ZXMoKSBjb25zdDsKKworICAgIGNvbnN0IFdlYkdMRnJhbWVidWZmZXImIGZyYW1lYnVm
ZmVyKCkgY29uc3Q7CisgICAgdW5zaWduZWQgZnJhbWVidWZmZXJXaWR0aCgpIGNvbnN0OworICAg
IHVuc2lnbmVkIGZyYW1lYnVmZmVySGVpZ2h0KCkgY29uc3Q7CisKKyAgICBSZWZQdHI8V2ViWFJW
aWV3cG9ydD4gZ2V0Vmlld3BvcnQoY29uc3QgV2ViWFJWaWV3Jik7CisKKyAgICBzdGF0aWMgZG91
YmxlIGdldE5hdGl2ZUZyYW1lYnVmZmVyU2NhbGVGYWN0b3IoY29uc3QgV2ViWFJTZXNzaW9uJik7
CisKK3ByaXZhdGU6CisgICAgV2ViWFJXZWJHTExheWVyKGNvbnN0IFdlYlhSU2Vzc2lvbiYsIFdl
YlhSUmVuZGVyaW5nQ29udGV4dCYmLCBjb25zdCBYUldlYkdMTGF5ZXJJbml0Jik7CisKKyAgICBX
ZWJYUlJlbmRlcmluZ0NvbnRleHQgbV9jb250ZXh0OworICAgIGJvb2wgbV9hbnRpYWxpYXMgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVEZXB0aFZhbHVlcyB7IGZhbHNlIH07CisKKyAgICBz
dHJ1Y3QgeworICAgICAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gb2JqZWN0OworICAgICAg
ICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsKKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9Owor
ICAgIH0gbV9mcmFtZWJ1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJXZWJHTExheWVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJXZWJHTExheWVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGJhZDM3YmQ3YzJhMzljZTE2OWEwNjY0
NGY4YTQ5NTljZWI5NjYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaWRsCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KwordHlwZWRlZiAoV2ViR0xSZW5kZXJpbmdDb250ZXh0IG9yIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQpIFdlYlhSV2ViR0xSZW5kZXJpbmdDb250ZXh0OworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVDb250ZXh0LAorICAg
IEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKFdlYlhSU2Vzc2lvbiBzZXNzaW9uLCBX
ZWJYUldlYkdMUmVuZGVyaW5nQ29udGV4dCBjb250ZXh0LCBvcHRpb25hbCBYUldlYkdMTGF5ZXJJ
bml0IGxheWVySW5pdCksCisgICAgQ29uc3RydWN0b3JNYXlUaHJvd0V4Y2VwdGlvbiwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9WFJXZWJHTExheWVy
CitdIGludGVyZmFjZSBXZWJYUldlYkdMTGF5ZXIgeworICAgIC8vIEF0dHJpYnV0ZXMKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhbnRpYWxpYXM7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaWdub3JlRGVwdGhWYWx1ZXM7CisKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFdlYkdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXI7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJhbWVidWZmZXJXaWR0aDsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmcmFtZWJ1ZmZlckhlaWdodDsKKworICAgIC8vIE1ldGhv
ZHMKKyAgICBXZWJYUlZpZXdwb3J0PyBnZXRWaWV3cG9ydChXZWJYUlZpZXcgdmlldyk7CisKKyAg
ICAvLyBTdGF0aWMgTWV0aG9kcworICAgIHN0YXRpYyBkb3VibGUgZ2V0TmF0aXZlRnJhbWVidWZm
ZXJTY2FsZUZhY3RvcihXZWJYUlNlc3Npb24gc2Vzc2lvbik7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NmY0MDcyYTcxNWNkZjVjYjcxMzNiMzI5ZjljYjhlYTU3ODc2MGZmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRN
b2RlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSRW52
aXJvbm1lbnRCbGVuZE1vZGUgeworICAgIE9wYXF1ZSwKKyAgICBBZGRpdGl2ZSwKKyAgICBBbHBo
YUJsZW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkVudmly
b25tZW50QmxlbmRNb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWZhMDg4Y2ZjZWQ2MTA5ZTljY2IyMWRl
ZjNjNDExZTg4Y2EzOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFs
PVdFQlhSCitdIGVudW0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZSB7CisgICAgIm9wYXF1ZSIsCisg
ICAgImFkZGl0aXZlIiwKKyAgICAiYWxwaGEtYmxlbmQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkV5ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUkV5ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMWVhN2UxZTdkODIyNjMyNWY2MGM4MjZmZmZiYzBi
OWJhNGQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSRXllLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhS
RXllIHsKKyAgICBOb25lLAorICAgIExlZnQsCisgICAgUmlnaHQsCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRXllLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJFeWUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZDFlNDMwNGE2MmVhNjU5MzcwMzU0NjU5
NTQ0MDM5NjIwMzgzOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSRXllLmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSCitdIGVudW0gWFJF
eWUgeworICAgICJub25lIiwKKyAgICAibGVmdCIsCisgICAgInJpZ2h0IgorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTg1MDQ5NzY4ODRlYzE4ZWVmMzgxZWRhY2MyYTUzNTRmMWNmMjgzMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFtZVJlcXVl
c3RDYWxsYmFjay5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgor
I2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUkZyYW1lOworCitjbGFzcyBYUkZy
YW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8WFJGcmFtZVJlcXVlc3RDYWxs
YmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0
aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBDYWxsYmFj
a1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUgaGlnaFJlc1RpbWVNcywgV2ViWFJGcmFt
ZSYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJGcmFt
ZVJlcXVlc3RDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSRnJh
bWVSZXF1ZXN0Q2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YjE1MWEzMWJhZjhlN2I5ODBiMTJm
NTI1MDk0ODRmYzU5NDgxN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworWworICAg
IENvbmRpdGlvbmFsPVdFQlhSCitdIGNhbGxiYWNrIFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB2
b2lkIChET01IaWdoUmVzVGltZVN0YW1wIHRpbWUsIFdlYlhSRnJhbWUgZnJhbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMzMzAz
NGQwY2Q0OWFjOGRlZTkwMmEwODE2NDQ4MDQzNzhjYmMyYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFhSSGFuZGVkbmVzcyB7CisgICAgTm9uZSwK
KyAgICBMZWZ0LAorICAgIFJpZ2h0LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUkhhbmRlZG5lc3MuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UkhhbmRlZG5lc3MuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZjcwNWE2MDBiZWViYjIxZTgxZDgxMmYyZDdk
MGM3MmM1MDZmMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSSGFuZGVkbmVzcy5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVt
IFhSSGFuZGVkbmVzcyB7CisgICAgIm5vbmUiLAorICAgICJsZWZ0IiwKKyAgICAicmlnaHQiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNl
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZl
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIyNjMxYWI1NTI5NzA1NmNjMDYzZDc0NDY4OWQzZTAzM2NhMGZh
NTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5w
dXRTb3VyY2VFdmVudC5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZUV2ZW50LmgiCisKKyNpZiBFTkFC
TEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViWFJJbnB1
dFNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklucHV0U291cmNlRXZl
bnQ+IFhSSW5wdXRTb3VyY2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNv
bnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFhSSW5wdXRTb3VyY2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKSk7Cit9CisKK1hSSW5wdXRTb3VyY2VFdmVudDo6WFJJbnB1dFNvdXJjZUV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQg
aXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAg
ICAsIG1fZnJhbWUoaW5pdGlhbGl6ZXIuZnJhbWUpCisgICAgLCBtX2lucHV0U291cmNlKGluaXRp
YWxpemVyLmlucHV0U291cmNlKQorICAgICwgbV9idXR0b25JbmRleChpbml0aWFsaXplci5idXR0
b25JbmRleCkKK3sKKyAgICBBU1NFUlQobV9mcmFtZSk7CisgICAgQVNTRVJUKG1faW5wdXRTb3Vy
Y2UpOworfQorCitYUklucHV0U291cmNlRXZlbnQ6On5YUklucHV0U291cmNlRXZlbnQoKSA9IGRl
ZmF1bHQ7CisKK2NvbnN0IFdlYlhSRnJhbWUmIFhSSW5wdXRTb3VyY2VFdmVudDo6ZnJhbWUoKSBj
b25zdAoreworICAgIHJldHVybiAqbV9mcmFtZTsKK30KKworY29uc3QgV2ViWFJJbnB1dFNvdXJj
ZSYgWFJJbnB1dFNvdXJjZUV2ZW50OjppbnB1dFNvdXJjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICptX2lucHV0U291cmNlOworfQorCitPcHRpb25hbDxpbnQ+IFhSSW5wdXRTb3VyY2VFdmVudDo6
YnV0dG9uSW5kZXgoKSBjb25zdAoreworICAgIHJldHVybiBtX2J1dHRvbkluZGV4OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YzdmYzA0NzQ3YTJiZjExZWE4YjJmYjdiNWNhOWY0NTRhYzE1MzAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQu
aApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViWFJGcmFtZTsKK2NsYXNzIFdlYlhSSW5wdXRTb3VyY2U7CisKK2NsYXNzIFhSSW5wdXRT
b3VyY2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IElu
aXQgOiBFdmVudEluaXQgeworICAgICAgICBSZWZQdHI8V2ViWFJGcmFtZT4gZnJhbWU7CisgICAg
ICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlPiBpbnB1dFNvdXJjZTsKKyAgICAgICAgT3B0aW9u
YWw8aW50PiBidXR0b25JbmRleDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxYUklucHV0U291
cmNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VFdmVudCgpOwor
CisgICAgY29uc3QgV2ViWFJGcmFtZSYgZnJhbWUoKSBjb25zdDsKKyAgICBjb25zdCBXZWJYUklu
cHV0U291cmNlJiBpbnB1dFNvdXJjZSgpIGNvbnN0OworICAgIE9wdGlvbmFsPGludD4gYnV0dG9u
SW5kZXgoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUklucHV0U291cmNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhS
RnJhbWU+IG1fZnJhbWU7CisgICAgUmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+IG1faW5wdXRTb3Vy
Y2U7CisgICAgT3B0aW9uYWw8aW50PiBtX2J1dHRvbkluZGV4OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjli
NDhhNjAyZjhiMTI1OWZkODg5OWFlMTY3NWFmYWIyNDQzYmYxNjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VFdmVudC5pZGwKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBYUklucHV0U291cmNlRXZl
bnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBXZWJYUkZyYW1lIGZyYW1lOworICAg
IHJlcXVpcmVkIFdlYlhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBTZWN1cmVD
b250ZXh0LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0
eXBlLCBYUklucHV0U291cmNlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorXSBpbnRlcmZhY2Ug
WFJJbnB1dFNvdXJjZUV2ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgV2ViWFJGcmFtZSBmcmFtZTsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIFdlYlhSSW5wdXRTb3VyY2UgaW5wdXRTb3VyY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzA5YzIyZmZlNDU5MDVhMDZmYTFjODkwMDc4NDMwZDcwMTY4MGEwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIgor
CisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiV2ViWFJJbnB1dFNvdXJjZS5oIgorI2lu
Y2x1ZGUgIldlYlhSU2Vzc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50PiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpjcmVhdGUo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3Rl
ZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQ6OlhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQorICAgICwgbV9zZXNz
aW9uKCppbml0aWFsaXplci5zZXNzaW9uKQorICAgICwgbV9hZGRlZChpbml0aWFsaXplci5hZGRl
ZCkKKyAgICAsIG1fcmVtb3ZlZChpbml0aWFsaXplci5yZW1vdmVkKQoreworfQorCitYUklucHV0
U291cmNlc0NoYW5nZUV2ZW50Ojp+WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudCgpID0gZGVmYXVs
dDsKKworY29uc3QgV2ViWFJTZXNzaW9uJiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50OjpzZXNz
aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uOworfQorCitjb25zdCBWZWN0b3I8
UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6YWRk
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2FkZGVkOworfQorCitjb25zdCBWZWN0b3I8UmVm
UHRyPFdlYlhSSW5wdXRTb3VyY2U+PiYgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudDo6cmVtb3Zl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVtb3ZlZDsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZTRlY2M3NzRmOThkYjMwYTIyMjgxODBhOGU2YWI2MzhhMmM0OGExCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBXZWJYUklucHV0U291cmNlOworY2xhc3MgV2ViWFJTZXNzaW9uOworCitjbGFzcyBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJlZlB0cjxXZWJYUlNlc3Npb24+
IHNlc3Npb247CisgICAgICAgIFZlY3RvcjxSZWZQdHI8V2ViWFJJbnB1dFNvdXJjZT4+IGFkZGVk
OworICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYlhSSW5wdXRTb3VyY2U+PiByZW1vdmVkOworICAg
IH07CisKKyAgICBzdGF0aWMgUmVmPFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8p
OworICAgIHZpcnR1YWwgflhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQoKTsKKworICAgIGNvbnN0
IFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbigpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
V2ViWFJJbnB1dFNvdXJjZT4+JiBhZGRlZCgpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViWFJJbnB1dFNvdXJjZT4+JiByZW1vdmVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYs
IElzVHJ1c3RlZCk7CisKKyAgICBSZWY8V2ViWFJTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgVmVj
dG9yPFJlZlB0cjxXZWJYUklucHV0U291cmNlPj4gbV9hZGRlZDsKKyAgICBWZWN0b3I8UmVmUHRy
PFdlYlhSSW5wdXRTb3VyY2U+PiBtX3JlbW92ZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42OGE0NjU5MmI5NmNiZDlmMWZmMTY3YmIxOTEwYTZlMTQ3ZGFlYzA2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5n
ZUV2ZW50LmlkbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhS
SW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBX
ZWJYUlNlc3Npb24gc2Vzc2lvbjsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxXZWJYUklucHV0
U291cmNlPiBhZGRlZDsKKyAgICByZXF1aXJlZCBGcm96ZW5BcnJheTxXZWJYUklucHV0U291cmNl
PiByZW1vdmVkOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywK
KyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVu
dEluaXQgZXZlbnRJbml0RGljdCksCitdIGludGVyZmFjZSBYUklucHV0U291cmNlc0NoYW5nZUV2
ZW50IDogRXZlbnQgeworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJT
ZXNzaW9uIHNlc3Npb247CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96
ZW5BcnJheTxXZWJYUklucHV0U291cmNlPiBhZGRlZDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIEZyb3plbkFycmF5PFdlYlhSSW5wdXRTb3VyY2U+IHJlbW92ZWQ7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNl
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODk5YjM0OGI1NWZkMjc5NDM4N2IzZmM4ZjRkMmMwZGYx
MTNjZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VFdmVudC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgiCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlJlZmVyZW5jZVNwYWNlLmgiCisj
aW5jbHVkZSAiV2ViWFJSaWdpZFRyYW5zZm9ybS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxYUlJlZmVyZW5jZVNwYWNlRXZlbnQ+IFhSUmVmZXJlbmNlU3BhY2VFdmVudDo6Y3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0
ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhSUmVmZXJlbmNlU3Bh
Y2VFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7Cit9CisKK1hSUmVmZXJlbmNl
U3BhY2VFdmVudDo6WFJSZWZlcmVuY2VTcGFjZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVmZXJlbmNlU3BhY2Uo
aW5pdGlhbGl6ZXIucmVmZXJlbmNlU3BhY2UpCisgICAgLCBtX3RyYW5zZm9ybShpbml0aWFsaXpl
ci50cmFuc2Zvcm0pCit7CisgICAgQVNTRVJUKG1fcmVmZXJlbmNlU3BhY2UpOworICAgIEFTU0VS
VChtX3RyYW5zZm9ybSk7Cit9CisKK1hSUmVmZXJlbmNlU3BhY2VFdmVudDo6flhSUmVmZXJlbmNl
U3BhY2VFdmVudCgpID0gZGVmYXVsdDsKKworY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYgWFJS
ZWZlcmVuY2VTcGFjZUV2ZW50OjpyZWZlcmVuY2VTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICptX3JlZmVyZW5jZVNwYWNlOworfQorCitjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBYUlJl
ZmVyZW5jZVNwYWNlRXZlbnQ6OnRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX3Ry
YW5zZm9ybTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVy
ZW5jZVNwYWNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1MjBhN2NkZjE5MDA5OTE0NDMyZGZiYTllNzU4
Yjg4ZjNlZDhmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV2ZW50Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUlJlZmVyZW5jZVNwYWNlOworY2xhc3MgV2ViWFJS
aWdpZFRyYW5zZm9ybTsKKworY2xhc3MgWFJSZWZlcmVuY2VTcGFjZUV2ZW50IDogcHVibGljIEV2
ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFJl
ZlB0cjxXZWJYUlJlZmVyZW5jZVNwYWNlPiByZWZlcmVuY2VTcGFjZTsKKyAgICAgICAgUmVmUHRy
PFdlYlhSUmlnaWRUcmFuc2Zvcm0+IHRyYW5zZm9ybTsKKyAgICB9OworCisgICAgc3RhdGljIFJl
ZjxYUlJlZmVyZW5jZVNwYWNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3Qg
SW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHZpcnR1YWwgflhSUmVmZXJl
bmNlU3BhY2VFdmVudCgpOworCisgICAgY29uc3QgV2ViWFJSZWZlcmVuY2VTcGFjZSYgcmVmZXJl
bmNlU3BhY2UoKSBjb25zdDsKKyAgICBjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiB0cmFuc2Zv
cm0oKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBYUlJlZmVyZW5jZVNwYWNlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhS
UmVmZXJlbmNlU3BhY2U+IG1fcmVmZXJlbmNlU3BhY2U7CisgICAgUmVmUHRyPFdlYlhSUmlnaWRU
cmFuc2Zvcm0+IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2OWMxNGMzNTgz
ZjEzZWY4ZDdjYWI0YzhjOTMxM2Q5NzEyYzJkNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5pZGwKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAg
ICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBYUlJlZmVyZW5jZVNwYWNlRXZlbnRJ
bml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBXZWJYUlJlZmVyZW5jZVNwYWNlIHJlZmVy
ZW5jZVNwYWNlOworICAgIFdlYlhSUmlnaWRUcmFuc2Zvcm0gdHJhbnNmb3JtOworfTsKKworWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAg
U2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBDb25zdHJ1Y3RvcihET01T
dHJpbmcgdHlwZSwgWFJSZWZlcmVuY2VTcGFjZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKK10g
aW50ZXJmYWNlIFhSUmVmZXJlbmNlU3BhY2VFdmVudCA6IEV2ZW50IHsKKyAgICBbU2FtZU9iamVj
dF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSUmVmZXJlbmNlU3BhY2UgcmVmZXJlbmNlU3BhY2U7
CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlJpZ2lkVHJhbnNmb3Jt
IHRyYW5zZm9ybTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSUmVmZXJlbmNlU3BhY2VUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hS
UmVmZXJlbmNlU3BhY2VUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQzNTg5NmFiOWMyNDA2NTAyMjUyYmQw
MjkxYzU1MGIwZDkzNThkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgWFJSZWZlcmVuY2VTcGFjZVR5cGUgeworICAgIFZpZXdlciwK
KyAgICBMb2NhbCwKKyAgICBMb2NhbEZsb29yLAorICAgIEJvdW5kZWRGbG9vciwKKyAgICBVbmJv
dW5kZWQKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZWZlcmVu
Y2VTcGFjZVR5cGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlVHlwZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI5OTZiYmU5MGVmNGRjM2VlZmY5YzNjNWZiZjc5
ZGM5MGNlNTQ1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIK
K10gZW51bSBYUlJlZmVyZW5jZVNwYWNlVHlwZSB7CisgICAgInZpZXdlciIsCisgICAgImxvY2Fs
IiwKKyAgICAibG9jYWwtZmxvb3IiLAorICAgICJib3VuZGVkLWZsb29yIiwKKyAgICAidW5ib3Vu
ZGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5k
ZXJTdGF0ZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0
ZUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MDcxODBiMGUwZjc4MmMyMTc2Nzk5MzdiMTRjOTg3YjNiNGYx
MjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlJl
bmRlclN0YXRlSW5pdC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUldlYkdMTGF5ZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBkb3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBk
ZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5lVmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBSZWZQ
dHI8V2ViWFJXZWJHTExheWVyPiBiYXNlTGF5ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvWFJSZW5kZXJTdGF0ZUluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MGVhZTRiMmE5
ZDQxZjk0ZGE3Y2IyNWNiMDk5YmE1ZTJhZWMxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSUmVuZGVyU3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSUmVuZGVyU3RhdGVJbml0IHsKKyAgICBk
b3VibGUgZGVwdGhOZWFyOworICAgIGRvdWJsZSBkZXB0aEZhcjsKKyAgICBkb3VibGUgaW5saW5l
VmVydGljYWxGaWVsZE9mVmlldzsKKyAgICBXZWJYUldlYkdMTGF5ZXI/IGJhc2VMYXllcjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmODc0OGM4YTAxYTI4ZGViNmI1NDgxZmNjNTRhN2MxZDg3ZTZkY2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50
LmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJYUlNlc3Npb25FdmVudC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5j
bHVkZSAiV2ViWFJTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFhSU2Vz
c2lvbkV2ZW50PiBYUlNlc3Npb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFhSU2Vzc2lvbkV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1Ry
dXN0ZWQpKTsKK30KKworWFJTZXNzaW9uRXZlbnQ6OlhSU2Vzc2lvbkV2ZW50KGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVk
KQorICAgIDogRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKKyAgICAsIG1fc2Vz
c2lvbihpbml0aWFsaXplci5zZXNzaW9uKQoreworICAgIEFTU0VSVChtX3Nlc3Npb24pOworfQor
CitYUlNlc3Npb25FdmVudDo6flhSU2Vzc2lvbkV2ZW50KCkgPSBkZWZhdWx0OworCitjb25zdCBX
ZWJYUlNlc3Npb24mIFhSU2Vzc2lvbkV2ZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gKm1fc2Vzc2lvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNlc3Npb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25F
dmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjllOGNlYjQwNzJkNWVjZjY5YWYwZWZiZTcwYjNmOWY4NjQ0YWY5
OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbkV2ZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV2ViWFJTZXNzaW9uOworCitjbGFzcyBYUlNlc3Npb25FdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudElu
aXQgeworICAgICAgICBSZWZQdHI8V2ViWFJTZXNzaW9uPiBzZXNzaW9uOworICAgIH07CisKKyAg
ICBzdGF0aWMgUmVmPFhSU2Vzc2lvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNv
bnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICB2aXJ0dWFsIH5YUlNl
c3Npb25FdmVudCgpOworCisgICAgY29uc3QgV2ViWFJTZXNzaW9uJiBzZXNzaW9uKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgWFJTZXNzaW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0
IEluaXQmLCBJc1RydXN0ZWQpOworCisgICAgUmVmUHRyPFdlYlhSU2Vzc2lvbj4gbV9zZXNzaW9u
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkV2ZW50LmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NzE5MzNmMjk1ZTU0NDEwZWQ2MGY2MzkwYWU1YzI4NGYyYmM5MjI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVu
dC5pZGwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBYUlNlc3Np
b25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFdlYlhSU2Vzc2lvbiBzZXNz
aW9uOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9u
YWw9V0VCWFIsCisgICAgU2VjdXJlQ29udGV4dCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBD
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgWFJTZXNzaW9uRXZlbnRJbml0IGV2ZW50SW5pdERp
Y3QpLAorXSBpbnRlcmZhY2UgWFJTZXNzaW9uRXZlbnQgOiBFdmVudCB7CisgICAgW1NhbWVPYmpl
Y3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlNlc3Npb24gc2Vzc2lvbjsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MmEy
NjgyMjk2ZTJlZDQ5MWE3N2I0MmQ4NzQwMDBhMmNlYjY5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaApAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBYUlNlc3Npb25Jbml0IHsKKyAgICBWZWN0b3I8SlNDOjpKU1ZhbHVl
PiByZXF1aXJlZEZlYXR1cmVzOworICAgIFZlY3RvcjxKU0M6OkpTVmFsdWU+IG9wdGlvbmFsRmVh
dHVyZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lv
bkluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Jbml0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDVjMGQ1MDcyNDVkNWE4Mzc5Y2M2MjU5NWFjNTUxOWY5YTBkZGExCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25J
bml0LmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IFhSU2Vz
c2lvbkluaXQgeworICAgIHNlcXVlbmNlPGFueT4gcmVxdWlyZWRGZWF0dXJlczsKKyAgICBzZXF1
ZW5jZTxhbnk+IG9wdGlvbmFsRmVhdHVyZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1hSU2Vzc2lvbk1vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzFhOWRhNTg0YmMwYTJkZjRkODFk
YjA5ODQxMmQxZjI5NWIxZjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25Nb2RlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIlBsYXRmb3Jt
WFIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBYUlNlc3Npb25Nb2RlID0gUGxh
dGZvcm1YUjo6U2Vzc2lvbk1vZGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJTZXNzaW9uTW9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSU2Vz
c2lvbk1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NWY2MDZiNDY5NzlhMTJkN2MxNGMzNmIzMTU3NzEy
OGQyYjFjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSU2Vzc2lvbk1vZGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gZW51bSBY
UlNlc3Npb25Nb2RlIHsKKyAgICAiaW5saW5lIiwKKyAgICAiaW1tZXJzaXZlLXZyIiwKKyAgICAi
aW1tZXJzaXZlLWFyIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJUYXJnZXRSYXlNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFy
Z2V0UmF5TW9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmY2E0NGU0NTFiOTdjNTYwMjZlMTQ1YjUyMjMzMWY4
MTY1YmFlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVGFyZ2V0UmF5TW9kZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBYUlRhcmdldFJheU1vZGUgeworICAgIEdhemUsCisgICAgVHJhY2tlZFBvaW50ZXIs
CisgICAgU2NyZWVuLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlRhcmdldFJheU1vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdl
dFJheU1vZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZTU0NjNkMzRjZjY2ZTY4YzNjMjFiMzQ2YmJiOTc3
M2FiZDhhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1hSVGFyZ2V0UmF5TW9kZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUgorXSBlbnVt
IFhSVGFyZ2V0UmF5TW9kZSB7CisgICAgImdhemUiLAorICAgICJ0cmFja2VkLXBvaW50ZXIiLAor
ICAgICJzY3JlZW4iCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9YUlZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlZp
c2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZGQ4NTk3OGQ5ZDAxZmY3OTM2MmM3YzBiYjg1
OGQ3NzdmYjI5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlzaWJpbGl0eVN0YXRlLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFhSVmlzaWJpbGl0eVN0YXRlIHsKKyAgICBWaXNpYmxlLAorICAgIFZpc2li
bGVCbHVycmVkLAorICAgIEhpZGRlbgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1hSVmlzaWJpbGl0eVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWVmMjc1ODBmYzE5OGYzNjc5
NzFjMzg4YzBmOThmZmM5ZDZmZThlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9YUlZpc2liaWxpdHlTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25h
bD1XRUJYUgorXSBlbnVtIFhSVmlzaWJpbGl0eVN0YXRlIHsKKyAgICAidmlzaWJsZSIsCisgICAg
InZpc2libGUtYmx1cnJlZCIsCisgICAgImhpZGRlbiIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNDRkNTEwYTBl
ZjRlYzFkYzg5OTFmNTRmMmIwMDdkZDAzOGU3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2ViR0xMYXllckluaXQuaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBYUldlYkdMTGF5ZXJJbml0IHsKKyAgICBib29sIGFu
dGlhbGlhcyB7IHRydWUgfTsKKyAgICBib29sIGRlcHRoIHsgdHJ1ZSB9OworICAgIGJvb2wgc3Rl
bmNpbCB7IGZhbHNlIH07CisgICAgYm9vbCBhbHBoYSB7IHRydWUgfTsKKyAgICBib29sIGlnbm9y
ZURlcHRoVmFsdWVzIHsgdHJ1ZSB9OworICAgIGRvdWJsZSBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9y
IHsgMS4wIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSV2Vi
R0xMYXllckluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUldlYkdMTGF5
ZXJJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTQzNmQyYjU0MzJjY2Y5ODUyYWNhZGViNzBkNDMyZTVh
NTUzYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UldlYkdMTGF5ZXJJbml0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0
aW9uYXJ5IFhSV2ViR0xMYXllckluaXQgeworICAgIGJvb2xlYW4gYW50aWFsaWFzID0gdHJ1ZTsK
KyAgICBib29sZWFuIGRlcHRoID0gdHJ1ZTsKKyAgICBib29sZWFuIHN0ZW5jaWwgPSBmYWxzZTsK
KyAgICBib29sZWFuIGFscGhhID0gdHJ1ZTsKKyAgICBib29sZWFuIGlnbm9yZURlcHRoVmFsdWVz
ID0gZmFsc2U7CisgICAgZG91YmxlIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IgPSAxLjA7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFl
ODAxYjQuLmNmYmI3Mjk1MTM1ZjAxYjRjNzQ3NjUxOWQ0Njg3ZTZjNmYxYmUzNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKQEAgLTM5NCw2ICszOTQsOCBAQCBFTkFCTEVfV0VCR1BVX2FwcGxldHZvcyA9
IEVOQUJMRV9XRUJHUFU7CiBFTkFCTEVfV0VCR1BVX21hY29zeCA9ICQoRU5BQkxFX1dFQkdQVSQo
V0tfTUFDT1NfMTAxNCkpOwogRU5BQkxFX1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0ID0gRU5BQkxF
X1dFQkdQVTsKIAorRU5BQkxFX1dFQlhSID0gOworCiBFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNT
ID0gOwogCiBFTkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKQEAgLTQxNCw0ICs0
MTYsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVS
RV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxF
X0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExF
X1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVf
QVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFC
TEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NT
M19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19D
T01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19T
Q1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19U
UkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJ
QklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxF
X0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFf
SU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19T
VVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9G
RUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09N
UExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRF
UlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVf
SU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChF
TkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01f
UFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJ
UFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1P
UllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5B
QkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQo
RU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9O
RVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElO
R19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
KSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9P
QlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVC
QkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVS
X1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0Vf
V09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5U
SEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VT
RVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VC
RFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lO
VEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFC
TEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJf
QVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAk
KEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFC
TEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAk
KEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZF
U1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAk
KEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9D
U1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFC
TEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFC
TEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVO
QUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
X0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVf
RklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ip
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVO
QUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIp
ICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikg
JChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQo
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElB
X1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFC
TEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FD
SEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxF
X1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlND
UkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVS
X0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVf
UkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5B
QkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5B
QkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9T
SEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NU
UkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJf
REVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVS
UykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURF
T19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVS
QUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFC
TEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQ
SV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChF
TkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5k
ZXggMGQ1OTgyZTFkYzY5ZWI2ODBmMDhkZWJkOGU2ZjI2YTcyNDdkOWRhNS4uZTc1ZWNlZjE0MGFi
NWNlZWYxZDBkNmRiYzA2NmUzNWM5MmQzZjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTcwLDMgKzcwLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICR7VVBPV0VSR0xJQl9JTkNMVURFX0RJUlN9CiAgICAgJHtXUEVCQUNLRU5E
X0ZET19JTkNMVURFX0RJUlN9CiApCisKK2lmIChVU0VfT1BFTlhSKQorICAgIGxpc3QoQVBQRU5E
IFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTlhSX0xJQlJBUklFU30pCisgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke09QRU5YUl9JTkNMVURFX0RJUlN9
KQorZW5kaWYgKCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDc3ODI2M2U0YTBiMzE3MzFlM2I1ZjY0ODEwODljMWQwZTMxODU0ODAuLjQwMWNhZDRhYTVmNDJi
NjNiNDU5MGM1MGU0ODQzNTUxM2U5ZGZkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00MTEsNiArNDEx
LDMxIEBAIE1vZHVsZXMvd2ViZ3B1L1dlYkdQVVRleHR1cmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
ZWJHUFVUZXh0dXJlVmlldy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dvcmtlck5hdmlnYXRvckdQVS5j
cHAKIAorI2lmIEVOQUJMRV9XRUJYUgorCitNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNw
cCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3Bw
IEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcCBAbm8tdW5pZnkKK01vZHVs
ZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2Vi
eHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSUG9z
ZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwIEBu
by11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmNwcCBAbm8tdW5pZnkKK01v
ZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dl
YnhyL1dlYlhSU2Vzc2lvbi5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2Uu
Y3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAgQG5vLXVuaWZ5CitN
b2R1bGVzL3dlYnhyL1dlYlhSVmlldy5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhS
Vmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuY3Bw
IEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwIEBuby11bmlmeQor
TW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93
ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2Vi
eHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJT
ZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorCisjZW5kaWYKKwogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCkBAIC0yMDc3LDYgKzIx
MDIsOSBAQCBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKIHBsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lz
dHJ5LmNwcAogCitwbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKK3BsYXRmb3Jt
L3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBAbm8tdW5pZnkKKwogcGx1Z2lucy9ET01NaW1lVHlw
ZS5jcHAKIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKIHBsdWdpbnMvRE9NUGx1Z2luLmNw
cApAQCAtMzUyNCw2ICszNTUyLDQxIEBAIEpTWFBhdGhOU1Jlc29sdmVyLmNwcAogSlNYUGF0aFJl
c3VsdC5jcHAKIEpTWFNMVFByb2Nlc3Nvci5jcHAKIAorI2lmIEVOQUJMRV9XRUJHTAorCitKU1dl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNw
cAorSlNYUkV5ZS5jcHAKK0pTV2ViWFJGcmFtZS5jcHAKK0pTWFJGcmFtZVJlcXVlc3RDYWxsYmFj
ay5jcHAKK0pTWFJIYW5kZWRuZXNzLmNwcAorSlNXZWJYUklucHV0U291cmNlLmNwcAorSlNXZWJY
UklucHV0U291cmNlQXJyYXkuY3BwCitKU1hSSW5wdXRTb3VyY2VFdmVudC5jcHAKK0pTWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAKK0pTV2ViWFJQb3NlLmNwcAorSlNXZWJYUlJlZmVyZW5j
ZVNwYWNlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwCitKU1hSUmVmZXJlbmNlU3Bh
Y2VUeXBlLmNwcAorSlNXZWJYUlJlbmRlclN0YXRlLmNwcAorSlNYUlJlbmRlclN0YXRlSW5pdC5j
cHAKK0pTV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTV2ViWFJTZXNzaW9uLmNwcAorSlNYUlNl
c3Npb25FdmVudC5jcHAKK0pTWFJTZXNzaW9uSW5pdC5jcHAKK0pTWFJTZXNzaW9uTW9kZS5jcHAK
K0pTV2ViWFJTcGFjZS5jcHAKK0pTV2ViWFJTeXN0ZW0uY3BwCitKU1hSVGFyZ2V0UmF5TW9kZS5j
cHAKK0pTV2ViWFJWaWV3LmNwcAorSlNXZWJYUlZpZXdlclBvc2UuY3BwCitKU1dlYlhSVmlld3Bv
cnQuY3BwCitKU1hSVmlzaWJpbGl0eVN0YXRlLmNwcAorSlNXZWJYUldlYkdMTGF5ZXIuY3BwCitK
U1hSV2ViR0xMYXllckluaXQuY3BwCisKKyNlbmRpZgorCiAjaWYgRU5BQkxFX0dBTUVQQUQKIAog
SlNHYW1lcGFkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDczZjNhOWY4YjY1ZTNkMTdkOThjZGEyZmRmZDIwMjZmNWUyMDkx
MTQuLjg2YWU4NTg5YTUxYjhjYTNmZGQ2OTUyNDI5NjM1ZGJlZjFlMzFhNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MTYs
NiArNDgxNiw2MCBAQAogCQlFMUU2RUVBODBCNjI4REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFNkVFQTcwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuaCAqLzsgfTsK
IAkJRTFFQzI5QTAwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFQzI5OUUwQkIwNEM2QjAwRUEx
ODdCIC8qIFhQYXRoTm9kZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUxRUQ4QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUx
RUU4QjcwMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjZDMjQxMkIyQTcwMEU3OTRENiAv
KiBQbGF0Zm9ybVhSLmNwcCAqLzsgfTsKKwkJRTFFRThCNzEyNDEyQjJBODAwRTc5NEQ2IC8qIFBs
YXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovOyB9OworCQlF
MUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCNkYyNDEyQjJBNzAwRTc5NEQ2IC8q
IFBsYXRmb3JtWFIuaCAqLzsgfTsKKwkJRTFFRThCNzYyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhS
Vmlld2VyUG9zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5oICovOyB9Owor
CQlFMUVFOEI3NzI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUM5MjQxMkIx
NzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oICovOyB9OworCQlFMUVFOEI3ODI0
MTMxOTFGMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZp
Z2F0b3JXZWJYUi5oICovOyB9OworCQlFMUVFOEI3OTI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZW5k
ZXJTdGF0ZUluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oICovOyB9
OworCQlFMUVFOEI3QTI0MTMxOTFGMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNDMjQx
MkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3BwICovOyB9OworCQlFMUVFOEI3
QjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFDRDI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi87IH07CisJCUUxRUU4QjdDMjQxMzE5MUYw
MEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJl
bmRlclN0YXRlLmNwcCAqLzsgfTsKKwkJRTFFRThCN0QyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhS
U3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU4QUNGMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmggKi87IH07CisJCUUxRUU4QjdF
MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRDEyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggKi87IH07CisJCUUxRUU4QjdG
MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQyMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLzsgfTsKKwkJRTFFRThCODAyNDEzMTkxRjAw
RTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQzMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi87IH07CisJCUUxRUU4QjgxMjQxMzE5
MUYwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJS
ZW5kZXJTdGF0ZS5oICovOyB9OworCQlFMUVFOEI4MjI0MTMxOTFGMDBFNzk0RDYgLyogWFJWaXNp
YmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU4QUQ2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpc2liaWxpdHlTdGF0ZS5oICovOyB9
OworCQlFMUVFOEI4MzI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJXZWJHTExheWVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUQ4MjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwICovOyB9OworCQlFMUVFOEI4NDI0MTMx
OTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFEQjI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmggKi87IH07CisJCUUxRUU4Qjg1MjQxMzE5MUYwMEU3OTRE
NiAvKiBYUlNlc3Npb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQu
Y3BwICovOyB9OworCQlFMUVFOEI4NjI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJj
ZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmggKi87IH07
CisJCUUxRUU4Qjg3MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUwMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlZpZXcuaCAqLzsgfTsKKwkJRTFFRThCODgyNDEzMTkxRjAwRTc5NEQ2IC8qIFdl
YlhSUG9zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5oICovOyB9OworCQlFMUVFOEI4
OTI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlN5c3RlbS5oICovOyB9OworCQlFMUVFOEI4QTI0MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJGcmFt
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThB
RTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCAqLzsgfTsKKwkJRTFFRThCOEIyNDEz
MTkxRjAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3Nl
LmNwcCAqLzsgfTsKKwkJRTFFRThCOEMyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3Vy
Y2VBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCAq
LzsgfTsKKwkJRTFFRThCOEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFNzI0MTJC
MTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCAqLzsgfTsKKwkJRTFFRThCOEUyNDEzMTk1
MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUU4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3Rl
bS5jcHAgKi87IH07CisJCUUxRUU4QjhGMjQxMzE5NTAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVz
dENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oICov
OyB9OworCQlFMUVFOEI5MDI0MTMxOTUwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFFQTI0MTJC
MTcwMDBFNzk0RDYgLyogWFJUYXJnZXRSYXlNb2RlLmggKi87IH07CisJCUUxRUU4QjkxMjQxMzE5
NTAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZp
ZXdwb3J0LmNwcCAqLzsgfTsKKwkJRTFFRThCOTIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSGFuZGVk
bmVzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RThBRUUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovOyB9OworCQlFMUVFOEI5
MzI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJGcmFtZS5jcHAgKi87IH07CisJCUUxRUU4Qjk0MjQxMzE5NTAwMEU3OTRENiAvKiBOYXZpZ2F0
b3JXZWJYUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovOyB9Owor
CQlFMUVFOEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUYzMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwICovOyB9OworCQlFMUVF
OEI5NjI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSVmlld3BvcnQuaCAqLzsgfTsKKwkJRTFFRThCOTcyNDEzMTk1MDAwRTc5NEQ2IC8qIFhS
RXllLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVF
OEFGNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaCAqLzsgfTsKKwkJRTFFRThCOTgyNDEzMTk1
MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFFRThBRjgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2Uu
Y3BwICovOyB9OworCQlFMUVFOEI5OTI0MTMxOTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXND
aGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFFRThBRjkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQu
aCAqLzsgfTsKKwkJRTFFRThCOUEyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QUZFMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmggKi87IH07CisJCUUxRUU4QjlCMjQxMzE5
NTAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5
ZXIuaCAqLzsgfTsKKwkJRTFFRThCOUMyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRC
bGVuZE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi87
IH07CisJCUUxRUU4QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwNjI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5oICovOyB9OworCQlFMUVFOEI5
RTI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRThCMDgyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSV2ViR0xMYXllckluaXQuaCAqLzsgfTsKKwkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2IC8q
IFhSSW5wdXRTb3VyY2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRThCMDkyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVu
dC5oICovOyB9OworCQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3Nl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4
QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3BwICovOyB9OworCQlFMUVF
OEJBMTI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIwRDI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAgKi87IH07CisJCUUxRUU4QkEyMjQxMzE5NjMwMEU3
OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5j
cHAgKi87IH07CisJCUUxRUU4QkEzMjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjExMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uaCAqLzsgfTsKKwkJRTFFRThCQTQyNDEzMTk2
MzAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3LmNw
cCAqLzsgfTsKKwkJRTFFRThCQTUyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU4QjEzMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggKi87IH07CisJCUUxRUU4QkE2MjQxMzE5
NjMwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJSZWZlcmVuY2VTcGFjZS5oICovOyB9OworCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNv
dXJjZXNDaGFuZ2VFdmVudC5jcHAgKi87IH07CisJCUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRENiAv
KiBXZWJYUklucHV0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5o
ICovOyB9OwogCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjFFODJFMEMz
QzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovOyB9OwogCQlFMUY4MEI4ODE4MzE3
MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGODBCODYxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0b0tl
eVBhaXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMUY4MEI4RTE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4QzE4MzE3MkI1MDA3
ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggKi87IH07CkBAIC0xNTE1NCw2ICsxNTIwOCw5MSBA
QAogCQlFMUVDMjk5RDBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQYXRoTm9kZVNldC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5v
ZGVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhOb2RlU2V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAv
KiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9zZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlZpZXdlclBvc2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBQzgyNDEyQjE2RjAwRTc5NEQ2IC8qIFhSU2Vz
c2lvbk1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbk1vZGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJSZWZlcmVuY2VTcGFjZVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFJSZWZlcmVuY2VTcGFjZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThBQ0EyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldlYlhSLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUNCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlJlbmRlclN0YXRlSW5pdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDQzI0MTJCMTcwMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJSZW5kZXJTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJYUlJlbmRlclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJSZWZlcmVuY2VTcGFj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQzMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ0MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNw
YWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNwYWNlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVy
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJSZW5kZXJTdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0
RDYgLyogWFJWaXNpYmlsaXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFJWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFF
RThBRDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFhSU2Vzc2lvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJXZWJHTExheWVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSV2ViR0xMYXllci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUQ5MjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
c2liaWxpdHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaXNpYmlsaXR5U3Rh
dGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFEQTI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZUV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURDMjQxMkIxNzAwMEU3OTRENiAv
KiBYUlNlc3Npb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBYUlNlc3Npb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURFMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Np
b24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2Vzc2lvbi5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QURGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXcuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUUxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlBvc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJQb3NlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlN5c3RlbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJG
cmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUkZyYW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU0MjQxMkIxNzAwMEU3OTRENiAvKiBY
UklucHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUklu
cHV0U291cmNlc0NoYW5nZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlBvc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFy
cmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSSW5wdXRT
b3VyY2VBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUU3MjQx
MkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYUlNlc3Npb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVl
c3RDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkZyYW1lUmVx
dWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUVBMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFJUYXJnZXRSYXlNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSVmlld3BvcnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5k
ZXJTdGF0ZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3RhdGVJbml0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUQyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSVmlld2VyUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJWaWV3ZXJQ
b3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYUkhhbmRlZG5lc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRUYy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVF
OEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUkZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThBRjEyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRvcldlYlhSLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjIyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSUmVuZGVyU3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSUmVuZGVyU3RhdGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGMzI0MTJCMTcwMDBFNzk0
RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSVmlld3BvcnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRXll
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSRXllLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUY2MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5j
ZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJlZmVyZW5jZVNwYWNlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThBRjcyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
RUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEFGOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFu
Z2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUklucHV0U291cmNl
c0NoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZBMjQx
MkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gWFJSZWZlcmVuY2VTcGFjZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUVFOEFGQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFj
ay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZDMjQxMkIxNzAwMEU3OTRENiAv
KiBYUldlYkdMTGF5ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSV2ViR0xMYXllci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QUZEMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlNlc3Npb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTZXNzaW9u
RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEFGRTI0MTJCMTcw
MDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUlNlc3Npb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QUZGMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFhSVGFyZ2V0UmF5TW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxRUU4QjAwMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAxMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJpZ2lkVHJh
bnNmb3JtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlJpZ2lkVHJhbnNmb3JtLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDIyNDEyQjE3MDAwRTc5NEQ2IC8q
IFhSU3lzdGVtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlN5c3RlbS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjAzMjQxMkIxNzAwMEU3OTRENiAvKiBYUkV5
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJFeWUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMUVFOEIwNDI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSV2ViR0xMYXllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZp
cm9ubWVudEJsZW5kTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUkVu
dmlyb25tZW50QmxlbmRNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QjA2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSUmlnaWRUcmFuc2Zvcm0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVz
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJIYW5kZWRuZXNzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xM
YXllckluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJXZWJHTExheWVy
SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIwOTI0MTJCMTcwMDBF
Nzk0RDYgLyogWFJJbnB1dFNvdXJjZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhSSW5wdXRTb3VyY2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMUVFOEIwQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaWV3cG9ydC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJWaWV3ZXJQb3NlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRnJh
bWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSRnJhbWUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUklucHV0
U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCMEUyNDEyQjE3
MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBO
YXZpZ2F0b3JXZWJYUi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjBG
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTFFRThCMTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSV2ViR0xMYXllckluaXQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSV2ViR0xMYXllckluaXQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTZXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSU2Vzc2lvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEIxMjI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhS
Vmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4QjEzMjQxMkIxNzAw
MEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFhSU2Vzc2lvbkluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThC
MTQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJSZWZlcmVuY2VTcGFjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJj
ZXNDaGFuZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBY
UklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTFFRThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gWFJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThC
MTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMUVFOEIxODI0MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZUFycmF5
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUklucHV0U291cmNlQXJyYXkuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUVFOEI2QzI0MTJCMkE3MDBFNzk0RDYgLyogUGxh
dGZvcm1YUi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9y
bVhSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFFRThCNkUyNDEyQjJBNzAw
RTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGxhdGZvcm1YUi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRUU4
QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtWFIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFGMUU4MkQwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRl
bnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRFeHRlbnNpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRjgwQjg0MTgzMTcyNDcwMDc4ODVD
MyAvKiBDcnlwdG9LZXlQYWlyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcnlwdG9LZXlQYWlyLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzk0LDYgKzIyNTMzLDcgQEAKIAkJCQk5OTZFNTlEQTFE
RjAwRDQ1MDA2NjEyQjkgLyogd2ViZHJpdmVyICovLAogCQkJCUQwMEY1OTNFMjE2RUNDNDMwMDBE
NzFEQiAvKiB3ZWJncHUgKi8sCiAJCQkJOTdBQUJDRjcxNEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNv
Y2tldHMgKi8sCisJCQkJRTFFRThBQzYyNDEyQjE2RjAwRTc5NEQ2IC8qIHdlYnhyICovLAogCQkJ
KTsKIAkJCXBhdGggPSBNb2R1bGVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI1
OTQ0LDYgKzI2MDg0LDcgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1QjQgLyogbmV0d29y
ayAqLywKIAkJCQkxQTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICovLAogCQkJCUIyQzNE
OUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAorCQkJCUUxRUU4QjZCMjQxMkIyQTcwMEU3
OTRENiAvKiB4ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYgLyogQWJvcnRhYmxl
VGFza1F1ZXVlLmggKi8sCiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0
aW9uVmFsdWUuY3BwICovLAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxh
dGlvblZhbHVlLmggKi8sCkBAIC0yNzAzNiw2ICsyNzE3NywxMTMgQEAKIAkJCW5hbWUgPSBUaHJl
YWRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTFFRThBQzYyNDEyQjE2
RjAwRTc5NEQ2IC8qIHdlYnhyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQlFMUVFOEFGMTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3Bw
ICovLAorCQkJCUUxRUU4QUNBMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICov
LAorCQkJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5pZGwgKi8s
CisJCQkJRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlLmNwcCAqLywKKwkJCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuaCAqLywKKwkJCQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJGcmFtZS5jcHAgKi8sCisJCQkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJh
bWUuaCAqLywKKwkJCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJj
ZS5jcHAgKi8sCisJCQkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3Vy
Y2UuaCAqLywKKwkJCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJj
ZUFycmF5LmNwcCAqLywKKwkJCQlFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1
dFNvdXJjZUFycmF5LmggKi8sCisJCQkJRTFFRThBRTUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
UG9zZS5jcHAgKi8sCisJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5o
ICovLAorCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNl
LmNwcCAqLywKKwkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VT
cGFjZS5oICovLAorCQkJCUUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0
YXRlLmNwcCAqLywKKwkJCQlFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJT
dGF0ZS5oICovLAorCQkJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJh
bnNmb3JtLmNwcCAqLywKKwkJCQlFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdp
ZFRyYW5zZm9ybS5oICovLAorCQkJCUUxRUU4QjBGMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNl
c3Npb24uY3BwICovLAorCQkJCUUxRUU4QjExMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Np
b24uaCAqLywKKwkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAg
Ki8sCisJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3BhY2UuaCAqLywKKwkJ
CQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwICovLAorCQkJCUUx
RUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5oICovLAorCQkJCUUxRUU4QjEy
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovLAorCQkJCUUxRUU4QUUwMjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLywKKwkJCQlFMUVFOEIwQjI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCAqLywKKwkJCQlFMUVFOEFDNzI0MTJCMTZGMDBFNzk0
RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi8sCisJCQkJRTFFRThBRUIyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSVmlld3BvcnQuY3BwICovLAorCQkJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlZpZXdwb3J0LmggKi8sCisJCQkJRTFFRThBRDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSV2ViR0xMYXllci5jcHAgKi8sCisJCQkJRTFFRThBRjcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLywKKwkJCQlFMUVFOEIwNTI0MTJCMTcwMDBFNzk0
RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oICovLAorCQkJCUUxRUU4QURBMjQxMkIxNzAw
MEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCAqLywKKwkJCQlFMUVFOEFGNTI0
MTJCMTcwMDBFNzk0RDYgLyogWFJFeWUuaCAqLywKKwkJCQlFMUVFOEIwMzI0MTJCMTcwMDBFNzk0
RDYgLyogWFJFeWUuaWRsICovLAorCQkJCUUxRUU4QjBDMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZy
YW1lLmlkbCAqLywKKwkJCQlFMUVFOEFFOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVl
c3RDYWxsYmFjay5oICovLAorCQkJCUUxRUU4QUZCMjQxMkIxNzAwMEU3OTRENiAvKiBYUkZyYW1l
UmVxdWVzdENhbGxiYWNrLmlkbCAqLywKKwkJCQlFMUVFOEFFRTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJIYW5kZWRuZXNzLmggKi8sCisJCQkJRTFFRThCMDcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSGFu
ZGVkbmVzcy5pZGwgKi8sCisJCQkJRTFFRThBRUYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2UuaWRsICovLAorCQkJCUUxRUU4QjE4MjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0U291
cmNlQXJyYXkuaWRsICovLAorCQkJCUUxRUU4QUNDMjQxMkIxNzAwMEU3OTRENiAvKiBYUklucHV0
U291cmNlRXZlbnQuY3BwICovLAorCQkJCUUxRUU4QjA5MjQxMkIxNzAwMEU3OTRENiAvKiBYUklu
cHV0U291cmNlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEIwMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJJ
bnB1dFNvdXJjZUV2ZW50LmlkbCAqLywKKwkJCQlFMUVFOEIxNTI0MTJCMTcwMDBFNzk0RDYgLyog
WFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgKi8sCisJCQkJRTFFRThBRjkyNDEyQjE3MDAw
RTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuaCAqLywKKwkJCQlFMUVFOEFFNDI0
MTJCMTcwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5pZGwgKi8sCisJCQkJ
RTFFRThCMTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSUG9zZS5pZGwgKi8sCisJCQkJRTFFRThBRjYy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2UuaWRsICovLAorCQkJCUUxRUU4QUYz
MjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwICovLAorCQkJCUUx
RUU4QURCMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCAqLywKKwkJ
CQlFMUVFOEFEMDI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmlkbCAq
LywKKwkJCQlFMUVFOEFDOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUu
aCAqLywKKwkJCQlFMUVFOEFGQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5
cGUuaWRsICovLAorCQkJCUUxRUU4QUYyMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRl
LmlkbCAqLywKKwkJCQlFMUVFOEFDQjI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUlu
aXQuaCAqLywKKwkJCQlFMUVFOEFFQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJSZW5kZXJTdGF0ZUlu
aXQuaWRsICovLAorCQkJCUUxRUU4QjAxMjQxMkIxNzAwMEU3OTRENiAvKiBYUlJpZ2lkVHJhbnNm
b3JtLmlkbCAqLywKKwkJCQlFMUVFOEFERTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uLmlk
bCAqLywKKwkJCQlFMUVFOEFEQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuY3Bw
ICovLAorCQkJCUUxRUU4QUU3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5oICov
LAorCQkJCUUxRUU4QUZEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5pZGwgKi8s
CisJCQkJRTFFRThCMTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkluaXQuaCAqLywKKwkJ
CQlFMUVFOEFENzI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uSW5pdC5pZGwgKi8sCisJCQkJ
RTFFRThBRkUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbk1vZGUuaCAqLywKKwkJCQlFMUVF
OEFDODI0MTJCMTZGMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5pZGwgKi8sCisJCQkJRTFFRThB
RDQyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSU3BhY2UuaWRsICovLAorCQkJCUUxRUU4QjAyMjQxMkIx
NzAwMEU3OTRENiAvKiBYUlN5c3RlbS5pZGwgKi8sCisJCQkJRTFFRThBRUEyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oICovLAorCQkJCUUxRUU4QUZGMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlRhcmdldFJheU1vZGUuaWRsICovLAorCQkJCUUxRUU4QURGMjQxMkIxNzAwMEU3OTRE
NiAvKiBYUlZpZXcuaWRsICovLAorCQkJCUUxRUU4QUVEMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZp
ZXdlclBvc2UuaWRsICovLAorCQkJCUUxRUU4QjBBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlZpZXdw
b3J0LmlkbCAqLywKKwkJCQlFMUVFOEFENjI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5
U3RhdGUuaCAqLywKKwkJCQlFMUVFOEFEOTI0MTJCMTcwMDBFNzk0RDYgLyogWFJWaXNpYmlsaXR5
U3RhdGUuaWRsICovLAorCQkJCUUxRUU4QjA0MjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5
ZXIuaCAqLywKKwkJCQlFMUVFOEFGQzI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmlk
bCAqLywKKwkJCQlFMUVFOEIwODI0MTJCMTcwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5o
ICovLAorCQkJCUUxRUU4QjEwMjQxMkIxNzAwMEU3OTRENiAvKiBYUldlYkdMTGF5ZXJJbml0Lmlk
bCAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VieHI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OworCQlFMUVFOEI2QjI0MTJCMkE3MDBFNzk0RDYgLyogeHIgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxRUU4QjZEMjQxMkIyQTcwMEU3OTRE
NiAvKiBvcGVueHIgKi8sCisJCQkJRTFFRThCNkMyNDEyQjJBNzAwRTc5NEQ2IC8qIFBsYXRmb3Jt
WFIuY3BwICovLAorCQkJCUUxRUU4QjZGMjQxMkIyQTcwMEU3OTRENiAvKiBQbGF0Zm9ybVhSLmgg
Ki8sCisJCQkpOworCQkJcGF0aCA9IHhyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJRTFFRThCNkQyNDEyQjJBNzAwRTc5NEQ2IC8qIG9wZW54ciAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTFFRThCNkUyNDEyQjJBNzAwRTc5NEQ2
IC8qIFBsYXRmb3JtWFIuY3BwICovLAorCQkJKTsKKwkJCXBhdGggPSBvcGVueHI7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFMUYwNDI0MzA5ODM5Mzg5MDA2Njk0RUEgLyog
eG1sICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTMxNzEz
LDYgKzMxOTYxLDcgQEAKIAkJCQk2QjUwN0EyNDIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9y
SXNMb2dnZWRJbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVBNzI1RDYxQUNBQkQ1NzAwRUFEMTdC
IC8qIE5hdmlnYXRvck1lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2RTU5REYx
REYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCNzgyNDEzMTkxRjAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVt
ZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzQzMEFEQkE1REUwMEE0NTU0RCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5RDkzNEIx
QUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxOTI3LDYgKzMyMTc2LDcgQEAKIAkJCQkwNzRFODJCQjE4QTY5RjBFMDA3
RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkIwRDRC
RTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzVDNDc2QjA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzEyQkU0ODAxRkU4NjRBNzAwMjAzMUNDIC8qIFBsYXliYWNrRGlyZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEwOTFDQkQ5OUY0MDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEyOUEzMjFDQzAx
QTk1MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzMxNzIsNiArMzM0MjIsMjAgQEAKIAkJCQk1RDIxQTgwMzEzRUNFNURGMDBCQjcw
NjQgLyogV2ViVlRUUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMTBCNjk4MDE0MEMxNzQw
MDBCQzFDMjYgLyogV2ViVlRUVG9rZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUIxMEI2OTgyMTQw
QzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
RUU4QjdFMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOEEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE4MjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUklu
cHV0U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NjI0MTMxOTFGMDBFNzk0RDYg
LyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4ODI0
MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEJB
NjI0MTMxOTYzMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTFFRThCODEyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxRUU4QjlEMjQxMzE5NTAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJh
bnNmb3JtLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEJBMzI0MTMxOTYzMDBFNzk0RDYgLyog
V2ViWFJTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3RDI0MTMxOTFGMDBFNzk0
RDYgLyogV2ViWFJTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODkyNDEzMTkxRjAw
RTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4NzI0MTMx
OTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI3NjI0
MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MUVFOEI5NjI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1MDMxQjUxMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRUJCQzNEODFCNjU5ODgzMDBGNTI1M0QgLyogV2hlZWxFdmVudERl
bHRhRmlsdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMzMjY4LDYgKzMzNTMyLDIyIEBACiAJCQkJ
MUFCN0ZDODQwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVXRpbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFCN0ZDODYwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBQjdGQzg4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFbnZp
cm9ubWVudEJsZW5kTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTcyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI4RjI0MTMxOTUwMDBF
Nzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFF
RThCOTIyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSGFuZGVkbmVzcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFFRThCOUYyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTFFRThCOTkyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2Vz
Q2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjg0MjQxMzE5MUYwMEU3OTRE
NiAvKiBYUlJlZmVyZW5jZVNwYWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4Qjc3
MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRUU4QkE1MjQxMzE5NjMwMEU3OTRENiAvKiBYUlNl
c3Npb25Jbml0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUVFOEI5QTI0MTMxOTUwMDBFNzk0RDYg
LyogWFJTZXNzaW9uTW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCOTAyNDEzMTk1MDAw
RTc5NEQ2IC8qIFhSVGFyZ2V0UmF5TW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFFRThCODIy
NDEzMTkxRjAwRTc5NEQ2IC8qIFhSVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMUVFOEI5QjI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUVFOEI5RTI0MTMxOTUwMDBFNzk0RDYgLyogWFJXZWJHTExheWVySW5pdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODUyMTdFMDMwQTVFQ0Q0NzAwREI4RDAwIC8qIFhTTEltcG9ydFJ1
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUVDMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xT
dHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEg
LyogWFNMVEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4MDEsNiArMzQwODEsNyBA
QAogCQkJCUNERjJCMDE2MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjc0MjFEQkZEQzI3MDA3QTdEOTkgLyogTmF2
aWdhdG9yRU1FLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTRCQjEwMTk1NEQ2MjcwMEZBNUMy
RSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4Qjk0MjQx
MzE5NTAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTU2OUQxMzBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY19jbGFzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBNTY5RDE2MEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjX2luc3RhbmNlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE1NjlEMTgwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfcnVudGltZS5tbSBp
biBTb3VyY2VzICovLApAQCAtMzM4MDgsNiArMzQwODksOCBAQAogCQkJCUUxNjk4MjYwMTEzNDYz
NkEwMDg5NDExNSAvKiBPYmpDUnVudGltZU9iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNF
QTI4NDY2MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCNzEyNDEyQjJBODAw
RTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCNzAyNDEy
QjJBODAwRTc5NEQ2IC8qIFBsYXRmb3JtWFIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlB
MzAxQ0JGNzRENDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlBMTYxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MjQ5MjEyN0I5M0Uw
MDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtMzQ0NjgsMTAgKzM0NzUxLDI5IEBACiAJCQkJRjEyMTcxRjUxNkE4Q0VEMjAwMDA1
M0NBIC8qIFdlYlZUVEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQyMUE4MDIxM0VD
RTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMTBC
Njk4MTE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUUxRUU4QjgwMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI5MzI0MTMxOTUwMDBFNzk0RDYgLyog
V2ViWFJGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBMTI0MTMxOTYzMDBFNzk0
RDYgLyogV2ViWFJJbnB1dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEI4QzI0
MTMxOTFGMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUUxRUU4QjhCMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlBvc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTFFRThCN0YyNDEzMTkxRjAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3Bh
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0MyNDEzMTkxRjAwRTc5NEQ2IC8qIFdl
YlhSUmVuZGVyU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0IyNDEzMTkxRjAw
RTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTFF
RThCQTIyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlFMUVFOEI5ODI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFMUVFOEI4RTI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTFFRThCQTQyNDEzMTk2MzAwRTc5NEQ2IC8qIFdlYlhSVmlldy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBMDI0MTMxOTUwMDBFNzk0RDYgLyogV2ViWFJW
aWV3ZXJQb3NlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjkxMjQxMzE5NTAwMEU3OTRE
NiAvKiBXZWJYUlZpZXdwb3J0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRUU4QjgzMjQxMzE5
MUYwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0
ODMyQzIxODdGNjVDNzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJ
CQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODMzQzgwQzBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTE1QTM2RDkxMTA0NTcyNzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTFFRThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3Vy
Y2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYg
LyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMUVF
OEI5NTI0MTMxOTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxRUU4Qjg1MjQxMzE5MUYwMEU3OTRENiAvKiBYUlNlc3Npb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lE
TFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IDMwNWJj
ZjUxNDRlMDJlMzYxZTVkMzJmMDQ3NTQxNWU1OGI4NjVmZjMuLjk0ZjMxNjVlMWYyN2JhMDJjYTlk
NmIzMjI0MmNkMzEzNGViMTMyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAt
NjIsNiArNjIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IElETFR5cGUgewogICAg
IHVzaW5nIEltcGxlbWVudGF0aW9uVHlwZSA9IFQ7CiAgICAgdXNpbmcgU3RvcmFnZVR5cGUgPSBU
OworICAgIHVzaW5nIFNlcXVlbmNlU3RvcmFnZVR5cGUgPSBUOwogCiAgICAgdXNpbmcgUGFyYW1l
dGVyVHlwZSA9IFQ7CiAgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gT3B0aW9uYWw8
SW1wbGVtZW50YXRpb25UeXBlPjsKQEAgLTgyLDYgKzgzLDcgQEAgc3RydWN0IElETFVuc3VwcG9y
dGVkVHlwZSA6IElETFR5cGU8dm9pZD4geyB9Owogc3RydWN0IElETE51bGwgOiBJRExUeXBlPHN0
ZDo6bnVsbHB0cl90PiB7IH07CiAKIHN0cnVjdCBJRExBbnkgOiBJRExUeXBlPEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4+IHsKKyAgICB1c2luZyBTZXF1ZW5jZVN0b3JhZ2VUeXBlID0gSlNDOjpK
U1ZhbHVlOwogICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBKU0M6OkpTVmFsdWU7CiAgICAgdXNp
bmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCmluZGV4IGM0OWRk
OTM4ZmNlMjcxNjVmNzQ3ZTU4ZmUwOGE1NTNkYmJmZGY1YzIuLjg2ZjdmMjc2ZmMwOGFlMDdjMDEw
MDAyMjJkMzU5ZjBlZmViNWFlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydFNlcXVlbmNlcy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBE
ZXRhaWwgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgogc3RydWN0IEdlbmVyaWNTZXF1
ZW5jZUNvbnZlcnRlciB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IFZlY3Rvcjx0eXBlbmFtZSBJ
RExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+OworICAgIHVzaW5nIFJldHVyblR5cGUgPSBWZWN0
b3I8dHlwZW5hbWUgSURMVHlwZTo6U2VxdWVuY2VTdG9yYWdlVHlwZT47CiAKICAgICBzdGF0aWMg
UmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6SlNPYmplY3QqIG9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNDRkNTBiMjA3YzUzOGExOTc5
MmI0ZjMyMjZhZmU2NTI4Nzc4NzIwOS4uMTg4MmE5ZWZmZTI0MGM0NTliZDVkMzQyNjE3YTBjZDkz
M2MyZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaApAQCAtMjM1LDYgKzIzNSwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oV29ya2xldEdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oV3JpdGFibGVTdHJlYW0pIFwK
ICAgICBtYWNybyhYTUxIdHRwUmVxdWVzdCkgXAorICAgIG1hY3JvKFhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlKSBcCisgICAgbWFjcm8oWFJGcmFtZSkgXAorICAgIG1hY3JvKFhSSW5wdXRTb3VyY2Up
IFwKKyAgICBtYWNybyhYUklucHV0U291cmNlQXJyYXkpIFwKKyAgICBtYWNybyhYUklucHV0U291
cmNlRXZlbnQpIFwKKyAgICBtYWNybyhYUklucHV0U291cmNlc0NoYW5nZUV2ZW50KSBcCisgICAg
bWFjcm8oWFJQb3NlKSBcCisgICAgbWFjcm8oWFJSZWZlcmVuY2VTcGFjZSkgXAorICAgIG1hY3Jv
KFhSUmVmZXJlbmNlU3BhY2VFdmVudCkgXAorICAgIG1hY3JvKFhSUmVuZGVyU3RhdGUpIFwKKyAg
ICBtYWNybyhYUlJpZ2lkVHJhbnNmb3JtKSBcCisgICAgbWFjcm8oWFJTZXNzaW9uKSBcCisgICAg
bWFjcm8oWFJTZXNzaW9uRXZlbnQpIFwKKyAgICBtYWNybyhYUlNwYWNlKSBcCisgICAgbWFjcm8o
WFJTeXN0ZW0pIFwKKyAgICBtYWNybyhYUlZpZXcpIFwKKyAgICBtYWNybyhYUlZpZXdlclBvc2Up
IFwKKyAgICBtYWNybyhYUlZpZXdwb3J0KSBcCisgICAgbWFjcm8oWFJXZWJHTExheWVyKSBcCiAg
ICAgbWFjcm8oYXBwZW5kRnJvbUpTKSBcCiAgICAgbWFjcm8oYXNzb2NpYXRlZFJlYWRhYmxlQnl0
ZVN0cmVhbUNvbnRyb2xsZXIpIFwKICAgICBtYWNybyhhdXRvQWxsb2NhdGVDaHVua1NpemUpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGQ0OTYwYjljZjc1MWY0MTE0MjJiNjcwODQxYTA1
YjhiZDJjNzFjMjguLjVjZWVlNmY2ODE2ZGVlOWQ3OTljYjE1MGUxNzVhYzVkN2VkNGFjNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKGlu
YWN0aXZlKSBcCiAgICAgbWFjcm8oaW5wdXQpIFwKKyAgICBtYWNybyhpbnB1dHNvdXJjZXNjaGFu
Z2UpIFwKICAgICBtYWNybyhpbnN0YWxsKSBcCiAgICAgbWFjcm8oaW52YWxpZCkgXAogICAgIG1h
Y3JvKGtleWRvd24pIFwKQEAgLTIzMSw2ICsyMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8oc2Vla2VkKSBcCiAgICAgbWFjcm8oc2Vla2luZykgXAogICAgIG1hY3JvKHNlbGVj
dCkgXAorICAgIG1hY3JvKHNlbGVjdGVuZCkgXAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkg
XAogICAgIG1hY3JvKHNlbGVjdHN0YXJ0KSBcCiAgICAgbWFjcm8oc2hpcHBpbmdhZGRyZXNzY2hh
bmdlKSBcCkBAIC0yODUsMTMgKzI4Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNy
byh2ZXJzaW9uY2hhbmdlKSBcCiAgICAgbWFjcm8odmlzaWJpbGl0eWNoYW5nZSkgXAogICAgIG1h
Y3JvKHZvbHVtZWNoYW5nZSkgXAotICAgIG1hY3JvKHZyZGlzcGxheWFjdGl2YXRlKSBcCi0gICAg
bWFjcm8odnJkaXNwbGF5Ymx1cikgXAotICAgIG1hY3JvKHZyZGlzcGxheWNvbm5lY3QpIFwKLSAg
ICBtYWNybyh2cmRpc3BsYXlkZWFjdGl2YXRlKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5ZGlzY29u
bmVjdCkgXAotICAgIG1hY3JvKHZyZGlzcGxheWZvY3VzKSBcCi0gICAgbWFjcm8odnJkaXNwbGF5
cHJlc2VudGNoYW5nZSkgXAogICAgIG1hY3JvKHdhaXRpbmcpIFwKICAgICBtYWNybyh3YWl0aW5n
Zm9ya2V5KSBcCiAgICAgbWFjcm8od2ViZ2xjb250ZXh0Y2hhbmdlZCkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbgppbmRleCBhNTkwODYxMDY4ZjVlMzc2NjcxMzJmZDFhYTQyZTY3OTE4MTdkOGEw
Li5hZWIyMzRhYTNlNDY3YzNhZWM5YjQ4ZTliMDA4Y2UxYTBlNjM2MDNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbgpAQCAtODUsMyArODUsNyBAQCBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25k
aXRpb25hbD1FTkNSWVBURURfTUVESUEKIFBvaW50ZXJFdmVudAogR1BVVW5jYXB0dXJlZEVycm9y
RXZlbnQgY29uZGl0aW9uYWw9V0VCR1BVCiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCBjb25k
aXRpb25hbD1QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJCitYUklucHV0U291cmNlRXZlbnQgY29uZGl0
aW9uYWw9V0VCWFIKK1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCWFIK
K1hSUmVmZXJlbmNlU3BhY2VFdmVudCBjb25kaXRpb25hbD1XRUJYUgorWFJTZXNzaW9uRXZlbnQg
Y29uZGl0aW9uYWw9V0VCWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5Lmlu
CmluZGV4IDgxZTdjYzlmMGI3NjUwNTYyYWFiZmVmZTA1YTVhM2FkMWJiYmI4ZmYuLjgzN2ViNWRj
ZDBlOTk1Y2EwMjI0ZWNmZWJlNzBiY2UxZWI4MzNiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtNTgsNCArNTgsNiBAQCBXb3JrZXIKIFdvcmtsZXRHbG9i
YWxTY29wZSBjb25kaXRpb25hbD1DU1NfUEFJTlRJTkdfQVBJCiBYTUxIdHRwUmVxdWVzdAogWE1M
SHR0cFJlcXVlc3RVcGxvYWQKLQorV2ViWFJTZXNzaW9uIGNvbmRpdGlvbmFsPVdFQlhSCitXZWJY
UlNwYWNlIGNvbmRpdGlvbmFsPVdFQlhSCitXZWJYUlN5c3RlbSBjb25kaXRpb25hbD1XRUJYUgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCA1ZDFh
ZmRiZWQ1NWUzNmZlYjEwZjRlMzUwMzcxMDI2OWYzN2VlOWFlLi5kZTdlMzhkMjVlYjIzM2M4ODVh
ODE0ZmRjYzIyYzZiYzM4YzQ1MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaApAQCAtMTM4LDYgKzEzOCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faW5zcGVjdG9y
QWRkaXRpb25zRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgaW5zcGVjdG9yQWRkaXRp
b25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZDsg
fQogCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIHZvaWQgc2V0V2ViWFJFbmFibGVkKGJvb2wgaXNF
bmFibGVkKSB7IG1fd2ViWFJFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB3ZWJYUkVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYlhSRW5hYmxlZDsgfQorI2VuZGlmCisKICAgICB2
b2lkIHNldEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsg
bV9hY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9v
bCBhY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nl
c3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOyB9CiAKQEAgLTQ0Niw2ICs0NTEsOSBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9pc1dlYlNvY2tldEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2ZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luc3BlY3Rv
ckFkZGl0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIEVOQUJMRShXRUJYUikKKyAgICBib29s
IG1fd2ViWFJFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbV9hY2Nlc3NpYmls
aXR5T2JqZWN0TW9kZWxFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXJpYVJlZmxlY3Rp
b25FbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzI2
OGVlNjc3YTM3OWE2YmY1NTE3MGI5OTA0ZjMzYmJlNzcxYWY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5jcHAKQEAgLTAsMCArMSwyMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEsIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1YUi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxh
dGZvcm1YUi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwODgzYmQ1MmRiZjc1ODFhODU4YzkyMWZkMjVhYjAwYjk4
NmI3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0
Zm9ybVhSLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFp
bnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCitlbnVtIGNsYXNzIFNlc3Npb25N
b2RlIHsKKyAgICBJbmxpbmUsCisgICAgSW1tZXJzaXZlVnIsCisgICAgSW1tZXJzaXZlQXIsCit9
OworCisjaWYgRU5BQkxFKFdFQlhSKQorCitjbGFzcyBEZXZpY2UgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8RGV2aWNlPiB7CitwdWJsaWM6Cit9OworCitjbGFzcyBJbnN0YW5jZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIEluc3RhbmNlJiBzaW5nbGV0b24oKTsKKworcHJpdmF0ZToKKyAgICBJbnN0
YW5jZSgpOworICAgIH5JbnN0YW5jZSgpOworCisgICAgc3RydWN0IEltcGw7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEltcGw+IG1faW1wbDsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCisK
K30gLy8gbmFtZXNwYWNlIFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3hyL29wZW54ci9QbGF0Zm9ybVhSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTRmNGMyYzE4ZjNhM2RlMTMx
Yjg3NDkzMTFhNDFhZWZlYmJlZDViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFIuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSwgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVhSLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpZiBVU0VfT1BF
TlhSCisjaW5jbHVkZSA8b3BlbnhyL29wZW54ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
I2VuZGlmIC8vIFVTRV9PUEVOWFIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwor
bmFtZXNwYWNlIFBsYXRmb3JtWFIgeworCisjaWYgVVNFX09QRU5YUgorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCBYclN0cnVjdHVyZVR5cGUgU3RydWN0dXJlVHlwZT4KK1QgY3JlYXRlU3RydWN0dXJl
KCkKK3sKKyAgICBUIG9iamVjdDsKKyAgICBzdGQ6Om1lbXNldCgmb2JqZWN0LCAwLCBzaXplb2Yo
VCkpOworICAgIG9iamVjdC50eXBlID0gU3RydWN0dXJlVHlwZTsKKyAgICBvYmplY3QubmV4dCA9
IG51bGxwdHI7CisgICAgcmV0dXJuIG9iamVjdDsKK30KKworU3RyaW5nIHJlc3VsdFRvU3RyaW5n
KFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGluc3RhbmNlKQoreworICAgIGNoYXIgYnVmZmVy
W1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOworICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVz
dWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZmZXIpOworICAgIGlmIChyZXN1bHQgPT0g
WFJfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOworICAgIHJldHVybiBt
YWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOworfQorCisjZGVmaW5lIFJF
VFVSTl9JRl9GQUlMRUQocmVzdWx0LCBjYWxsLCBpbnN0YW5jZSkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoWFJfRkFJTEVEKHJl
c3VsdCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBXVEZMb2dBbHdheXMoIiVzICVzOiAl
c1xuIiwgX19mdW5jX18sIGNhbGwsIHJlc3VsdFRvU3RyaW5nKHJlc3VsdCwgaW5zdGFuY2UpLnV0
ZjgoKS5kYXRhKCkpOyBcCisgICAgICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCisj
ZW5kaWYgLy8gVVNFX09QRU5YUgorCitzdHJ1Y3QgSW5zdGFuY2U6OkltcGwgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEltcGwoKTsKKyAgICB+SW1wbCgpOwor
CisjaWYgVVNFX09QRU5YUgorICAgIFhySW5zdGFuY2UgbV9pbnN0YW5jZSB7IFhSX05VTExfSEFO
RExFIH07CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfTsKKworSW5zdGFuY2U6OkltcGw6OkltcGwo
KQoreworI2lmIFVTRV9PUEVOWFIKKyAgICBXVEZMb2dBbHdheXMoIk9wZW5YUjogaW5pdGlhbGl6
aW5nXG4iKTsKKworICAgIFsmXSB7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRPdXRw
dXQgeyAwIH07CisgICAgICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyRW51bWVyYXRlQXBpTGF5ZXJQ
cm9wZXJ0aWVzKDAsICZwcm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyKTsKKyAgICAgICAgUkVU
VVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcygpIiwg
bV9pbnN0YW5jZSk7CisKKyAgICAgICAgaWYgKCFwcm9wZXJ0eUNvdW50T3V0cHV0KSB7CisgICAg
ICAgICAgICBXVEZMb2dBbHdheXMoInhyRW51bWVyYXRlQXBpTGF5ZXJQcm9wZXJ0aWVzKCk6IG5v
IHByb3BlcnRpZXNcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgVmVjdG9yPFhyQXBpTGF5ZXJQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzKHByb3BlcnR5Q291bnRP
dXRwdXQpOworICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUFwaUxheWVyUHJvcGVydGllcyhw
cm9wZXJ0eUNvdW50T3V0cHV0LCBudWxscHRyLCBwcm9wZXJ0aWVzLmRhdGEoKSk7CisgICAgICAg
IFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVBcGlMYXllclByb3BlcnRpZXMo
KSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygieHJFbnVtZXJhdGVBcGlM
YXllclByb3BlcnRpZXMoKTogJXp1IHByb3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6ZSgpKTsK
KyAgICB9KCk7CisKKyAgICBbJl0geworICAgICAgICB1aW50MzJfdCBwcm9wZXJ0eUNvdW50T3V0
cHV0IHsgMCB9OworICAgICAgICBYclJlc3VsdCByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNl
RXh0ZW5zaW9uUHJvcGVydGllcyhudWxscHRyLCAwLCAmcHJvcGVydHlDb3VudE91dHB1dCwgbnVs
bHB0cik7CisgICAgICAgIFJFVFVSTl9JRl9GQUlMRUQocmVzdWx0LCAieHJFbnVtZXJhdGVJbnN0
YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoKSIsIG1faW5zdGFuY2UpOworCisgICAgICAgIGlmICgh
cHJvcGVydHlDb3VudE91dHB1dCkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1l
cmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpOiBubyBwcm9wZXJ0aWVzXG4iKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxYckV4dGVuc2lv
blByb3BlcnRpZXM+IHByb3BlcnRpZXMocHJvcGVydHlDb3VudE91dHB1dCwKKyAgICAgICAgICAg
IFtdIHsKKyAgICAgICAgICAgICAgICBYckV4dGVuc2lvblByb3BlcnRpZXMgb2JqZWN0OworICAg
ICAgICAgICAgICAgIHN0ZDo6bWVtc2V0KCZvYmplY3QsIDAsIHNpemVvZihYckV4dGVuc2lvblBy
b3BlcnRpZXMpKTsKKyAgICAgICAgICAgICAgICBvYmplY3QudHlwZSA9IFhSX1RZUEVfRVhURU5T
SU9OX1BST1BFUlRJRVM7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAg
ICAgIH0oKSk7CisgICAgICAgIHVpbnQzMl90IHByb3BlcnR5Q291bnRXcml0dGVuIHsgMCB9Owor
ICAgICAgICByZXN1bHQgPSB4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcyhu
dWxscHRyLCBwcm9wZXJ0eUNvdW50T3V0cHV0LCAmcHJvcGVydHlDb3VudFdyaXR0ZW4sIHByb3Bl
cnRpZXMuZGF0YSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0ZBSUxFRChyZXN1bHQsICJ4ckVudW1l
cmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygpIiwgbV9pbnN0YW5jZSk7CisKKyAgICAg
ICAgV1RGTG9nQWx3YXlzKCJ4ckVudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGllcygp
OiAlenUgZXh0ZW5zaW9uIHByb3BlcnRpZXNcbiIsIHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBwcm9wZXJ0eSA6IHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIFdURkxv
Z0Fsd2F5cygiICBleHRlbnNpb24gJyVzJywgdmVyc2lvbiAldVxuIiwKKyAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS5leHRlbnNpb25OYW1lLCBwcm9wZXJ0eS5leHRlbnNpb25WZXJzaW9uKTsKKyAg
ICAgICAgfQorICAgIH0oKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzX2FwcGxpY2F0aW9u
TmFtZSA9ICJXZWJYUiAoV2ViS2l0KSI7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfYXBw
bGljYXRpb25WZXJzaW9uID0gMTsKKworICAgIHsKKyAgICAgICAgYXV0byBjcmVhdGVJbmZvID0g
Y3JlYXRlU3RydWN0dXJlPFhySW5zdGFuY2VDcmVhdGVJbmZvLCBYUl9UWVBFX0lOU1RBTkNFX0NS
RUFURV9JTkZPPigpOworICAgICAgICBjcmVhdGVJbmZvLmNyZWF0ZUZsYWdzID0gMDsKKyAgICAg
ICAgc3RkOjptZW1jcHkoY3JlYXRlSW5mby5hcHBsaWNhdGlvbkluZm8uYXBwbGljYXRpb25OYW1l
LCBzX2FwcGxpY2F0aW9uTmFtZSwgWFJfTUFYX0FQUExJQ0FUSU9OX05BTUVfU0laRSk7CisgICAg
ICAgIGNyZWF0ZUluZm8uYXBwbGljYXRpb25JbmZvLmFwaVZlcnNpb24gPSBYUl9DVVJSRU5UX0FQ
SV9WRVJTSU9OOworICAgICAgICBjcmVhdGVJbmZvLmFwcGxpY2F0aW9uSW5mby5hcHBsaWNhdGlv
blZlcnNpb24gPSBzX2FwcGxpY2F0aW9uVmVyc2lvbjsKKyAgICAgICAgY3JlYXRlSW5mby5lbmFi
bGVkQXBpTGF5ZXJDb3VudCA9IDA7CisgICAgICAgIGNyZWF0ZUluZm8uZW5hYmxlZEV4dGVuc2lv
bkNvdW50ID0gMDsKKworICAgICAgICBYckluc3RhbmNlIGluc3RhbmNlOworICAgICAgICBYclJl
c3VsdCByZXN1bHQgPSB4ckNyZWF0ZUluc3RhbmNlKCZjcmVhdGVJbmZvLCAmaW5zdGFuY2UpOwor
ICAgICAgICBSRVRVUk5fSUZfRkFJTEVEKHJlc3VsdCwgInhyQ3JlYXRlSW5zdGFuY2UoKSIsIG1f
aW5zdGFuY2UpOworCisgICAgICAgIG1faW5zdGFuY2UgPSBpbnN0YW5jZTsKKyAgICAgICAgV1RG
TG9nQWx3YXlzKCJ4ckNyZWF0ZUluc3RhbmNlKCk6IHVzaW5nIGluc3RhbmNlICVwXG4iLCBtX2lu
c3RhbmNlKTsKKyAgICB9CisjZW5kaWYgLy8gVVNFX09QRU5YUgorfQorCitJbnN0YW5jZTo6SW1w
bDo6fkltcGwoKQoreworfQorCitJbnN0YW5jZSYgSW5zdGFuY2U6OnNpbmdsZXRvbigpCit7Cisg
ICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxJbnN0YW5jZT4gc19pbnN0YW5jZTsKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShzX29u
Y2VGbGFnLAorICAgICAgICBbJl0geworICAgICAgICAgICAgc19pbnN0YW5jZS0+bV9pbXBsID0g
bWFrZVVuaXF1ZTxJbXBsPigpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc19pbnN0YW5jZS5n
ZXQoKTsKK30KKworSW5zdGFuY2U6Okluc3RhbmNlKCkgPSBkZWZhdWx0OworSW5zdGFuY2U6On5J
bnN0YW5jZSgpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3BhY2UgUGxhdGZvcm1YUgorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZTZhMzAwMjlhMDFkZjE4MDJlYmY3MmY1
OGZhODQxMTU4MWU4MDFiNC4uY2ZiYjcyOTUxMzVmMDFiNGM3NDc2NTE5ZDQ2ODdlNmM2ZjFiZTM0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCkBAIC0zOTQsNiArMzk0LDggQEAgRU5BQkxFX1dFQkdQVV9hcHBsZXR2b3Mg
PSBFTkFCTEVfV0VCR1BVOwogRU5BQkxFX1dFQkdQVV9tYWNvc3ggPSAkKEVOQUJMRV9XRUJHUFUk
KFdLX01BQ09TXzEwMTQpKTsKIEVOQUJMRV9XRUJHUFVfTUFDT1NfU0lOQ0VfMTAxNCA9IEVOQUJM
RV9XRUJHUFU7CiAKK0VOQUJMRV9XRUJYUiA9IDsKKwogRU5BQkxFX1dFQl9BUElfU1RBVElTVElD
UyA9IDsKIAogRU5BQkxFX1dFQl9BVURJTyA9IEVOQUJMRV9XRUJfQVVESU87CkBAIC00MTQsNCAr
NDE2LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJM
RV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxF
X0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5B
QkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NT
UzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1Nf
Q09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1Nf
U0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1Nf
VFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJM
RV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRB
X0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdf
U1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxf
RkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNP
TVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5U
RVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxF
X0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQo
RU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9N
X1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVN
T1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVO
QUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAk
KEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVf
TkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVf
T0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZF
Ul9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNF
X1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9V
U0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dF
QkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9J
TlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VC
X0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikg
JChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklG
RVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5B
QkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChF
TkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVf
Q19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAk
KEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChF
TkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVS
KSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIp
ICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAk
KEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5B
QkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NB
Q0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFM
RV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZT
Q1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRF
Ul9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxF
X1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElD
UykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVO
QUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVf
U0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9T
VFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExF
UlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklE
RU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRF
UkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9B
UElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQo
RU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbAppbmRleCAwYjNjZTk0M2FjMzA1MDhlMDRjZGIwYzcxMTAyMWZjNWY3NDdi
NGY4Li4zYzlhYjAzM2FiYTJkYzg1ZjVlMjc3NWNlNzZjZjY5MzNmNjg5ZmIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTE5ODIsNiArMTk4MiwxNSBAQCBJ
bmNyZW1lbnRhbFBERkxvYWRpbmdFbmFibGVkOgogICBjb25kaXRpb246IEhBVkUoSU5DUkVNRU5U
QUxfUERGX0FQSVMpCiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAK
K1dlYlhSRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRXZWJY
UkVuYWJsZWQoKQorICBodW1hblJlYWRhYmxlTmFtZTogIldlYlhSIERldmljZSBBUEkiCisgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFkZHMgc3VwcG9ydCBmb3IgYWNjZXNzaW5nIHZpcnR1
YWwgcmVhbGl0eSAoVlIpIGFuZCBhdWdtZW50ZWQgcmVhbGl0eSAoQVIpIGRldmljZXMsIGluY2x1
ZGluZyBzZW5zb3JzIGFuZCBoZWFkLW1vdW50ZWQgZGlzcGxheXMsIG9uIHRoZSBXZWIiCisgIGNh
dGVnb3J5OiBleHBlcmltZW50YWwKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMKKyAgY29uZGl0aW9uOiBFTkFCTEUoV0VCWFIpCisKICMgRGVwcmVjYXRlZAogCiBJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKaW5kZXggN2RkYWMxMzNkMWFiZmMyMDI5
OTUxN2JjNjUyNGI3YTgzMDU4MTA1OC4uZWNmM2YwMzg0Mjc1YzNkOGY3ZGZjY2FjMDMwYjBmNzE3
OWFjNWVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXMuY3BwCkBAIC0yMjUsNCArMjI1LDE4IEBAIGJvb2wgZGVmYXVsdEluY3Jl
bWVudGFsUERGRW5hYmxlZCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKKworYm9v
bCBkZWZhdWx0V2ViWFJFbmFibGVkKCkKK3sKKyNpZiBIQVZFKEhBVkVfU1lTVEVNX0ZFQVRVUkVf
RkxBR1MpCisgICAgcmV0dXJuIG9zX2ZlYXR1cmVfZW5hYmxlZChXZWJLaXQsIFdlYlhSKTsKKyNl
bmRpZgorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQor
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAppbmRleCA3MTdjZjI0NjVmNDQ1NmQyYjUwYmY3
MjcwZmRhMWZhZjZkNTQwOGI1Li4yOTU1YTA5NGQ2NDM2YmZjOTZiZmQ2NWRmNDZmY2VhOTExNjk5
YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaApAQCAtMzMyLDQgKzMzMiw4IEBAIGJvb2wgZGVmYXVsdEluQXBwQnJvd3NlclBy
aXZhY3koKTsKIGJvb2wgZGVmYXVsdEluY3JlbWVudGFsUERGRW5hYmxlZCgpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoV0VCWFIpCitib29sIGRlZmF1bHRXZWJYUkVuYWJsZWQoKTsKKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDU2MTViOTkx
YjMzZmJkZDJiMDY1OTFlNzliNTkwNmM4MzRmM2YyZDAuLmYzZTZhYjc1NWI3MmM3MzkzZGZkYWE1
ZDI4ZjEwOTUzY2ZjNWJkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjg5LDYgKzI4OSwx
MSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1
bm5lcihXZWJQYWdlR3JvdXBQcm94eSogcGFnZQogICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldE9mZnNjcmVlbkNhbnZhc0VuYWJsZWQoZW5hYmxlZCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKKyAgICBpZiAocHJlZmVyZW5jZSA9PSAiV2Vi
S2l0V2ViWFJFbmFibGVkIikKKyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRXZWJYUkVuYWJsZWQoZW5hYmxlZCk7CisjZW5kaWYKKwogICAgIC8vIE1h
cCB0aGUgbmFtZXMgdXNlZCBpbiBMYXlvdXRUZXN0cyB3aXRoIHRoZSBuYW1lcyB1c2VkIGluIFdl
YkNvcmU6OlNldHRpbmdzIGFuZCBXZWJQcmVmZXJlbmNlc1N0b3JlLgogI2RlZmluZSBGT1JfRUFD
SF9PVkVSUklERV9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhXZWJLaXRKYXZh
RW5hYmxlZCwgSmF2YUVuYWJsZWQsIGphdmFFbmFibGVkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IGU2YTMwMDI5YTAxZGYxODAyZWJmNzJmNThmYTg0MTE1ODFlODAxYjQuLmNm
YmI3Mjk1MTM1ZjAxYjRjNzQ3NjUxOWQ0Njg3ZTZjNmYxYmUzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCkBAIC0zOTQsNiArMzk0LDggQEAgRU5BQkxFX1dFQkdQVV9hcHBsZXR2b3Mg
PSBFTkFCTEVfV0VCR1BVOwogRU5BQkxFX1dFQkdQVV9tYWNvc3ggPSAkKEVOQUJMRV9XRUJHUFUk
KFdLX01BQ09TXzEwMTQpKTsKIEVOQUJMRV9XRUJHUFVfTUFDT1NfU0lOQ0VfMTAxNCA9IEVOQUJM
RV9XRUJHUFU7CiAKK0VOQUJMRV9XRUJYUiA9IDsKKwogRU5BQkxFX1dFQl9BUElfU1RBVElTVElD
UyA9IDsKIAogRU5BQkxFX1dFQl9BVURJTyA9IEVOQUJMRV9XRUJfQVVESU87CkBAIC00MTQsNCAr
NDE2LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJM
RV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxF
X0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5B
QkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NT
UzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1Nf
Q09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1Nf
U0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1Nf
VFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJM
RV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRB
X0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdf
U1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxf
RkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNP
TVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5U
RVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxF
X0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQo
RU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9N
X1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVN
T1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVO
QUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAk
KEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVf
TkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVf
T0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZF
Ul9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNF
X1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9V
U0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dF
QkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9J
TlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VC
X0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikg
JChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklG
RVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5B
QkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChF
TkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVf
Q19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAk
KEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChF
TkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVS
KSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIp
ICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAk
KEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5B
QkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NB
Q0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFM
RV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZT
Q1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRF
Ul9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxF
X1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElD
UykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVO
QUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVf
U0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9T
VFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExF
UlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklE
RU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRF
UkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9B
UElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQo
RU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZE9wZW5YUi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlblhSLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJiZmRmMDRjMTFlZGQwMzkwMGZjNGMxNDJjZTc2YTY2MTQ4MzBmNmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvY21ha2UvRmluZE9wZW5YUi5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisj
IC0gVHJ5IHRvIGZpbmQgT3BlblhSLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMK
KyMgIE9QRU5YUl9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLgorIyAgT1BFTlhSX0lOQ0xVREVfRElS
UyAtIHRoZSBXUEUgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgT1BFTlhSX0xJQlJBUklFUyAtIGxp
bmsgdGhlc2UgdG8gdXNlIFdQRS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBD
X09QRU5YUiBRVUlFVCBvcGVueHIpCisKK2ZpbmRfcGF0aChPUEVOWFJfSU5DTFVERV9ESVJTCisg
ICAgTkFNRVMgb3BlbnhyL29wZW54ci5oCisgICAgSElOVFMgJHtQQ19PUEVOWFJfSU5DTFVERURJ
Un0gJHtQQ19PUEVOWFJfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoT1BFTlhSX0xJ
QlJBUklFUworICAgIE5BTUVTIG9wZW54cl9sb2FkZXIKKyAgICBISU5UUyAke1BDX09QRU5YUl9M
SUJESVJ9ICR7UENfT1BFTlhSX0xJQlJBUllfRElSU30KKykKKworbWFya19hc19hZHZhbmNlZChP
UEVOWFJfSU5DTFVERV9ESVJTIE9QRU5YUl9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBhY2th
Z2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3Mo
T3BlblhSIFJFUVVJUkVEX1ZBUlMgT1BFTlhSX0lOQ0xVREVfRElSUyBPUEVOWFJfTElCUkFSSUVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCBkZmY2NDkxYTczNDBmMWIzNWNlMGNjMjgxMjdkMmM3
NDE2NTY1NjYwLi4wNTUzMWNmNjU2MGMwZjViMTlmNDNlMTQ3NjIzZjExNjNiYjliZDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc1dQRS5jbWFrZQpAQCAtNDksNiArNDksOSBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfWFNMVCBQVUJMSUMgT04pCiAjIENoYW5naW5nIHRoZXNlIG9wdGlv
bnMgaXMgY29tcGxldGVseSB1bnN1cHBvcnRlZC4KIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9BVVRPQ0FQSVRBTElaRSBQUklWQVRFIE9OKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMg
UFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1Nf
UEFJTlRJTkdfQVBJIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfVFlQRURfT00gUFJJVkFU
RSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NPTlRFTlRfRVhURU5TSU9OUyBQUklWQVRFIE9OKQogV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NUUkVBTSBQUklWQVRFICR7RU5BQkxF
X0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCkBAIC02Miw5ICs2NSw3IEBAIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIFBSSVZBVEUgT0ZGKQog
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1RPVUNIX0VWRU5UUyBQUklW
QVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMMiBQ
UklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX1JUQyBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1F
TlRBTF9GRUFUVVJFU30pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
Q1NTX1BBSU5USU5HX0FQSSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30p
Ci1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1RZUEVEX09NIFBS
SVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKLVdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTIFBSSVZBVEUgT04pCitX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCWFIgUFJJVkFURSAke0VO
QUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogCiAjIFB1YmxpYyBvcHRpb25zIHNwZWNpZmlj
IHRvIHRoZSBXUEUgcG9ydC4gRG8gbm90IGFkZCBhbnkgb3B0aW9ucyBoZXJlIHVubGVzcwogIyB0
aGVyZSBpcyBhIHN0cm9uZyByZWFzb24gd2Ugc2hvdWxkIHN1cHBvcnQgY2hhbmdpbmcgdGhlIHZh
bHVlIG9mIHRoZSBvcHRpb24sCkBAIC0xNzEsNiArMTcyLDExIEBAIGlmIChFTkFCTEVfV1BFX1FU
X0FQSSBPUiBVU0VfV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIGZpbmRfcGFj
a2FnZShXUEVCYWNrZW5kX2ZkbyAxLjUuMCBSRVFVSVJFRCkKIGVuZGlmICgpCiAKK2lmIChFTkFC
TEVfV0VCWFIpCisgICAgZmluZF9wYWNrYWdlKE9wZW5YUiAxLjApCisgICAgU0VUX0FORF9FWFBP
U0VfVE9fQlVJTEQoVVNFX09QRU5YUiAke09wZW5YUl9GT1VORH0pCitlbmRpZiAoKQorCiBhZGRf
ZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQogYWRkX2RlZmluaXRpb25zKC1ER0VUVEVY
VF9QQUNLQUdFPSJXUEUiKQogYWRkX2RlZmluaXRpb25zKC1ESlNDX0dMSUJfQVBJX0VOQUJMRUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKaW5kZXggZmY3ZDZkMWM3MGY5ZDEzMDA3YmRmN2Q0
NmU2NGQwN2Q3NzU2ZjBmOC4uYjU5MTk2NTExOThmMmUzODI1ZGNhOWI4M2VmNmRiN2UzNWEyOGMz
YiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1Nv
dXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtMjMwLDYgKzIzMCw3IEBAIG1hY3Jv
KFdFQktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dF
Ql9BVVRITiAiVG9nZ2xlIFdlYiBBdXRoTiBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfV0VCX0NSWVBUTyAiVG9nZ2xlIFdlYkNyeXB0byBTdWJ0
bGUtQ3J5cHRvIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX1dFQl9SVEMgIlRvZ2dsZSBXZWJSVEMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCisgICAg
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQlhSICJUb2dnbGUgV2ViWFIgc3VwcG9ydCIg
UFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCAiVG9nZ2xlIHdpcmVsZXNzIHBsYXliYWNrIHRhcmdldCBzdXBwb3J0IiBQ
UklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfWFNMVCAiVG9nZ2xl
IFhTTFQgc3VwcG9ydCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShVU0Vf
U1lTVEVNX01BTExPQyAiVG9nZ2xlIHN5c3RlbSBhbGxvY2F0b3IgaW5zdGVhZCBvZiBXZWJLaXQn
cyBjdXN0b20gYWxsb2NhdG9yIiBQUklWQVRFICR7VVNFX1NZU1RFTV9NQUxMT0NfREVGQVVMVH0p
CkBAIC0yNTcsNiArMjU4LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJL
SVRfT1BUSU9OX0RFUEVORChFTkFCTEVfVklERU9fVFJBQ0sgRU5BQkxFX1ZJREVPKQogICAgIFdF
QktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTiBF
TkFCTEVfVklERU8pCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1RPVUNIX1NMSURF
UiBFTkFCTEVfVE9VQ0hfRVZFTlRTKQorICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9X
RUJYUiBFTkFCTEVfV0VCR0wpCiBlbmRtYWNybygpCiAKIG1hY3JvKF9XRUJLSVRfT1BUSU9OX0VO
Rk9SQ0VfREVQRU5EUyBfbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS90b29scy92c3By
b3BzL0ZlYXR1cmVEZWZpbmVzLnByb3BzIGIvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXMucHJvcHMKaW5kZXggOTZkNDYwMGNmYjZhMjE3NGMwZDg5ZTQ3ZGJjZTdjY2Rl
MGVmNTVkMS4uYmRlMmI4OGZkNWVmNDhjMzFiNWRkZGU1NWQwYzgyNmI4NzdhNDY2NiAxMDA2NDQK
LS0tIGEvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHMKKysr
IGIvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMucHJvcHMKQEAgLTY2
LDYgKzY2LDcgQEAKICAgICA8RU5BQkxFX1dFQl9BVVRITiAvPgogICAgIDxFTkFCTEVfV0VCR0wg
Lz4KICAgICA8RU5BQkxFX1dFQkdQVSAvPgorICAgIDxFTkFCTEVfV0VCWFIgLz4KICAgICA8RU5B
QkxFX1hIUl9USU1FT1VUPkVOQUJMRV9YSFJfVElNRU9VVDwvRU5BQkxFX1hIUl9USU1FT1VUPgog
ICAgIDxFTkFCTEVfWFNMVD5FTkFCTEVfWFNMVDwvRU5BQkxFX1hTTFQ+CiAgIDwvUHJvcGVydHlH
cm91cD4KQEAgLTc0LDcgKzc1LDcgQEAKICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbURlZmlu
aXRpb25Hcm91cD4KICAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPiQoRU5BQkxFXzNEX1RSQU5TRk9STVMpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
Uyk7JChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKTskKEVOQUJMRV9BVFRBQ0hNRU5U
X0VMRU1FTlQpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1MzX0NPTkRJ
VElPTkFMX1JVTEVTKTskKEVOQUJMRV9DU1NfSU1BR0VfU0VUKTskKEVOQUJMRV9DU1MzX1RFWFQp
OyQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyk7JChFTkFCTEVfQ1NTX1NIQURFUlMp
OyQoRU5BQkxFX0NTU19DT01QT1NJVElORyk7JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQp
OyQoRU5BQkxFX0NTU19TSEFQRV9JTlNJREUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1B
VElPTlNfVFJBTlNJVElPTlNfVU5QUkVGSVhFRCk7JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
OyQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7JChFTkFCTEVfREFSS19NT0RFX0NTUyk7
JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpOyQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRU5D
UllQVEVEX01FRElBKTskKEVOQUJMRV9GRVRDSF9BUEkpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTsk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9D
QVRJT04pOyQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUyk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSyk7JChFTkFCTEVfSU5UTCk7JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMp
OyQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpOyQoRU5BQkxFX0xJTktfUFJFUkVOREVS
KTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX0VMRU1FTlQpOyQoRU5BQkxFX01JQ1JP
REFUQSk7JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKTskKEVOQUJMRV9OT1RJRklDQVRJT05T
KTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfU1RSRUFNU19BUEkpOyQoRU5BQkxFX1NDUklQVEVE
X1NQRUVDSCk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVf
U1VCUElYRUxfTEFZT1VUKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxF
X1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX1ZJREVPX1RSQUNLKTskKEVOQUJM
RV9XRUJfQVVESU8pOyQoRU5BQkxFX1dFQkdMKTskKEVOQUJMRV9XRUJHUFUpOyQoRU5BQkxFX1hI
Ul9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChF
TkFCTEVfM0RfVFJBTlNGT1JNUyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVO
QUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpOyQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxf
UlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChFTkFC
TEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFC
TEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChFTkFC
TEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19U
UkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSk7JChFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9EQVJLX01PREVfQ1NTKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpOyQoRU5BQkxFX0ZFVENIX0FQSSk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7
JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTsk
KEVOQUJMRV9JTlRMKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQoRU5B
QkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRBKTsk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5B
QkxFX1FVT1RBKTskKEVOQUJMRV9TVFJFQU1TX0FQSSk7JChFTkFCTEVfU0NSSVBURURfU1BFRUNI
KTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBU
KTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5B
QkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQSVhF
TF9MQVlPVVQpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZP
TlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1dFQl9B
VURJTyk7JChFTkFCTEVfV0VCR0wpOyQoRU5BQkxFX1dFQkdQVSk7JChFTkFCTEVfV0VCWFIpOyQo
RU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTslKFByZXByb2Nlc3NvckRlZmluaXRp
b25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CiAgICAgPC9DbENvbXBpbGU+CiAgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMgYi9Tb3VyY2UvY21ha2Uv
dG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnByb3BzCmluZGV4IDI0Yjk0YmM3MDYz
NjQwYWM4ODViNjVmZWVjMTNlMzEzMTY3NTM1MjcuLmQ3MTk0YjJkOTA1NGVlZGUxZmE2MmJiMTI0
NTE1NzJiYmFiYzMxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS90b29scy92c3Byb3BzL0Zl
YXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKKysrIGIvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXNDYWlyby5wcm9wcwpAQCAtNjUsNiArNjUsNyBAQAogICAgIDxFTkFCTEVf
V0VCX0FVVEhOIC8+CiAgICAgPEVOQUJMRV9XRUJHTD5FTkFCTEVfV0VCR0w8L0VOQUJMRV9XRUJH
TD4KICAgICA8RU5BQkxFX1dFQkdQVSAvPgorICAgIDxFTkFCTEVfV0VCWFIgLz4KICAgICA8RU5B
QkxFX1hIUl9USU1FT1VUPkVOQUJMRV9YSFJfVElNRU9VVDwvRU5BQkxFX1hIUl9USU1FT1VUPgog
ICAgIDxFTkFCTEVfWFNMVD5FTkFCTEVfWFNMVDwvRU5BQkxFX1hTTFQ+CiAgIDwvUHJvcGVydHlH
cm91cD4KQEAgLTczLDcgKzc0LDcgQEAKICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbURlZmlu
aXRpb25Hcm91cD4KICAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRp
b25zPiQoRU5BQkxFXzNEX1RSQU5TRk9STVMpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
Uyk7JChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKTskKEVOQUJMRV9BVFRBQ0hNRU5U
X0VMRU1FTlQpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1MzX0NPTkRJ
VElPTkFMX1JVTEVTKTskKEVOQUJMRV9DU1NfSU1BR0VfU0VUKTskKEVOQUJMRV9DU1MzX1RFWFQp
OyQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyk7JChFTkFCTEVfQ1NTX1NIQURFUlMp
OyQoRU5BQkxFX0NTU19DT01QT1NJVElORyk7JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQp
OyQoRU5BQkxFX0NTU19TSEFQRV9JTlNJREUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1B
VElPTlNfVFJBTlNJVElPTlNfVU5QUkVGSVhFRCk7JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
OyQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7JChFTkFCTEVfREFSS19NT0RFX0NTUyk7
JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpOyQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRU5D
UllQVEVEX01FRElBKTskKEVOQUJMRV9GRVRDSF9BUEkpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTsk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9D
QVRJT04pOyQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUyk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01Q
TEVURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSyk7JChFTkFCTEVfSU5UTCk7JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMp
OyQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpOyQoRU5BQkxFX0xJTktfUFJFUkVOREVS
KTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX0VMRU1FTlQpOyQoRU5BQkxFX01JQ1JP
REFUQSk7JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKTskKEVOQUJMRV9OT1RJRklDQVRJT05T
KTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFS
RURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKTskKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRBQkFT
RSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQoRU5B
QkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9W
SURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVf
V0VCR0wpOyQoRU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTslKFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM+JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7JChFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKTskKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpOyQoRU5BQkxF
X0FUVEFDSE1FTlRfRUxFTUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxF
X0NTUzNfVEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9D
U1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfU0VMRUNU
T1JTX0xFVkVMNCk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5T
Rk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVJTT1Jf
VklTSUJJTElUWSk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9EQVJL
X01PREVfQ1NTKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTsk
KEVOQUJMRV9FTkNSWVBURURfTUVESUEpOyQoRU5BQkxFX0ZFVENIX0FQSSk7JChFTkFCTEVfRklM
RV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVO
QUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRV9JTkNPTVBMRVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9JTlRMKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRP
Ul9QUkVGSVhFUyk7JChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfTElO
S19QUkVSRU5ERVIpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVOVCk7JChF
TkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5BQkxFX05P
VElGSUNBVElPTlMpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpOyQo
RU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVf
U1FMX0RBVEFCQVNFKTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NVQlBJWEVMX0xB
WU9VVCk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMp
OyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9WSURFT19UUkFDSyk7JChFTkFCTEVfV0VCX0FVRElP
KTskKEVOQUJMRV9XRUJHTCk7JChFTkFCTEVfV0VCWFIpOyQoRU5BQkxFX1hIUl9USU1FT1VUKTsk
KEVOQUJMRV9YU0xUKTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM+CiAgICAgPC9DbENvbXBpbGU+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAg
PEl0ZW1Hcm91cD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA5MjM5MjUyMjRhMGY5ZTRmZDI4ZjQ2NTJjOWY3ZWRmZjJmZjI0OWZkLi5lYTZiOTgw
MTgwZjBjNzA2ZTVmMzczNGFlMjcyZmIyZGNlN2E0ZDE1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMTMg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dl
YlhSXSBJRExzLCBzdHVicyBhbmQgYnVpbGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG06IEFkZGVkIFdlYlhSLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZGVkIEVOQUJMRV9XRUJY
Uiwgb2ZmIGJ5IGRlZmF1bHQuCisKIDIwMjAtMDMtMTUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25v
cmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgS2V5ZWREZWNvZGVyR2VuZXJpYyBmYWlscyB0
byBhbGxvY2F0ZSBWZWN0b3Igd2hpbGUgZGVjb2RpbmcgYnJva2VuIGRhdGEKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAxYzg0MDE1Y2FmYmM1MmVjOWViNWI3MjI2
ZjY5ODM5OGNjNWU1ZjBiLi43NjNhYTJlODMyOTE3MGVjYmM2ODcwZjRjYzk2YjkzMGE2MTczOWFl
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0xODksNiArMTg5
LDcgQEAgbXkgKAogICAgICR3ZWJnbDJTdXBwb3J0LAogICAgICR3ZWJnbFN1cHBvcnQsCiAgICAg
JHdlYmdwdVN1cHBvcnQsCisgICAgJHdlYlhSU3VwcG9ydCwKICAgICAkd2lyZWxlc3NQbGF5YmFj
a1RhcmdldFN1cHBvcnQsCiAgICAgJHhzbHRTdXBwb3J0LAogKTsKQEAgLTU5NSw2ICs1OTYsOSBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIndlYmdwdSIsIGRlc2MgPT4gIlRv
Z2dsZSBXZWJHUFUgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHUFUiLCB2
YWx1ZSA9PiBcJHdlYmdwdVN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJ3ZWJ4ciIsIGRl
c2MgPT4gIlRvZ2dsZSBXZWJYUiBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dF
QlhSIiwgdmFsdWUgPT4gXCR3ZWJYUlN1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJ3ZWIt
YXBpLXN0YXRpc3RpY3MiLCBkZXNjID0+ICJUb2dnbGUgV2ViIEFQSSBzdGF0aXN0aWNzIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTIiwgdmFsdWUg
PT4gXCR3ZWJBUElTdGF0aXN0aWNzU3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCBlNmEzMDAyOWEwMWRmMTgwMmViZjcyZjU4ZmE4NDExNTgxZTgwMWI0Li5jZmJiNzI5NTEzNWYw
MWI0Yzc0NzY1MTlkNDY4N2U2YzZmMWJlMzQ1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM5
NCw2ICszOTQsOCBAQCBFTkFCTEVfV0VCR1BVX2FwcGxldHZvcyA9IEVOQUJMRV9XRUJHUFU7CiBF
TkFCTEVfV0VCR1BVX21hY29zeCA9ICQoRU5BQkxFX1dFQkdQVSQoV0tfTUFDT1NfMTAxNCkpOwog
RU5BQkxFX1dFQkdQVV9NQUNPU19TSU5DRV8xMDE0ID0gRU5BQkxFX1dFQkdQVTsKIAorRU5BQkxF
X1dFQlhSID0gOworCiBFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTID0gOwogCiBFTkFCTEVfV0VC
X0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKQEAgLTQxNCw0ICs0MTYsNCBAQCBFTkFCTEVfV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsK
IAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFC
TEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAk
KEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZF
U1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAk
KEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9D
U1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFC
TEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFC
TEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVO
QUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
X0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVf
RklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ip
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVO
QUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIp
ICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikg
JChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQo
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElB
X1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFC
TEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FD
SEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxF
X1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlND
UkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVS
X0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVf
UkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5B
QkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5B
QkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9T
SEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NU
UkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJf
REVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVS
UykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURF
T19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVS
QUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFC
TEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRP
KSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQo
RU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlf
U0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFD
SE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJU
SVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJ
TFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklDX0dSQURJ
RU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19QQUlOVElO
R19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19M
RVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQRURfT00p
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5BQkxFX0RB
UktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VM
RU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQVV9QUk9D
RVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lPU19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJM
RV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFf
U1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkg
JChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVW
QUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMpICQoRU5B
QkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAk
KEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BV
QkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNU
T1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9R
VUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJD
RV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5T
SU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJP
TFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0Up
ICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFU
SU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01P
REUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVM
TFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVf
V0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNI
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVf
V0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykg
JChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVO
QUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmYTBh
MTJkZmUyOGIxMmEwZGI1OWMyOTkwNDIyODQxOGI0OGIyOTc4Li5hNDJkNjllNjIwZGVhMzYwY2Mz
ODE1ZWQwODk1MDc5NDdlOTYyYjMyIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDMtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dlYlhSXSBJRExzLCBzdHVicyBhbmQgYnVp
bGQgY29uZmlndXJhdGlvbiBmb3IgV1BFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tz
b24uCisKKyAgICAgICAgQWRkZWQgYSBuZXcgY29tcGlsZSBmbGFnIGZvciBXRUJYUiB3aGljaCBk
ZXBlbmRzIG9uIFdFQkdMLgorCisgICAgICAgIEZvciB0aGUgV1BFIHBvcnQsIGFkZGVkIE9wZW5Y
UiBkZXRlY3Rpb24gYW5kIFVTRV9PUEVOWFIgZGVmaW5lIHRvIGJlCisgICAgICAgIHVzZWQgaW4g
dGhlIHNvdXJjZXMuIEl0IGFsc28gYWRkcyBhIGRlcGVuZGVuY3kgYmV0d2VlbiBVU0VfT1BFTlhS
IGFuZAorICAgICAgICBFTkFCTEVfV0VCWFIuCisKKyAgICAgICAgTGFyZ2VseSBiYXNlZCBvbiBw
cmV2aW91cyB3b3JrIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogU291cmNlL2NtYWtl
L0ZpbmRPcGVuWFIuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlOiBBZGRlZCBtYW5kYXRvcnkgT3BlblhSIGRlcGVuZGVuY3kgaWYKKyAgICAgICAg
V0VCWFIgaXMgZW5hYmxlZCBleHBvc2luZyBVU0VfT1BFTlhSIHRvIHRoZSBidWlsZC4KKyAgICAg
ICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6IEFkZGVkIEVOQUJMRV9XRUJY
Ui4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5w
cm9wczogRGl0dG8uCisgICAgICAgICogU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVy
ZURlZmluZXNDYWlyby5wcm9wczogRGl0dG8uCisKIDIwMjAtMDMtMTQgIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0NNYWtlXSBXYXJuaW5nIHdo
ZW4gY2NhY2hlIGlzIG5vdCBpbnN0YWxsZWQK
</data>

          </attachment>
      

    </bug>

</bugzilla>