<?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>73177</bug_id>
          
          <creation_ts>2011-11-27 18:03:37 -0800</creation_ts>
          <short_desc>Add Custom Content Handler</short_desc>
          <delta_ts>2023-04-03 04:48:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=92749</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=92726</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>40829</blocked>
    
    <blocked>73639</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongwoo Joshua Im (dwim)">dw.im</reporter>
          <assigned_to name="Dongwoo Joshua Im (dwim)">dw.im</assigned_to>
          <cc>abarth</cc>
    
    <cc>annevk</cc>
    
    <cc>eoconnor</cc>
    
    <cc>eric</cc>
    
    <cc>gbillock</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>jasonliuwebkit</cc>
    
    <cc>jhawkins</cc>
    
    <cc>jochen</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>leo.yang</cc>
    
    <cc>mike</cc>
    
    <cc>peter</cc>
    
    <cc>p.jacquemart</cc>
    
    <cc>rakuco</cc>
    
    <cc>rcombs</cc>
    
    <cc>s.choi</cc>
    
    <cc>sh919.park</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509520</commentid>
    <comment_count>0</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-27 18:03:37 -0800</bug_when>
    <thetext>Regarding the HTML5 specification, 
(http://dev.w3.org/html5/spec/Overview.html#custom-handlers)
two APIs are added for Custom Content Handler.

One is &apos;isContentHandlerRegistered&apos; to query whether the specific URL is registered or not. 

The other is &apos;unregisterContentHandler&apos; to remove the registered URL.

I&apos;m preparing the patch to add these APIs now,
I&apos;ll upload in a few days.




And, here is one more thing.

As I know, &apos;registerContentHandler&apos; API is rolled out because there is no port to support the API.
Is there any way to add the API again?
I will implement Custom Content Handler on EFL port, including these new APIs.



Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509938</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-28 10:35:00 -0800</bug_when>
    <thetext>Since this is a new feature, please send an e-mail to webkit-dev to discuss, so that interested parties could comment on implementation strategy, as well as on whether we want this feature in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513664</commentid>
    <comment_count>2</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-02 04:05:38 -0800</bug_when>
    <thetext>I will implement &apos;registerContenHandler&apos; API in this bug, also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539973</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-20 18:01:13 -0800</bug_when>
    <thetext>*** Bug 44740 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643321</commentid>
    <comment_count>4</comment_count>
      <attachid>146229</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-07 01:36:58 -0700</bug_when>
    <thetext>Created attachment 146229
Patch

the very first patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644186</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 18:38:37 -0700</bug_when>
    <thetext>It looks like there was a thread on this topic in 2011.  I wonder if it would be worth pinging that thread again.  Some things have changed since then.  For example, I&apos;m not sure how this relates to WebIntents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644189</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 18:40:03 -0700</bug_when>
    <thetext>gbillock might have some insight into how this relates to WebIntents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644192</commentid>
    <comment_count>7</comment_count>
      <attachid>146229</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 18:42:28 -0700</bug_when>
    <thetext>Comment on attachment 146229
Patch

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

&gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:39
&gt; +static void initContentHandlerBlacklist()

This blacklist is troublesome.  For example, what if we invent a new image format (e.g., image/webp) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644195</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 18:44:20 -0700</bug_when>
    <thetext>I think the main question here is whether we should implement this feature.  The patch looks to be in reasonably good shape from an implementation perspective.  The use of a content-type blacklist worries me though.  I wonder if the design needs some more thought in that respect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644202</commentid>
    <comment_count>9</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-07 18:55:04 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 146229 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146229&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:39
&gt; &gt; +static void initContentHandlerBlacklist()
&gt; 
&gt; This blacklist is troublesome.  For example, what if we invent a new image format (e.g., image/webp) ?

As you can see, some of blacklist have been added compared with first time, by W3C .
Whenever we we add a new mime type, we can add it into the blacklist, and inform that to W3C to update the spec.

If you want, I can follow up those things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644212</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-07 19:06:36 -0700</bug_when>
    <thetext>Won&apos;t that break folks who are using that content type?  For registerProtocolHandler, we use the web+ prefix to solve this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644441</commentid>
    <comment_count>11</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-08 00:59:13 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Won&apos;t that break folks who are using that content type?  For registerProtocolHandler, we use the web+ prefix to solve this problem.

1. I&apos;m a little bit unclear what you are concerning.

at comment #7, you are worried about new mime type.
I thought you are worried that new mime type might go to the handler rather than run on the browser itself.

If it is right, that could be maintained what I suggested at comment #9 - maintaining the blacklist.

But now at comment #10, I think you are worrying that the new mime type might not go to the handler which want to handler that mime type.



2. For registerProtocolHandler, we use &quot;web+&quot; prefix just like whitelist.
If a protocol start with &quot;web+&quot;, we can add the handler even if it is not in the whitelist.

We can use similar strategy here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644703</commentid>
    <comment_count>12</comment_count>
      <attachid>146229</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-08 08:56:30 -0700</bug_when>
    <thetext>Comment on attachment 146229
Patch

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

&gt; Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig:133
&gt; +FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSS3_FLEXBOX) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_VARIABLES) $(ENABLE_CUSTOM_CONTENT_HANDLER) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FONT_BOOSTING) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);

The registerProtocolHandler flag is &quot;ENABLE_REGISTER_PROTOCOL_HANDLER&quot; so I&apos;d name this one &quot;ENABLE_REGISTER_CONTENT_HANDLER&quot;.

&gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:123
&gt; +    if (!verifyContentHandlerMimeType(mimeType, ec))

How about just calling iscontentBlacklisted directly here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644708</commentid>
    <comment_count>13</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-08 09:02:00 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; gbillock might have some insight into how this relates to WebIntents.

On the HTML list, we&apos;re considering basically seeing registerProtocolHandler, web intents, and registerContentHandler as APIs of the same feature. I don&apos;t think we&apos;ll end up getting rid of the RPH/RCH method signatures, though, so this is valuable. If that direction ends up being the one we take, we may want to end up merging all that code into one module, and having the APIs delegate to a single client signature.

One caveat is that isContentHandlerRegistered has privacy implications that are worth considering specially.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645190</commentid>
    <comment_count>14</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-08 18:45:34 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 146229 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146229&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig:133
&gt; &gt; 
&gt; The registerProtocolHandler flag is &quot;ENABLE_REGISTER_PROTOCOL_HANDLER&quot; so I&apos;d name this one &quot;ENABLE_REGISTER_CONTENT_HANDLER&quot;.

ENABLE_SCHEME_HANDLER flag is also there.
I think ENABLE_SCHEME_HANDLER  and ENABLE_CONTENT_HANDLER are better.

I filed that bug already, https://bugs.webkit.org/show_bug.cgi?id=88614.

&gt; 
&gt; &gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:123
&gt; &gt; +    if (!verifyContentHandlerMimeType(mimeType, ec))
&gt; 
&gt; How about just calling iscontentBlacklisted directly here?

That could be.
I will try that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645300</commentid>
    <comment_count>15</comment_count>
      <attachid>146229</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-09 05:08:05 -0700</bug_when>
    <thetext>Comment on attachment 146229
Patch

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

As Greg mentioned in commit #13, it looks this feature is able to be moved to Modules.

&gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:64
&gt; +    // The specification requires that it is a SYNTAX_ERR if the &quot;%s&quot; token is

Don&apos;t you add &quot;FIXME:&quot; to here ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645654</commentid>
    <comment_count>16</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-10 17:23:04 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 146229 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146229&amp;action=review
&gt; 
&gt; As Greg mentioned in commit #13, it looks this feature is able to be moved to Modules.

As Greg said, the three features - registerProtocolHandler, web intents, and registerContentHandler - will be merged as one modlue.
I think we can move this after those are merged as one module.

Or, I can move registerProtocolHandler and registerContentHandler into Modules/customhandler now.

Which one is better?


&gt; 
&gt; &gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:64
&gt; &gt; +    // The specification requires that it is a SYNTAX_ERR if the &quot;%s&quot; token is
&gt; 
&gt; Don&apos;t you add &quot;FIXME:&quot; to here ?

I don&apos;t think FIXME is needed here. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645720</commentid>
    <comment_count>17</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-10 21:45:02 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 146229 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146229&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/NavigatorRegisterContentHandler.cpp:123
&gt; &gt; &gt; +    if (!verifyContentHandlerMimeType(mimeType, ec))
&gt; &gt; 
&gt; &gt; How about just calling iscontentBlacklisted directly here?
&gt; 
&gt; That could be.
&gt; I will try that.

I think we can leave this function, so that this function can handle more verification by calling other functions in itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646623</commentid>
    <comment_count>18</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-11 22:30:24 -0700</bug_when>
    <thetext>Dear Ian Hickson,

We have had discussion about the Custom Content Handler which is defined in HTML5 spec.
We are concerning that this feature is still valuable to implement in WebKit or not.

Could you please give your opinion about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647246</commentid>
    <comment_count>19</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-06-12 13:38:19 -0700</bug_when>
    <thetext>I expect this and Web Intents will merge, but I don&apos;t expect it will do so in a way that breaks backwards-compatibility with this feature, so it should be fine to implement. Might want to check with the Web Intents guys though; I thought they were ready for the merge but then they started pushing their spec through the W3C system so I don&apos;t know what their plan is at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647538</commentid>
    <comment_count>20</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-06-12 17:53:47 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I expect this and Web Intents will merge, but I don&apos;t expect it will do so in a way that breaks backwards-compatibility with this feature, so it should be fine to implement. Might want to check with the Web Intents guys though; I thought they were ready for the merge but then they started pushing their spec through the W3C system so I don&apos;t know what their plan is at the moment.

Dear Greg Billock,

Could you please give your opinion about this? ;)

What kind of changes will be added in this feature?
Could you share your plan?

And, still you think it is valuable to be implemented in WebKit as is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741812</commentid>
    <comment_count>21</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-10-15 00:32:51 -0700</bug_when>
    <thetext>Custom Content Handler is still in the very current HTML5 spec, which is release on 11th October 2012.

Still, do you guys think this isn&apos;t valuable to implement in WebKit?

Any other news or opinion about this? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976849</commentid>
    <comment_count>22</comment_count>
      <attachid>146229</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 10:55:38 -0800</bug_when>
    <thetext>Comment on attachment 146229
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1946173</commentid>
    <comment_count>23</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-04-03 04:48:30 -0700</bug_when>
    <thetext>If there is an initiative to add this API again it would benefit from a clean approach so let&apos;s close this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146229</attachid>
            <date>2012-06-07 01:36:58 -0700</date>
            <delta_ts>2014-02-05 10:55:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch_content_handler_0607.patch</filename>
            <type>text/plain</type>
            <size>56280</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0YjQ1MThmLi5jMzg5ZjBi
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMDYtMDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBB
ZGQgQ3VzdG9tIENvbnRlbnQgSGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVzNDIHNw
ZWMsIEN1c3RvbSBDb250ZW50IEhhbmRsZXIuCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2h0
bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCNjdXN0b20taGFuZGxlcnMKKworICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZTogQWRkIGEgbWFjcm8gJ0VOQUJMRV9DVVNUT01f
Q09OVEVOVF9IQU5ETEVSJy4KKyAgICAgICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZTog
QWRkIGEgbWFjcm8gJ0VOQUJMRV9DVVNUT01fQ09OVEVOVF9IQU5ETEVSJy4KKwogMjAxMi0wNi0w
NiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIGdp
dCBhYm91dCBsb2NhbGl6YWJsZSAqLnN0cmluZ3MgZmlsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZWYwODBmLi5iNTc5
ZjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDYtMDcgIERvbmd3b28gSW0gIDxkdy5p
bUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBZGQgQ3VzdG9tIENvbnRlbnQgSGFuZGxlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMTc3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgVzNDIHNwZWMsIEN1c3RvbSBDb250ZW50IEhhbmRsZXIuCisg
ICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCNjdXN0b20t
aGFuZGxlcnMKKworICAgICAgICAqIGZhc3QvZG9tL3JlZ2lzdGVyLWNvbnRlbnQtaGFuZGxlci1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3JlZ2lzdGVyLWNvbnRlbnQt
aGFuZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS91bnJlZ2lzdGVyLWNvbnRl
bnQtaGFuZGxlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3VucmVn
aXN0ZXItY29udGVudC1oYW5kbGVyLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA2LTA2ICBTaGV6YW4g
QmFpZyAgPHNoZXpiYWlnLndrQGdtYWlsLmNvbT4KIAogICAgICAgICBDYXJldCBpcyBub3QgcmVu
ZGVyZWQgaW4gZW1wdHkgaW5saW5lIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVnaXN0ZXItY29udGVudC1oYW5kbGVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlZ2lzdGVyLWNvbnRlbnQtaGFuZGxlci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZlNjMzNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlZ2lzdGVyLWNvbnRlbnQtaGFu
ZGxlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUg
dGhhdCBuYXZpZ2F0b3IucmVnaXN0ZXJDb250ZW50SGFuZGxlciB0aHJvd3MgdGhlIHByb3BlciBl
eGNlcHRpb25zIGFuZCBoYXMgbm8tb3AgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKworRmFpbDog
d2luZG93Lm5hdmlnYXRvci5yZWdpc3RlckNvbnRlbnRIYW5kbGVyIGlzIG5vdCBkZWZpbmVkLgor
UGFzczogSW52YWxpZCBtaW1lIHR5cGUgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZCIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4KK1Bhc3M6IEludmFsaWQgbWltZSB0eXBl
ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIHRocmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitQ
YXNzOiBJbnZhbGlkIG1pbWUgdHlwZSAiYXBwbGljYXRpb24veG1sIiB0aHJldyBTRUNVUklUWV9F
UlIgZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgImltYWdlL2dpZiIgdGhyZXcg
U0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4KK1Bhc3M6IEludmFsaWQgbWltZSB0eXBlICJpbWFnZS9q
cGVnIiB0aHJldyBTRUNVUklUWV9FUlIgZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5
cGUgImltYWdlL3BuZyIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4KK1Bhc3M6IEludmFs
aWQgbWltZSB0eXBlICJpbWFnZS9zdmcreG1sIiB0aHJldyBTRUNVUklUWV9FUlIgZXhjZXB0aW9u
LgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2UiIHRo
cmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitQYXNzOiBJbnZhbGlkIG1pbWUgdHlwZSAidGV4
dC9jYWNoZS1tYW5pZmVzdCIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4KK1Bhc3M6IElu
dmFsaWQgbWltZSB0eXBlICJ0ZXh0L2NzcyIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4K
K1Bhc3M6IEludmFsaWQgbWltZSB0eXBlICJ0ZXh0L2h0bWwiIHRocmV3IFNFQ1VSSVRZX0VSUiBl
eGNlcHRpb24uCitQYXNzOiBJbnZhbGlkIG1pbWUgdHlwZSAidGV4dC9waW5nIiB0aHJldyBTRUNV
UklUWV9FUlIgZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgInRleHQvcGxhaW4i
IHRocmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitQYXNzOiBJbnZhbGlkIG1pbWUgdHlwZSAi
dGV4dC94bWwiIHRocmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitGYWlsOiBJbnZhbGlkIHVy
bCAiIiBhbGxvd2VkLgorRmFpbDogSW52YWxpZCB1cmwgIiVTIiBhbGxvd2VkLgorRmFpbDogSW52
YWxpZCBjYWxsIGRpZCBub3Qgc3VjY2VlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcmVnaXN0ZXItY29udGVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9yZWdpc3Rlci1jb250ZW50LWhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42MTE3NTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVnaXN0ZXItY29udGVudC1oYW5kbGVyLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgbmF2aWdhdG9yLnJlZ2lzdGVy
Q29udGVudEhhbmRsZXIgdGhyb3dzIHRoZSBwcm9wZXIgZXhjZXB0aW9ucyBhbmQgaGFzIG5vLW9w
IGRlZmF1bHQgaW1wbGVtZW50YXRpb24uPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGRlYnVnKHN0cikKK3sKKyAgICB2
YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykKKyAgICBjLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0ciArICdcbicpKTsKK30KKworaWYgKHdpbmRv
dy5uYXZpZ2F0b3IucmVnaXN0ZXJDb250ZW50SGFuZGxlcikKKyAgICBkZWJ1ZygnUGFzczogd2lu
ZG93Lm5hdmlnYXRvci5yZWdpc3RlckNvbnRlbnRIYW5kbGVyIGlzIGRlZmluZWQuJyk7CitlbHNl
CisgICAgZGVidWcoJ0ZhaWw6IHdpbmRvdy5uYXZpZ2F0b3IucmVnaXN0ZXJDb250ZW50SGFuZGxl
ciBpcyBub3QgZGVmaW5lZC4nKTsKKwordmFyIGludmFsaWRfbWltZVR5cGVzID0gWydhcHBsaWNh
dGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLCAnYXBwbGljYXRpb24veGh0bWwreG1sJywgJ2Fw
cGxpY2F0aW9uL3htbCcsICdpbWFnZS9naWYnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9wbmcnLCAn
aW1hZ2Uvc3ZnK3htbCcsICdtdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlJywgJ3RleHQvY2FjaGUt
bWFuaWZlc3QnLCAndGV4dC9jc3MnLCAndGV4dC9odG1sJywgJ3RleHQvcGluZycsICd0ZXh0L3Bs
YWluJywgJ3RleHQveG1sJ107CitpbnZhbGlkX21pbWVUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uICht
aW1lVHlwZSkgeworICAgIHZhciBzdWNjZWVkZWQgPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAg
ICB3aW5kb3cubmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIobWltZVR5cGUsICJpbnZh
bGlkIG1pbWUgdHlwZSAlcyIsICJ0aXRsZSIpOworICAgICAgICBzdWNjZWVkZWQgPSBmYWxzZTsK
KyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHN1Y2NlZWRlZCA9IHRydWU7CisgICAgfQorCisg
ICAgaWYgKHN1Y2NlZWRlZCkKKyAgICAgICAgZGVidWcoJ1Bhc3M6IEludmFsaWQgbWltZSB0eXBl
ICInICsgbWltZVR5cGUgKyAnIiB0aHJldyBTRUNVUklUWV9FUlIgZXhjZXB0aW9uLicpOworICAg
IGVsc2UKKyAgICAgICAgZGVidWcoJ0ZhaWw6IEludmFsaWQgbWltZSB0eXBlICInICsgbWltZVR5
cGUgKyAnIiBhbGxvZXdlZC4nKTsKK30pOworCit2YXIgaW52YWxpZF91cmxzID0gWyIiLCAiJVMi
XTsKK2ludmFsaWRfdXJscy5mb3JFYWNoKGZ1bmN0aW9uICh1cmwpIHsKKyAgIHZhciBzdWNjZWVk
ZWQgPSBmYWxzZTsKKyAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IucmVnaXN0ZXJD
b250ZW50SGFuZGxlcignbXltaW1ldHlwZScsIHVybCwgJ3RpdGxlJyk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBzdWNjZWVkZWQgPSAnU1lOVEFYX0VSUicgPT0gZS5uYW1lOworICAgIH0K
KworICAgIGlmIChzdWNjZWVkZWQpCisgICAgICAgIGRlYnVnKCdQYXNzOiBJbnZhbGlkIHVybCAi
JyArIHVybCArICciIHRocmV3IFNZTlRBWF9FUlIgZXhjZXB0aW9uLicpOworICAgIGVsc2UKKyAg
ICAgICAgZGVidWcoJ0ZhaWw6IEludmFsaWQgdXJsICInICsgdXJsICsgJyIgYWxsb3dlZC4nKTsK
K30pOworCisvLyBUZXN0IHRoYXQgdGhlIEFQSSBoYXMgZGVmYXVsdCBuby1vcCBpbXBsZW1lbnRh
dGlvbi4KK3ZhciBzdWNjZWVkZWQgPSB0cnVlOwordHJ5IHsKKyAgICB3aW5kb3cubmF2aWdhdG9y
LnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoJ215bWltZXR5cGUnLCAiJXMiLCAidGl0bGUiKTsKK30g
Y2F0Y2ggKGUpIHsKKyAgICBzdWNjZWVkZWQgPSBmYWxzZTsKK30KKworaWYgKHN1Y2NlZWRlZCkK
KyAgICBkZWJ1ZygnUGFzczogVmFsaWQgY2FsbCBzdWNjZWVkZWQuJyk7CitlbHNlCisgICAgZGVi
dWcoJ0ZhaWw6IEludmFsaWQgY2FsbCBkaWQgbm90IHN1Y2NlZWQuJyk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3VucmVnaXN0
ZXItY29udGVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Vu
cmVnaXN0ZXItY29udGVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iZTJkNmY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vdW5yZWdpc3Rlci1jb250ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjEgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgbmF2aWdhdG9yLnVucmVnaXN0ZXJD
b250ZW50SGFuZGxlciB0aHJvd3MgdGhlIHByb3BlciBleGNlcHRpb25zIGFuZCBoYXMgbm8tb3Ag
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKworRmFpbDogd2luZG93Lm5hdmlnYXRvci51bnJlZ2lz
dGVyQ29udGVudEhhbmRsZXIgaXMgbm90IGRlZmluZWQuCitQYXNzOiBJbnZhbGlkIG1pbWUgdHlw
ZSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiB0aHJldyBTRUNVUklUWV9FUlIg
ZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgImFwcGxpY2F0aW9uL3hodG1sK3ht
bCIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4KK1Bhc3M6IEludmFsaWQgbWltZSB0eXBl
ICJhcHBsaWNhdGlvbi94bWwiIHRocmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitQYXNzOiBJ
bnZhbGlkIG1pbWUgdHlwZSAiaW1hZ2UvZ2lmIiB0aHJldyBTRUNVUklUWV9FUlIgZXhjZXB0aW9u
LgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgImltYWdlL2pwZWciIHRocmV3IFNFQ1VSSVRZX0VS
UiBleGNlcHRpb24uCitQYXNzOiBJbnZhbGlkIG1pbWUgdHlwZSAiaW1hZ2UvcG5nIiB0aHJldyBT
RUNVUklUWV9FUlIgZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgImltYWdlL3N2
Zyt4bWwiIHRocmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitQYXNzOiBJbnZhbGlkIG1pbWUg
dHlwZSAibXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZSIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2Vw
dGlvbi4KK1Bhc3M6IEludmFsaWQgbWltZSB0eXBlICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IiB0aHJl
dyBTRUNVUklUWV9FUlIgZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5cGUgInRleHQv
Y3NzIiB0aHJldyBTRUNVUklUWV9FUlIgZXhjZXB0aW9uLgorUGFzczogSW52YWxpZCBtaW1lIHR5
cGUgInRleHQvaHRtbCIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4Y2VwdGlvbi4KK1Bhc3M6IEludmFs
aWQgbWltZSB0eXBlICJ0ZXh0L3BpbmciIHRocmV3IFNFQ1VSSVRZX0VSUiBleGNlcHRpb24uCitQ
YXNzOiBJbnZhbGlkIG1pbWUgdHlwZSAidGV4dC9wbGFpbiIgdGhyZXcgU0VDVVJJVFlfRVJSIGV4
Y2VwdGlvbi4KK1Bhc3M6IEludmFsaWQgbWltZSB0eXBlICJ0ZXh0L3htbCIgdGhyZXcgU0VDVVJJ
VFlfRVJSIGV4Y2VwdGlvbi4KK0ZhaWw6IEludmFsaWQgdXJsICIiIGFsbG93ZWQuCitGYWlsOiBJ
bnZhbGlkIHVybCAiJVMiIGFsbG93ZWQuCitGYWlsOiBJbnZhbGlkIGNhbGwgZGlkIG5vdCBzdWNj
ZWVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS91bnJlZ2lzdGVyLWNvbnRl
bnQtaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdW5yZWdpc3Rlci1jb250ZW50
LWhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDY5ZjJi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdW5yZWdpc3Rlci1jb250
ZW50LWhhbmRsZXIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBuYXZpZ2F0b3IudW5yZWdpc3RlckNvbnRlbnRIYW5kbGVy
IHRocm93cyB0aGUgcHJvcGVyIGV4Y2VwdGlvbnMgYW5kIGhhcyBuby1vcCBkZWZhdWx0IGltcGxl
bWVudGF0aW9uLjwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBkZWJ1ZyhzdHIpCit7CisgICAgdmFyIGMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpCisgICAgYy5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKSk7Cit9CisKK2lmICh3aW5kb3cubmF2aWdhdG9yLnVu
cmVnaXN0ZXJDb250ZW50SGFuZGxlcikKKyAgICBkZWJ1ZygnUGFzczogd2luZG93Lm5hdmlnYXRv
ci51bnJlZ2lzdGVyQ29udGVudEhhbmRsZXIgaXMgZGVmaW5lZC4nKTsKK2Vsc2UKKyAgICBkZWJ1
ZygnRmFpbDogd2luZG93Lm5hdmlnYXRvci51bnJlZ2lzdGVyQ29udGVudEhhbmRsZXIgaXMgbm90
IGRlZmluZWQuJyk7CisKK3ZhciBpbnZhbGlkX21pbWVUeXBlcyA9IFsnYXBwbGljYXRpb24veC13
d3ctZm9ybS11cmxlbmNvZGVkJywgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsICdhcHBsaWNhdGlv
bi94bWwnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcG5nJywgJ2ltYWdlL3N2
Zyt4bWwnLCAnbXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZScsICd0ZXh0L2NhY2hlLW1hbmlmZXN0
JywgJ3RleHQvY3NzJywgJ3RleHQvaHRtbCcsICd0ZXh0L3BpbmcnLCAndGV4dC9wbGFpbicsICd0
ZXh0L3htbCddOworaW52YWxpZF9taW1lVHlwZXMuZm9yRWFjaChmdW5jdGlvbiAobWltZVR5cGUp
IHsKKyAgICB2YXIgc3VjY2VlZGVkID0gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93
Lm5hdmlnYXRvci51bnJlZ2lzdGVyQ29udGVudEhhbmRsZXIobWltZVR5cGUsICJpbnZhbGlkIG1p
bWUgdHlwZSAlcyIpOworICAgICAgICBzdWNjZWVkZWQgPSBmYWxzZTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIHN1Y2NlZWRlZCA9IHRydWU7CisgICAgfQorCisgICAgaWYgKHN1Y2NlZWRl
ZCkKKyAgICAgICAgZGVidWcoJ1Bhc3M6IEludmFsaWQgbWltZSB0eXBlICInICsgbWltZVR5cGUg
KyAnIiB0aHJldyBTRUNVUklUWV9FUlIgZXhjZXB0aW9uLicpOworICAgIGVsc2UKKyAgICAgICAg
ZGVidWcoJ0ZhaWw6IEludmFsaWQgbWltZSB0eXBlICInICsgbWltZVR5cGUgKyAnIiBhbGxvZXdl
ZC4nKTsKK30pOworCit2YXIgaW52YWxpZF91cmxzID0gWyIiLCAiJVMiXTsKK2ludmFsaWRfdXJs
cy5mb3JFYWNoKGZ1bmN0aW9uICh1cmwpIHsKKyAgIHZhciBzdWNjZWVkZWQgPSBmYWxzZTsKKyAg
IHRyeSB7CisgICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IudW5yZWdpc3RlckNvbnRlbnRIYW5kbGVy
KCdteW1pbWV0eXBlJywgdXJsKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHN1Y2NlZWRl
ZCA9ICdTWU5UQVhfRVJSJyA9PSBlLm5hbWU7CisgICAgfQorCisgICAgaWYgKHN1Y2NlZWRlZCkK
KyAgICAgICAgZGVidWcoJ1Bhc3M6IEludmFsaWQgdXJsICInICsgdXJsICsgJyIgdGhyZXcgU1lO
VEFYX0VSUiBleGNlcHRpb24uJyk7CisgICAgZWxzZQorICAgICAgICBkZWJ1ZygnRmFpbDogSW52
YWxpZCB1cmwgIicgKyB1cmwgKyAnIiBhbGxvd2VkLicpOworfSk7CisKKy8vIFRlc3QgdGhhdCB0
aGUgQVBJIGhhcyBkZWZhdWx0IG5vLW9wIGltcGxlbWVudGF0aW9uLgordmFyIHN1Y2NlZWRlZCA9
IHRydWU7Cit0cnkgeworICAgIHdpbmRvdy5uYXZpZ2F0b3IudW5yZWdpc3RlckNvbnRlbnRIYW5k
bGVyKCdteW1pbWV0eXBlJywgIiVzIik7Cit9IGNhdGNoIChlKSB7CisgICAgc3VjY2VlZGVkID0g
ZmFsc2U7Cit9CisKK2lmIChzdWNjZWVkZWQpCisgICAgZGVidWcoJ1Bhc3M6IFZhbGlkIGNhbGwg
c3VjY2VlZGVkLicpOworZWxzZQorICAgIGRlYnVnKCdGYWlsOiBJbnZhbGlkIGNhbGwgZGlkIG5v
dCBzdWNjZWVkLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkMThiNWRmLi5kYTU0NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0wNyAgRG9uZ3dvbyBJbSAgPGR3LmltQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIEFkZCBDdXN0b20gQ29udGVudCBIYW5kbGVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFuIGltcGxlbWVudGF0
aW9uIG9mIHRoZSBXM0Mgc3BlYywgQ3VzdG9tIENvbnRlbnQgSGFuZGxlci4KKyAgICAgICAgaHR0
cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI2N1c3RvbS1oYW5kbGVycwor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBh
IG1hY3JvICdFTkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUicuCisKIDIwMTItMDYtMDYgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hyb21pdW0gYnVpbGQg
Zml4IGF0dGVtcHQuIFdoeSBkbyB3ZSBuZWVkIHRvIGxpc3QgdGhlc2UgZmlsZXMgaW4gZ3lwIT8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAyZWZiODRiLi4zZDgzZTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCkBAIC00Miw2ICs0Miw3IEBAIEVOQUJMRV9DU1NfRklMVEVSUyA9IEVO
QUJMRV9DU1NfRklMVEVSUzsKIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiA9IDsKIEVOQUJM
RV9DU1NfUkVHSU9OUyA9IEVOQUJMRV9DU1NfUkVHSU9OUzsKIEVOQUJMRV9DU1NfVkFSSUFCTEVT
ID0gOworRU5BQkxFX0NVU1RPTV9DT05URU5UX0hBTkRMRVIgPSA7CiBFTkFCTEVfQ1VTVE9NX1ND
SEVNRV9IQU5ETEVSID0gOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUID0gJChFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVF9tYWNvc3ggPSBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQ7CkBAIC0xMjksNCArMTMw
LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JL
RVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVO
QUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxF
X0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1ZBUklBQkxF
UykgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZPTlRfQk9PU1RJTkcpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
QU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5Q
VVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9D
U1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19QUkVSRU5ERVIpICQoRU5BQkxFX01BVEhN
TCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JT
RVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJ
U1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkg
JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9T
SEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09Q
RUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxF
X0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdF
X1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykg
JChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUikg
JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5B
QkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNU
T1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5B
QkxFX0ZPTlRfQk9PU1RJTkcpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19QUkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJW
RVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJ
KSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChF
TkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFS
RURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQp
ICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VD
SF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGM4NDFmZDIuLmE4MjYyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAor
MjAxMi0wNi0wNyAgRG9uZ3dvbyBJbSAgPGR3LmltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFk
ZCBDdXN0b20gQ29udGVudCBIYW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBXM0Mgc3Bl
YywgQ3VzdG9tIENvbnRlbnQgSGFuZGxlci4KKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvaHRt
bDUvc3BlYy9PdmVydmlldy5odG1sI2N1c3RvbS1oYW5kbGVycworCisgICAgICAgIFRlc3RzOiBm
YXN0L2RvbS9yZWdpc3Rlci1jb250ZW50LWhhbmRsZXIuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vdW5yZWdpc3Rlci1jb250ZW50LWhhbmRsZXIuaHRtbAorCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBhIG1hY3JvICdFTkFCTEVfQ1VT
VE9NX0NPTlRFTlRfSEFORExFUicuCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgor
ICAgICAgICAoRW1wdHlDaHJvbWVDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OnJlZ2lzdGVyQ29udGVudEhhbmRsZXIpOiBBZGQgYSB2aXJ0dWFsIGZ1bmN0aW9u
LgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmlzQ29udGVudEhhbmRsZXJS
ZWdpc3RlcmVkKTogQWRkIGEgdmlydHVhbCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5Q2hyb21lQ2xpZW50Ojp1bnJlZ2lzdGVyQ29udGVudEhhbmRsZXIpOiBBZGQgYSB2aXJ0dWFs
IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJv
bWVDbGllbnQpOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppbml0
Q29udGVudEhhbmRsZXJCbGFja2xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6dmVyaWZ5Q3VzdG9t
SGFuZGxlclVSTCk6CisgICAgICAgIChXZWJDb3JlOjppc0NvbnRlbnRCbGFja2xpc3RlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2ZXJpZnlDb250ZW50SGFuZGxlck1pbWVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXI6Ok5hdmlnYXRvclJlZ2lz
dGVyQ29udGVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yUmVnaXN0ZXJD
b250ZW50SGFuZGxlcjo6fk5hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlcjo6cmVnaXN0ZXJDb250
ZW50SGFuZGxlcik6IFJlZ2lzdGVyIGEgY29udGVudCBoYW5kbGVyLgorICAgICAgICAoV2ViQ29y
ZTo6Y3VzdG9tSGFuZGxlcnNTdGF0ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0
b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyOjppc0NvbnRlbnRIYW5kbGVyUmVnaXN0ZXJlZCk6IFF1
ZXJ5IGlmIHRoZSBoYW5kbGVyIGlzIHJlZ2lzdGVyZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29y
ZTo6TmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlcjo6dW5yZWdpc3RlckNvbnRlbnRIYW5k
bGVyKTogUmVtb3ZlIHRoZSByZWdpc3RlcmVkIGhhbmRsZXIuCisgICAgICAgICogcGFnZS9OYXZp
Z2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChOYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyKToKKyAgICAgICAgKiBw
YWdlL05hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIuaWRsOiBBZGRlZC4KKwogMjAxMi0w
Ni0wNiAgU2hlemFuIEJhaWcgIDxzaGV6YmFpZy53a0BnbWFpbC5jb20+CiAKICAgICAgICAgQ2Fy
ZXQgaXMgbm90IHJlbmRlcmVkIGluIGVtcHR5IGlubGluZSBjb250ZW50ZWRpdGFibGUgZWxlbWVu
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKaW5kZXggMmVmYjg0Yi4uM2Q4M2UxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQyLDYg
KzQyLDcgQEAgRU5BQkxFX0NTU19GSUxURVJTID0gRU5BQkxFX0NTU19GSUxURVJTOwogRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OID0gOwogRU5BQkxFX0NTU19SRUdJT05TID0gRU5BQkxFX0NT
U19SRUdJT05TOwogRU5BQkxFX0NTU19WQVJJQUJMRVMgPSA7CitFTkFCTEVfQ1VTVE9NX0NPTlRF
TlRfSEFORExFUiA9IDsKIEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgPSA7CiBFTkFCTEVf
REFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExB
VEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVDsKQEAgLTEyOSw0ICsxMzAsNCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9
IDsKIEVOQUJMRV9XT1JLRVJTID0gRU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJM
RV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFC
TEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUzNfRkxFWEJP
WCkgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJM
RV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NT
U19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1F
X0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9CT09TVElORykgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0Up
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
TUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQo
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gp
ICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
UUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVY
VF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChF
TkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxF
X0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NT
X1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAk
KEVOQUJMRV9DVVNUT01fQ09OVEVOVF9IQU5ETEVSKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hB
TkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxF
X1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9CT09TVElORykgJChFTkFC
TEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFC
TEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQ
VF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxF
X0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9M
SU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlD
Uk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElP
TlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQo
RU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxf
REFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9T
VkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9O
T1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VC
X0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFC
TEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKaW5kZXggNWQ3ZWRlYi4uZWZlZjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaApAQCAtMTM1LDYgKzEzNSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVucmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDVVNUT01fQ09OVEVOVF9IQU5ETEVS
KQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNvbnRlbnRIYW5kbGVyKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZp
cnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc0NvbnRlbnRIYW5kbGVyUmVnaXN0ZXJlZChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBDdXN0b21I
YW5kbGVyc0RlY2xpbmVkOyB9CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJDb250ZW50SGFu
ZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNl
bmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikg
eyB9CiAKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgeyByZXR1
cm4gS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApp
bmRleCA5MWMwNGJmLi5lZTA5MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTE0NSwxNyArMTQ1LDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBT
dHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9
IDA7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDVVNUT01fU0NIRU1FX0hBTkRMRVIpCisjaWYgRU5B
QkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikgfHwgRU5BQkxFKENVU1RPTV9DT05URU5UX0hBTkRM
RVIpCiAgICAgICAgIGVudW0gQ3VzdG9tSGFuZGxlcnNTdGF0ZSB7CiAgICAgICAgICAgICBDdXN0
b21IYW5kbGVyc05ldywKICAgICAgICAgICAgIEN1c3RvbUhhbmRsZXJzUmVnaXN0ZXJlZCwKICAg
ICAgICAgICAgIEN1c3RvbUhhbmRsZXJzRGVjbGluZWQKICAgICAgICAgfTsKKyNlbmRpZgogCisj
aWYgRU5BQkxFKENVU1RPTV9TQ0hFTUVfSEFORExFUikKICAgICAgICAgdmlydHVhbCBDdXN0b21I
YW5kbGVyc1N0YXRlIGlzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZChjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkgPSAwOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcm
IHNjaGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkgPSAwOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1VTVE9NX0NPTlRFTlRfSEFORExFUikKKyAgICAgICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyQ29udGVudEhhbmRsZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Y29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgPSAwOworICAgICAgICB2aXJ0dWFsIEN1c3RvbUhhbmRsZXJzU3RhdGUgaXNDb250ZW50
SGFuZGxlclJlZ2lzdGVyZWQoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdW5y
ZWdpc3RlckNvbnRlbnRIYW5kbGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1cmwpID0gMDsKKyNlbmRpZgorCiAgICAgICAgIHZp
cnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0ID0gMDsKIAogICAgICAgICAv
LyBNZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZWQ2MGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIuY3BwCkBAIC0wLDAg
KzEsMTk5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yUmVnaXN0ZXJD
b250ZW50SGFuZGxlci5oIgorCisjaWYgRU5BQkxFKENVU1RPTV9DT05URU5UX0hBTkRMRVIpCisK
KyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBIYXNoU2V0
PFN0cmluZz4qIENvbnRlbnRCbGFja2xpc3Q7CisKK3N0YXRpYyB2b2lkIGluaXRDb250ZW50SGFu
ZGxlckJsYWNrbGlzdCgpCit7CisgICAgQ29udGVudEJsYWNrbGlzdCA9IG5ldyBIYXNoU2V0PFN0
cmluZz47CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIG1pbWVUeXBlW10gPSB7CisgICAgICAgICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiCisgICAgICAgICJhcHBsaWNhdGlvbi94
aHRtbCt4bWwiCisgICAgICAgICJhcHBsaWNhdGlvbi94bWwiCisgICAgICAgICJpbWFnZS9naWYi
CisgICAgICAgICJpbWFnZS9qcGVnIgorICAgICAgICAiaW1hZ2UvcG5nIgorICAgICAgICAiaW1h
Z2Uvc3ZnK3htbCIKKyAgICAgICAgIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2UiCisgICAgICAg
ICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IgorICAgICAgICAidGV4dC9jc3MiCisgICAgICAgICJ0ZXh0
L2h0bWwiCisgICAgICAgICJ0ZXh0L3BpbmciCisgICAgICAgICJ0ZXh0L3BsYWluIgorICAgICAg
ICAidGV4dC94bWwiCisgICAgfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJB
WV9MRU5HVEgobWltZVR5cGUpOyArK2kpCisgICAgICAgIENvbnRlbnRCbGFja2xpc3QtPmFkZCht
aW1lVHlwZVtpXSk7Cit9CisKK3N0YXRpYyBib29sIHZlcmlmeUN1c3RvbUhhbmRsZXJVUkwoY29u
c3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgLy8gVGhlIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgdGhhdCBpdCBpcyBhIFNZTlRB
WF9FUlIgaWYgdGhlICIlcyIgdG9rZW4gaXMKKyAgICAvLyBub3QgcHJlc2VudC4KKyAgICBzdGF0
aWMgY29uc3QgY2hhciB0b2tlbltdID0gIiVzIjsKKyAgICBpbnQgaW5kZXggPSB1cmwuZmluZCh0
b2tlbik7CisgICAgaWYgKC0xID09IGluZGV4KSB7CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEl0IGlzIGFsc28gYSBTWU5U
QVhfRVJSIGlmIHRoZSBjdXN0b20gaGFuZGxlciBVUkwsIGFzIGNyZWF0ZWQgYnkgcmVtb3ZpbmcK
KyAgICAvLyB0aGUgIiVzIiB0b2tlbiBhbmQgcHJlcGVuZGluZyB0aGUgYmFzZSB1cmwsIGRvZXMg
bm90IHJlc29sdmUuCisgICAgU3RyaW5nIG5ld1VSTCA9IHVybDsKKyAgICBuZXdVUkwucmVtb3Zl
KGluZGV4LCBXVEZfQVJSQVlfTEVOR1RIKHRva2VuKSAtIDEpOworCisgICAgS1VSTCBiYXNlKFBh
cnNlZFVSTFN0cmluZywgYmFzZVVSTCk7CisgICAgS1VSTCBrdXJsKGJhc2UsIG5ld1VSTCk7CisK
KyAgICBpZiAoa3VybC5pc0VtcHR5KCkgfHwgIWt1cmwuaXNWYWxpZCgpKSB7CisgICAgICAgIGVj
ID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVy
biB0cnVlOworfQorCitzdGF0aWMgYm9vbCBpc0NvbnRlbnRCbGFja2xpc3RlZChjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKQoreworICAgIGlmICghQ29udGVudEJsYWNrbGlzdCkKKyAgICAgICAgaW5p
dENvbnRlbnRIYW5kbGVyQmxhY2tsaXN0KCk7CisgICAgcmV0dXJuIENvbnRlbnRCbGFja2xpc3Qt
PmNvbnRhaW5zKG1pbWVUeXBlKTsKK30KKworc3RhdGljIGJvb2wgdmVyaWZ5Q29udGVudEhhbmRs
ZXJNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAoIWlzQ29udGVudEJsYWNrbGlzdGVkKG1pbWVUeXBlKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgZWMgPSBTRUNVUklUWV9FUlI7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitO
YXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyOjpOYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRI
YW5kbGVyKCkKK3sKK30KKworTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlcjo6fk5hdmln
YXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKQoreworfQorCit2b2lkIE5hdmlnYXRvclJlZ2lz
dGVyQ29udGVudEhhbmRsZXI6OnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoTmF2aWdhdG9yKiBuYXZp
Z2F0b3IsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5hdmlnYXRvci0+
ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbmF2
aWdhdG9yLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIFN0cmluZyBiYXNlVVJMID0gZG9jdW1l
bnQtPmJhc2VVUkwoKS5iYXNlQXNTdHJpbmcoKTsKKworICAgIGlmICghdmVyaWZ5Q3VzdG9tSGFu
ZGxlclVSTChiYXNlVVJMLCB1cmwsIGVjKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF2
ZXJpZnlDb250ZW50SGFuZGxlck1pbWVUeXBlKG1pbWVUeXBlLCBlYykpCisgICAgICAgIHJldHVy
bjsKKworICAgIFBhZ2UqIHBhZ2UgPSBuYXZpZ2F0b3ItPmZyYW1lKCktPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQo
KS0+cmVnaXN0ZXJDb250ZW50SGFuZGxlcihtaW1lVHlwZSwgYmFzZVVSTCwgdXJsLCBuYXZpZ2F0
b3ItPmZyYW1lKCktPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcodGl0bGUpKTsKK30K
Kworc3RhdGljIFN0cmluZyBjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IENocm9tZUNs
aWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBzdGF0ZSkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgbmV3SGFuZGxlciwgKCJuZXciKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHJlZ2lzdGVyZWRIYW5kbGVyLCAoInJlZ2lzdGVyZWQiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVkSGFuZGxlciwg
KCJkZWNsaW5lZCIpKTsKKworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIENocm9tZUNs
aWVudDo6Q3VzdG9tSGFuZGxlcnNOZXc6CisgICAgICAgIHJldHVybiBuZXdIYW5kbGVyOworICAg
IGNhc2UgQ2hyb21lQ2xpZW50OjpDdXN0b21IYW5kbGVyc1JlZ2lzdGVyZWQ6CisgICAgICAgIHJl
dHVybiByZWdpc3RlcmVkSGFuZGxlcjsKKyAgICBjYXNlIENocm9tZUNsaWVudDo6Q3VzdG9tSGFu
ZGxlcnNEZWNsaW5lZDoKKyAgICAgICAgcmV0dXJuIGRlY2xpbmVkSGFuZGxlcjsKKyAgICB9CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBOYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyOjppc0NvbnRlbnRIYW5kbGVyUmVn
aXN0ZXJlZChOYXZpZ2F0b3IqIG5hdmlnYXRvciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBkZWNsaW5lZCwgKCJkZWNsaW5lZCIpKTsKKworICAgIGlmICgh
bmF2aWdhdG9yLT5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZGVjbGluZWQ7CisKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBuYXZpZ2F0b3ItPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgU3Ry
aW5nIGJhc2VVUkwgPSBkb2N1bWVudC0+YmFzZVVSTCgpLmJhc2VBc1N0cmluZygpOworCisgICAg
aWYgKCF2ZXJpZnlDdXN0b21IYW5kbGVyVVJMKGJhc2VVUkwsIHVybCwgZWMpKQorICAgICAgICBy
ZXR1cm4gZGVjbGluZWQ7CisKKyAgICBpZiAoIXZlcmlmeUNvbnRlbnRIYW5kbGVyTWltZVR5cGUo
bWltZVR5cGUsIGVjKSkKKyAgICAgICAgcmV0dXJuIGRlY2xpbmVkOworCisgICAgUGFnZSogcGFn
ZSA9IG5hdmlnYXRvci0+ZnJhbWUoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
cmV0dXJuIGRlY2xpbmVkOworCisgICAgcmV0dXJuIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmco
cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5pc0NvbnRlbnRIYW5kbGVyUmVnaXN0ZXJlZChtaW1l
VHlwZSwgYmFzZVVSTCwgdXJsKSk7Cit9CisKK3ZvaWQgTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50
SGFuZGxlcjo6dW5yZWdpc3RlckNvbnRlbnRIYW5kbGVyKE5hdmlnYXRvciogbmF2aWdhdG9yLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFuYXZpZ2F0b3ItPmZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5hdmlnYXRvci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsK
KyAgICBTdHJpbmcgYmFzZVVSTCA9IGRvY3VtZW50LT5iYXNlVVJMKCkuYmFzZUFzU3RyaW5nKCk7
CisKKyAgICBpZiAoIXZlcmlmeUN1c3RvbUhhbmRsZXJVUkwoYmFzZVVSTCwgdXJsLCBlYykpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghdmVyaWZ5Q29udGVudEhhbmRsZXJNaW1lVHlwZSht
aW1lVHlwZSwgZWMpKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gbmF2aWdh
dG9yLT5mcmFtZSgpLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnVucmVnaXN0ZXJDb250ZW50SGFuZGxlciht
aW1lVHlwZSwgYmFzZVVSTCwgdXJsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9DT05URU5UX0hBTkRMRVIpCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVkNWZjOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlci5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisKKyNpZm5kZWYgTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlcl9oCisj
ZGVmaW5lIE5hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXJfaAorCisjaWYgRU5BQkxFKENV
U1RPTV9DT05URU5UX0hBTkRMRVIpCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE5hdmlnYXRvcjsKKwordHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKworY2xhc3MgTmF2
aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlciB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQg
cmVnaXN0ZXJDb250ZW50SGFuZGxlcihOYXZpZ2F0b3IqLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHN0YXRpYyBTdHJpbmcgaXNDb250ZW50SGFuZGxlclJlZ2lzdGVyZWQoTmF2aWdhdG9y
KiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoTmF2aWdhdG9y
KiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNv
ZGUmKTsKKworcHJpdmF0ZToKKyAgICBOYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVyKCk7
CisgICAgfk5hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fQ09OVEVOVF9IQU5ETEVS
KQorCisjZW5kaWYgLy8gTmF2aWdhdG9yUmVnaXN0ZXJDb250ZW50SGFuZGxlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvclJlZ2lzdGVyQ29udGVudEhhbmRsZXIu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5kbGVy
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGJmZDc4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRI
YW5kbGVyLmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1DVVNUT01fQ09OVEVOVF9IQU5ETEVSLAorICAgICAgICBT
dXBwbGVtZW50YWw9TmF2aWdhdG9yCisgICAgXSBOYXZpZ2F0b3JSZWdpc3RlckNvbnRlbnRIYW5k
bGVyIHsKKyAgICAgICAgdm9pZCByZWdpc3RlckNvbnRlbnRIYW5kbGVyKGluIERPTVN0cmluZyBt
aW1lVHlwZSwgaW4gRE9NU3RyaW5nIHVybCwgaW4gRE9NU3RyaW5nIHRpdGxlKQorICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIERPTVN0cmluZyBpc0NvbnRlbnRIYW5k
bGVyUmVnaXN0ZXJlZChpbiBET01TdHJpbmcgbWltZVR5cGUsIGluIERPTVN0cmluZyB1cmwpCisg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCB1bnJlZ2lzdGVy
Q29udGVudEhhbmRsZXIoaW4gRE9NU3RyaW5nIG1pbWVUeXBlLCBpbiBET01TdHJpbmcgdXJsKQor
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA4ZWVhZTA0Li5iZTBhMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTA3ICBEb25nd29vIEltICA8ZHcuaW1A
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRkIEN1c3RvbSBDb250ZW50IEhhbmRsZXIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYW4gaW1w
bGVtZW50YXRpb24gb2YgdGhlIFczQyBzcGVjLCBDdXN0b20gQ29udGVudCBIYW5kbGVyLgorICAg
ICAgICBodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjY3VzdG9tLWhh
bmRsZXJzCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBBZGQgYSBtYWNybyAnRU5BQkxFX0NV
U1RPTV9DT05URU5UX0hBTkRMRVInLgorCiAyMDEyLTA2LTA2ICBNYXJrIFBpbGdyaW0gIDxwaWxn
cmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1vdmUgY3JlYXRlTWVzc2Fn
ZVBvcnRDaGFubmVsIHRvIFBsYXRmb3JtLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQppbmRleCA1ZGJjNDQ5Li44NzM5ZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5n
eXBpCkBAIC00NSw2ICs0NSw3IEBACiAgICAgICAnRU5BQkxFX0NTU19SRUdJT05TPTEnLAogICAg
ICAgJ0VOQUJMRV9DU1NfU0hBREVSUz0xJywKICAgICAgICdFTkFCTEVfQ1NTX1ZBUklBQkxFUz0w
JywKKyAgICAgICdFTkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUj0wJywKICAgICAgICdFTkFC
TEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSPTAnLAogICAgICAgJ0VOQUJMRV9EQVRBTElTVD0xJywK
ICAgICAgICdFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQ9MCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NmU1YTc2OC4uMTVmOWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTA2LTA3ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRkIEN1
c3RvbSBDb250ZW50IEhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFczQyBzcGVjLCBD
dXN0b20gQ29udGVudCBIYW5kbGVyLgorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy9odG1sNS9z
cGVjL092ZXJ2aWV3Lmh0bWwjY3VzdG9tLWhhbmRsZXJzCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkIGEgbWFjcm8gJ0VOQUJMRV9DVVNUT01f
Q09OVEVOVF9IQU5ETEVSJy4KKwogMjAxMi0wNi0wNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXgg
MmVmYjg0Yi4uM2Q4M2UxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQyLDYgKzQyLDcgQEAgRU5B
QkxFX0NTU19GSUxURVJTID0gRU5BQkxFX0NTU19GSUxURVJTOwogRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OID0gOwogRU5BQkxFX0NTU19SRUdJT05TID0gRU5BQkxFX0NTU19SRUdJT05TOwog
RU5BQkxFX0NTU19WQVJJQUJMRVMgPSA7CitFTkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUiA9
IDsKIEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgPSA7CiBFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVDsKQEAgLTEyOSw0ICsxMzAsNCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJMRV9X
T1JLRVJTID0gRU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1G
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVf
Q1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAk
KEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9CT09TVElORykgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1F
X1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dF
UikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9MSU5LX1BSRVJF
TkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01F
RElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAk
KEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NI
QURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0Up
ICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09C
SkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJ
T05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAk
KEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VS
UykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJ
TkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQ
SSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NT
UzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJT
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQo
RU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DVVNU
T01fQ09OVEVOVF9IQU5ETEVSKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9U
UkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9CT09TVElORykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NF
QU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9MSU5LX1BSRVJFTkRF
UikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVO
QUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVP
VEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURP
V19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQo
RU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNf
QklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05T
X09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzdhYzk0ZS4uNmYzYzkwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTA3ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQWRkIEN1c3RvbSBDb250ZW50IEhhbmRsZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYW4gaW1wbGVtZW50
YXRpb24gb2YgdGhlIFczQyBzcGVjLCBDdXN0b20gQ29udGVudCBIYW5kbGVyLgorICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjY3VzdG9tLWhhbmRsZXJz
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRk
IGEgbWFjcm8gJ0VOQUJMRV9DVVNUT01fQ09OVEVOVF9IQU5ETEVSJy4KKwogMjAxMi0wNi0wNiAg
Y2hhbmRyYSBTaGVrYXIgVmFsbGFsYSAgPGNoYW5kcmEudmFsbGFsYUBtb3Rvcm9sYS5jb20+CiAK
ICAgICAgICAgW1dLMi1HdGtdQ29tcGlsYXRpb24gZXJyb3JzIHdpdGggZmxhZyBDT05URVhUX01F
TlVTPTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggMmVmYjg0Yi4uM2Q4M2UxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291
cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQy
LDYgKzQyLDcgQEAgRU5BQkxFX0NTU19GSUxURVJTID0gRU5BQkxFX0NTU19GSUxURVJTOwogRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OID0gOwogRU5BQkxFX0NTU19SRUdJT05TID0gRU5BQkxF
X0NTU19SRUdJT05TOwogRU5BQkxFX0NTU19WQVJJQUJMRVMgPSA7CitFTkFCTEVfQ1VTVE9NX0NP
TlRFTlRfSEFORExFUiA9IDsKIEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIgPSA7CiBFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxf
UExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVDsKQEAgLTEyOSw0ICsxMzAsNCBAQCBFTkFCTEVfV0VCX1RJTUlO
RyA9IDsKIEVOQUJMRV9XT1JLRVJTID0gRU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVO
QUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUzNfRkxF
WEJPWCkgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxF
X0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DVVNUT01fU0NI
RU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElT
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJM
RV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9CT09TVElORykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFC
TEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNT
X1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIp
ICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVF
Q0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5B
QkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVT
KSAkKEVOQUJMRV9DVVNUT01fQ09OVEVOVF9IQU5ETEVSKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1F
X0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9CT09TVElORykgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0Up
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
TUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQo
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gp
ICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
UUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVY
VF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChF
TkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
V2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UK
aW5kZXggYzcxMDc4OC4uNDUxZGNlMSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZl
YXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAt
MjQsNiArMjQsNyBAQCBNQUNSTyAoV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfQ1NTX0lNQUdFX1NFVCAiVG9nZ2xlIENTUyBpbWFnZS1zZXQgc3Vw
cG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DU1NfU0hBREVSUyAi
VG9nZ2xlIENTUyBTaGFkZXJzICh3aXRoaW4gQ1NTIEZpbHRlcnMpIHN1cHBvcnQiIE9GRikKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ1NTX1ZBUklBQkxFUyAiVG9nZ2xlIENTUyBW
YXJpYWJsZXMgc3VwcG9ydCIgT0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9D
VVNUT01fQ09OVEVOVF9IQU5ETEVSICJUb2dnbGUgQ3VzdG9tIENvbnRlbnQgSGFuZGxlciBzdXBw
b3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUiAiVG9nZ2xlIEN1c3RvbSBTY2hlbWUgSGFuZGxlciBzdXBwb3J0IiBPRkYpCiAgICAg
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0RBVEFMSVNUICJUb2dnbGUgSFRNTDUgZGF0YWxp
c3Qgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9EQVRBX1RS
QU5TRkVSX0lURU1TICJUb2dnbGUgSFRNTDUgZGF0YSB0cmFuc2ZlciBpdGVtcyBzdXBwb3J0IiBP
RkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZSBiL1NvdXJjZS9jbWFr
ZWNvbmZpZy5oLmNtYWtlCmluZGV4IGEwZWQzMjEuLjk0ZGJlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCkBA
IC0xNiw2ICsxNiw3IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ1NTM19GTEVYQk9YCiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04KICNjbWFrZWRlZmluZTAxIEVO
QUJMRV9DU1NfSU1BR0VfU0VUCisjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ1VTVE9NX0NPTlRFTlRf
SEFORExFUgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUgogI2Nt
YWtlZGVmaW5lMDEgRU5BQkxFX0RBVEFMSVNUCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFUQV9U
UkFOU0ZFUl9JVEVNUwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGJmOGMwZTIuLjQ3YzFlMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0wNyAgRG9uZ3dv
byBJbSAgPGR3LmltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBDdXN0b20gQ29udGVudCBI
YW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMxNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBXM0Mgc3BlYywgQ3VzdG9tIENvbnRlbnQg
SGFuZGxlci4KKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5o
dG1sI2N1c3RvbS1oYW5kbGVycworCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtOiBBZGQgYSBtYWNybyAnRU5BQkxFX0NVU1RPTV9DT05URU5UX0hBTkRMRVInLgor
CiAyMDEyLTA2LTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE5NjYyLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDIxYTE5ZTYuLjIxYTE1YjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTU1LDYgKzU1LDcgQEAgbXkgKAog
ICAgICRjc3NSZWdpb25zU3VwcG9ydCwKICAgICAkY3NzU2hhZGVyc1N1cHBvcnQsCiAgICAgJGNz
c1ZhcmlhYmxlc1N1cHBvcnQsCisgICAgJGN1c3RvbUNvbnRlbnRIYW5kbGVyU3VwcG9ydCwKICAg
ICAkY3VzdG9tU2NoZW1lSGFuZGxlclN1cHBvcnQsCiAgICAgJGRhdGFUcmFuc2Zlckl0ZW1zU3Vw
cG9ydCwKICAgICAkZGF0YWxpc3RTdXBwb3J0LApAQCAtMTY4LDYgKzE2OSw5IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAiY3NzLXZhcmlhYmxlcyIsIGRlc2MgPT4gIlRvZ2ds
ZSBDU1MgVmFyaWFibGUgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfVkFS
SUFCTEVTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGNzc1ZhcmlhYmxlc1N1cHBvcnQgfSwK
IAorICAgIHsgb3B0aW9uID0+ICJjdXN0b20tY29udGVudC1oYW5kbGVyIiwgZGVzYyA9PiAiVG9n
Z2xlIEN1c3RvbSBDb250ZW50IEhhbmRsZXIgc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9DVVNUT01fQ09OVEVOVF9IQU5ETEVSIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGN1
c3RvbUNvbnRlbnRIYW5kbGVyU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gImN1c3RvbS1z
Y2hlbWUtaGFuZGxlciIsIGRlc2MgPT4gIlRvZ2dsZSBDdXN0b20gU2NoZW1lIEhhbmRsZXIgc3Vw
cG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIiLCBk
ZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkY3VzdG9tU2NoZW1lSGFuZGxlclN1cHBvcnQgfSwKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9D
aGFuZ2VMb2cKaW5kZXggOWYyYTA0Zi4uMGQ0MTc2MiAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFy
aWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDYtMDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBBZGQgQ3VzdG9tIENvbnRlbnQgSGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
VzNDIHNwZWMsIEN1c3RvbSBDb250ZW50IEhhbmRsZXIuCisgICAgICAgIGh0dHA6Ly9kZXYudzMu
b3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCNjdXN0b20taGFuZGxlcnMKKworICAgICAgICAq
IHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6IEFkZCBhIG1hY3JvICdF
TkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUicuCisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJv
cHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOiBBZGQgYSBtYWNybyAnRU5BQkxFX0NVU1RP
TV9DT05URU5UX0hBTkRMRVInLgorCiAyMDEyLTA2LTA1ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ft
c3VuZy5jb20+CiAKICAgICAgICAgQWRkICdpc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQnIGFu
ZCAndW5yZWdpc3RlclByb3RvY29sSGFuZGxlcicuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJp
ZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcyBiL1dlYktpdExpYnJh
cmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCmluZGV4IDhkMDk4
OTMuLjdhOGQxNjUgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9w
cy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCisrKyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRv
b2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9
IiQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyk7JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NT
M19GTEVYQk9YKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VU
KTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NT
U19FWENMVVNJT05TKTskKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX1NR
TF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJM
RV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0ZJTFRFUlMp
OyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GT05UX0JPT1NUSU5HKTskKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQo
RU5BQkxFX0hJR0hfRFBJX0NBTlZBUyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBV
VF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX0NT
U19WRU5ET1JfUFJFRklYRVMpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJM
RV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1M
KTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7JChFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJM
RV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQo
RU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVFlM
RV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTsk
KEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0Up
OyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJM
RV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YU0xUKSIKKwkJUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyk7JChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORyk7JChFTkFCTEVfQ1NTM19GTEVYQk9YKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFC
TEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX1JF
R0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9DVVNUT01fQ09OVEVOVF9I
QU5ETEVSKTskKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpOyQoRU5BQkxFX1NRTF9EQVRB
QkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5B
QkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GT05UX0JPT1NUSU5HKTskKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0hJR0hfRFBJX0NBTlZBUyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVF
Q0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VF
Syk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVO
QUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7JChFTkFCTEVfTVVUQVRJT05fT0JT
RVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9SRUdJ
U1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxF
X1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVFlMRV9TQ09Q
RUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJM
RV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJf
VElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNlck1h
Y3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9SRU5ERVJJTkciCkBAIC02Miw2ICs2MiwxMSBAQAogCQlQ
ZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJF
TkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUiIKKwkJVmFsdWU9IiIKKwkJUGVyZm9ybUVudmly
b25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX0NVU1RP
TV9TQ0hFTUVfSEFORExFUiIKIAkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0
cnVlIgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9w
cy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKaW5kZXggZWUxMmRhMC4uMzg2OGZmZCAxMDA2
NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVz
Q2Fpcm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5B
QkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTsk
KEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7
JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpOyQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7
JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJ
U1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFC
TEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZPTlRfQk9PU1RJTkcp
OyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9M
T0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSk7JChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpOyQo
RU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX0xJTktfUFJFUkVOREVSKTskKEVOQUJMRV9N
QVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9N
VVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQo
RU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVD
SCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxF
X1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElO
R1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NP
VVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQo
RU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hTTFQpIgorCQlQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9S
RU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFC
TEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCk7JChFTkFCTEVfQ1NTX1NI
QURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChF
TkFCTEVfQ1VTVE9NX0NPTlRFTlRfSEFORExFUik7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9E
QVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTsk
KEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRk9OVF9CT09T
VElORyk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxF
X0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTsk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9O
Uyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQoRU5B
QkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5B
QkxFX01VVEFUSU9OX09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVf
UEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9U
QSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0NSSVBURURf
U1BFRUNIKTskKEVOQUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChF
TkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19C
SU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVE
SUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VU
Uyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWFNMVCki
CiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfM0RfUkVOREVSSU5HIgpAQCAtNjIs
NiArNjIsMTEgQEAKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2Vy
TWFjcm8KKwkJTmFtZT0iRU5BQkxFX0NVU1RPTV9DT05URU5UX0hBTkRMRVIiCisJCVZhbHVlPSIi
CisJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKKwkvPgorICA8VXNlck1hY3JvCiAJCU5h
bWU9IkVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIiCiAJCVZhbHVlPSIiCiAJCVBlcmZvcm1F
bnZpcm9ubWVudFNldD0idHJ1ZSIK
</data>

          </attachment>
      

    </bug>

</bugzilla>