<?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>221917</bug_id>
          
          <creation_ts>2021-02-15 13:12:06 -0800</creation_ts>
          <short_desc>[macOS] Introduce a new context menu item to preview images</short_desc>
          <delta_ts>2021-02-17 07:49:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>221869</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1729316</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-15 13:12:06 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729344</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-15 13:38:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/74363578&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729451</commentid>
    <comment_count>2</comment_count>
      <attachid>420392</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-15 16:30:51 -0800</bug_when>
    <thetext>Created attachment 420392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729483</commentid>
    <comment_count>3</comment_count>
      <attachid>420392</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-15 17:30:01 -0800</bug_when>
    <thetext>Comment on attachment 420392
Patch

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

&gt; Source/WebCore/page/ContextMenuController.cpp:525
&gt; +#endif // ENABLE(IMAGE_EXTRACTION)

These comments on #endif don’t seem too helpful when the code is &lt;10 lines long.

&gt; Source/WebCore/page/ContextMenuController.cpp:869
&gt; +                ContextMenuItem RevealImageItem(ActionType, ContextMenuItemTagRevealImage, contextMenuItemTagRevealImage());

Why is this not at the top of the function with the other ContextMenuItem objects?

&gt; Source/WebCore/platform/ContextMenuItem.h:152
&gt; +#if ENABLE(IMAGE_EXTRACTION)

Very concerned about #if in the definition of this enum since I think we recently learned that binary compatibility with some clients (at least Mail) relies on this enumeration matching the one in WKContextMenuItemTypes.h. I think we need to do something to make this less fragile/dangerous. Maybe we can start by not making new enumeration values conditional?

&gt; Source/WebKit/Configurations/WebKit.xcconfig:118
&gt; +WK_UNIFORM_TYPE_IDENTIFIERS_LDFLAGS_MACOS_SINCE_1200 = -framework UniformTypeIdentifiers;

Does this have a launch time or web process startup time cost?

&gt; Source/WebKit/Configurations/WebKit.xcconfig:135
&gt; +WK_QUARTZ_LDFLAGS_MACOS_SINCE_1200 = -framework Quartz;

Same question?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729546</commentid>
    <comment_count>4</comment_count>
      <attachid>420392</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-15 20:28:29 -0800</bug_when>
    <thetext>Comment on attachment 420392
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/page/ContextMenuController.cpp:525
&gt;&gt; +#endif // ENABLE(IMAGE_EXTRACTION)
&gt; 
&gt; These comments on #endif don’t seem too helpful when the code is &lt;10 lines long.

Fair point — removed all the #endifs on short code snippets like this, in this patch.

&gt;&gt; Source/WebCore/page/ContextMenuController.cpp:869
&gt;&gt; +                ContextMenuItem RevealImageItem(ActionType, ContextMenuItemTagRevealImage, contextMenuItemTagRevealImage());
&gt; 
&gt; Why is this not at the top of the function with the other ContextMenuItem objects?

No reason! Moved to the top, to match the other items.

&gt;&gt; Source/WebCore/platform/ContextMenuItem.h:152
&gt;&gt; +#if ENABLE(IMAGE_EXTRACTION)
&gt; 
&gt; Very concerned about #if in the definition of this enum since I think we recently learned that binary compatibility with some clients (at least Mail) relies on this enumeration matching the one in WKContextMenuItemTypes.h. I think we need to do something to make this less fragile/dangerous. Maybe we can start by not making new enumeration values conditional?

Hm…if I understand correctly, I think it&apos;s probably okay for an enum type like this that&apos;s internal to the WebKit stack, but dangerous to shift enum values that are exposed via SPI (which may lead to bincompat bugs like https://bugs.webkit.org/show_bug.cgi?id=220745). I can see some value in making these enum values match up with the SPI-exposed ones though, so I&apos;ll remove the `ENABLE(IMAGE_EXTRACTION)` guard here.

&gt;&gt; Source/WebKit/Configurations/WebKit.xcconfig:118
&gt;&gt; +WK_UNIFORM_TYPE_IDENTIFIERS_LDFLAGS_MACOS_SINCE_1200 = -framework UniformTypeIdentifiers;
&gt; 
&gt; Does this have a launch time or web process startup time cost?

Using a simple test app, it looks like linking WebKit (indirectly) pulls in the UniformTypeIdentifiers framework on all the WebKit child processes and the UI process in shipping WebKit anyways, so I think this should not have any impact on launch time/startup cost.

&gt;&gt; Source/WebKit/Configurations/WebKit.xcconfig:135
&gt;&gt; +WK_QUARTZ_LDFLAGS_MACOS_SINCE_1200 = -framework Quartz;
&gt; 
&gt; Same question?

Using the (same) simple test app, it looks like the web process and UI process both indirectly pull in Quartz.framework on shipping WebKit — however, the networking process currently doesn&apos;t pull in Quartz, so this linking could potentially regress the startup type in the networking process.

I&apos;ll change this so that we softlink Quartz instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729550</commentid>
    <comment_count>5</comment_count>
      <attachid>420422</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-15 21:19:46 -0800</bug_when>
    <thetext>Created attachment 420422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729551</commentid>
    <comment_count>6</comment_count>
      <attachid>420423</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-15 22:35:15 -0800</bug_when>
    <thetext>Created attachment 420423
Rebaseline test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729707</commentid>
    <comment_count>7</comment_count>
      <attachid>420392</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-16 09:23:35 -0800</bug_when>
    <thetext>Comment on attachment 420392
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/ContextMenuItem.h:152
&gt;&gt;&gt; +#if ENABLE(IMAGE_EXTRACTION)
&gt;&gt; 
&gt;&gt; Very concerned about #if in the definition of this enum since I think we recently learned that binary compatibility with some clients (at least Mail) relies on this enumeration matching the one in WKContextMenuItemTypes.h. I think we need to do something to make this less fragile/dangerous. Maybe we can start by not making new enumeration values conditional?
&gt; 
&gt; Hm…if I understand correctly, I think it&apos;s probably okay for an enum type like this that&apos;s internal to the WebKit stack, but dangerous to shift enum values that are exposed via SPI (which may lead to bincompat bugs like https://bugs.webkit.org/show_bug.cgi?id=220745). I can see some value in making these enum values match up with the SPI-exposed ones though, so I&apos;ll remove the `ENABLE(IMAGE_EXTRACTION)` guard here.

I believe the issue was that these values, intended to be internal only, are indirectly exposed by using them as tags on NSMenuItem objects, so people relied on them matching the actual API or SPI values.

&gt;&gt;&gt; Source/WebKit/Configurations/WebKit.xcconfig:135
&gt;&gt;&gt; +WK_QUARTZ_LDFLAGS_MACOS_SINCE_1200 = -framework Quartz;
&gt;&gt; 
&gt;&gt; Same question?
&gt; 
&gt; Using the (same) simple test app, it looks like the web process and UI process both indirectly pull in Quartz.framework on shipping WebKit — however, the networking process currently doesn&apos;t pull in Quartz, so this linking could potentially regress the startup type in the networking process.
&gt; 
&gt; I&apos;ll change this so that we softlink Quartz instead.

I believe that in the past people told me this was not an issue for frameworks &quot;in the shared cache&quot; but not 100% sure about that. Hope you didn’t spend too much effort on soft linking based on a shared misunderstanding you and I might have had.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729729</commentid>
    <comment_count>8</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-16 09:40:18 -0800</bug_when>
    <thetext>&gt; &gt; 
&gt; &gt; Using the (same) simple test app, it looks like the web process and UI process both indirectly pull in Quartz.framework on shipping WebKit — however, the networking process currently doesn&apos;t pull in Quartz, so this linking could potentially regress the startup type in the networking process.
&gt; &gt; 
&gt; &gt; I&apos;ll change this so that we softlink Quartz instead.
&gt; 
&gt; I believe that in the past people told me this was not an issue for
&gt; frameworks &quot;in the shared cache&quot; but not 100% sure about that. Hope you
&gt; didn’t spend too much effort on soft linking based on a shared
&gt; misunderstanding you and I might have had.

Ah, so it does look like Quartz.framework is in the DYLD shared cache on macOS — at least, according to `dyld_shared_cache_util -list | grep &quot;Quartz.framework&quot;`.

That said, soft-linking QuickLookUI (in Quartz) might still not be a bad idea, given that it makes little sense for, say, the WebKit networking process to pull in Quartz (or any of its subframeworks).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729804</commentid>
    <comment_count>9</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-16 11:01:33 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #8)
&gt; &gt; &gt; 
&gt; &gt; &gt; Using the (same) simple test app, it looks like the web process and UI process both indirectly pull in Quartz.framework on shipping WebKit — however, the networking process currently doesn&apos;t pull in Quartz, so this linking could potentially regress the startup type in the networking process.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;ll change this so that we softlink Quartz instead.
&gt; &gt; 
&gt; &gt; I believe that in the past people told me this was not an issue for
&gt; &gt; frameworks &quot;in the shared cache&quot; but not 100% sure about that. Hope you
&gt; &gt; didn’t spend too much effort on soft linking based on a shared
&gt; &gt; misunderstanding you and I might have had.
&gt; 
&gt; Ah, so it does look like Quartz.framework is in the DYLD shared cache on
&gt; macOS — at least, according to `dyld_shared_cache_util -list | grep
&gt; &quot;Quartz.framework&quot;`.
&gt; 
&gt; That said, soft-linking QuickLookUI (in Quartz) might still not be a bad
&gt; idea, given that it makes little sense for, say, the WebKit networking
&gt; process to pull in Quartz (or any of its subframeworks).

...Tim Horton just reminded me that QuickLookUI doesn&apos;t exist in the base system on macOS, so we&apos;ll need to softlink in any case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730088</commentid>
    <comment_count>10</comment_count>
      <attachid>420423</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-02-16 19:29:19 -0800</bug_when>
    <thetext>Comment on attachment 420423
Rebaseline test

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

&gt; Source/WebKit/ChangeLog:15
&gt; +        Link against Quartz and UniformTypeIdentifiers.

LIES

&gt; Source/WebKit/ChangeLog:29
&gt; +        Add a non-const version of `webHitTestResultData()`, so that we can generate a `CGImage` using
&gt; +        `WebHitTestResultData`&apos;s bitmap data.

So confused why this needs non-const hit test result data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730106</commentid>
    <comment_count>11</comment_count>
      <attachid>420423</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-16 20:04:40 -0800</bug_when>
    <thetext>Comment on attachment 420423
Rebaseline test

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

Thanks for the review!

&gt;&gt; Source/WebKit/ChangeLog:15
&gt;&gt; +        Link against Quartz and UniformTypeIdentifiers.
&gt; 
&gt; LIES

Whoops, fixed!

&gt;&gt; Source/WebKit/ChangeLog:29
&gt;&gt; +        `WebHitTestResultData`&apos;s bitmap data.
&gt; 
&gt; So confused why this needs non-const hit test result data

This is because ShareableBitmap::makeCGImageCopy() is non-const, due to the context object passed into `CGBitmapContextCreateWithData` being a non-const pointer :/

We use the handler to release (and possible destroy) the bitmap, so perhaps the non-const is warranted? But it&apos;s also weird that a method that just copies an image is non-const — I think I&apos;ll look into this in a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730152</commentid>
    <comment_count>12</comment_count>
      <attachid>420599</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-16 22:47:45 -0800</bug_when>
    <thetext>Created attachment 420599
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730175</commentid>
    <comment_count>13</comment_count>
      <attachid>420606</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-17 00:00:53 -0800</bug_when>
    <thetext>Created attachment 420606
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730272</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-17 07:49:54 -0800</bug_when>
    <thetext>Committed r272997: &lt;https://commits.webkit.org/r272997&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420606.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420392</attachid>
            <date>2021-02-15 16:30:51 -0800</date>
            <delta_ts>2021-02-15 21:19:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221917-20210215163050.patch</filename>
            <type>text/plain</type>
            <size>32932</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwNWExMGQ5N2Q5MTVk
YmM4ODkwZDdhNjE0YTNkMWUwMjE4NzYwOS4uYjgxM2NmMDg1YjAwMGM5ZGY1M2EzNmMxZDc2ZjE1
YTBlN2Q3ZGM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW50
cm9kdWNlIGEgbmV3IGNvbnRleHQgbWVudSBpdGVtIHRvIHByZXZpZXcgaW1hZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5MTcKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc0MzYzNTc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgYSBuZXcgY29udGV4dCBtZW51IHRh
ZywgYENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCwgd2hpY2ggd2lsbCBiZSB1c2VkIHRv
IGludm9rZSBhIHNwZWNpYWwKKyAgICAgICAgdHlwZSBvZiBRdWlja0xvb2sgcHJldmlldyBmb3Ig
ZXh0cmFjdGVkIGltYWdlcyB3aGVuIHRoZSByZWxldmFudCBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVz
IGFyZSBlbmFibGVkLgorCisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBv
cHVsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tP
ckVuYWJsZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZENvbnRleHRNZW51QWN0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3Ry
aW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2UpOgorCiAyMDIxLTAyLTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFttYWNPU10gQ29ubmVjdCBUb3VjaCBCYXIgdG8gTWVkaWFTZXNzaW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDA2YTlmOTQyYWVlZmYzZmZjM2Y0NmNlZTA2MDk1OTU2Y2FmZTFlNWUuLmZi
ZTBiZGQwODU2ZWY2MzZkNjc5MGUwMDgyNDQ5MzE2ZGQ1OWRlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTAgQEAKKzIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0g
dG8gcHJldmlldyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHBsdW1iaW5n
IHRvIHN1cHBvcnQgdGhlIGBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZWAgYWN0aW9uLCBh
cyB3ZWxsIGFzIHNvbWUgV2ViS2l0QWRkaXRpb25zIGV4dGVuc2lvbgorICAgICAgICBwb2ludHMu
IFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLiBUaGlzIHBhdGNoIHdhcyBtb3N0bHkgd3JpdHRl
biBieSBEZXZpbiBSb3Vzc28sIHdpdGggc29tZSBhZGp1c3RtZW50cyBmcm9tCisgICAgICAgIG1l
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorCisgICAgICAg
IExpbmsgYWdhaW5zdCBRdWFydHogYW5kIFVuaWZvcm1UeXBlSWRlbnRpZmllcnMuCisKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oOgorICAgICAgICAqIFNo
YXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgor
ICAgICAgICAoV2ViS2l0Ojp0b0ltcGwpOgorCisgICAgICAgIEFkZCBga1dLQ29udGV4dE1lbnVJ
dGVtVGFnUmV2ZWFsSW1hZ2VgLCBhbmQgYWRkIGhlbHBlcnMgdG8gY29udmVydCBmcm9tIGBXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZWAKKyAgICAgICAgdG8gYGtXS0NvbnRl
eHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCBhbmQgdmljZSB2ZXJzYS4KKworICAgICAgICAqIFNo
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRN
ZW51Q29udGV4dERhdGE6OndlYkhpdFRlc3RSZXN1bHREYXRhKToKKworICAgICAgICBBZGQgYSBu
b24tY29uc3QgdmVyc2lvbiBvZiBgd2ViSGl0VGVzdFJlc3VsdERhdGEoKWAsIHNvIHRoYXQgd2Ug
Y2FuIGdlbmVyYXRlIGEgYENHSW1hZ2VgIHVzaW5nCisgICAgICAgIGBXZWJIaXRUZXN0UmVzdWx0
RGF0YWAncyBiaXRtYXAgZGF0YS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tN
ZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRWxlbWVudEFjdGlvbi5tbToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBfZWxl
bWVudEFjdGlvbldpdGhUeXBlOmN1c3RvbVRpdGxlOmFzc2lzdGFudDpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSk6CisKKyAgICAgICAgQWRk
IGEgaGVscGVyIG1ldGhvZCwgYGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1hZ2VgLCB0byBoYW5k
bGUgdGhlIG5ldyBjb250ZXh0IG1lbnUgYWN0aW9uOyBhZGRpdGlvbmFsbHksCisgICAgICAgIGlu
dHJvZHVjZSBhbm90aGVyIGhlbHBlciBtZXRob2QsIGByZXZlYWxFeHRyYWN0ZWRJbWFnZUluUHJl
dmlld1BhbmVsYCwgdG8gaGFuZGxlIHRoZSBNYWMtc3BlY2lmaWMKKyAgICAgICAgYFFMUHJldmll
d1BhbmVsYCBsb2dpYyB3aGVuIGludm9raW5nIHRoZSBuZXcgaXRlbS4gU2VlIFdlYktpdEFkZGl0
aW9ucyBjaGFuZ2VzIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorCiAyMDIxLTAyLTE1ICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ29ubmVjdCBUb3Vj
aCBCYXIgdG8gTWVkaWFTZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzdk
YzFmODk5ZWM2MDgyYjhjOGFkNDJkNDlhNjE1OTk3ODQ4MzZmMS4uNjE5Njk1Nzk3ZmUxNmNmY2M0
NTliYzUzMzQ0Y2Y5YzI0Yjk4ZmM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTAyLTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW50cm9kdWNlIGEgbmV3IGNvbnRleHQgbWVudSBp
dGVtIHRvIHByZXZpZXcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjE5MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzYzNTc4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExlZ2FjeSBX
ZWJLaXQgd29uJ3QgYmUgc3VwcG9ydGluZyB0aGlzIG5ldyBjb250ZXh0IG1lbnUgYWN0aW9uOyBz
ZWUgb3RoZXIgQ2hhbmdlTG9nIGVudHJpZXMgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICh0b1RhZyk6CisKIDIwMjEtMDItMTIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2UgZXhwbGlj
aXQgdXNhZ2Ugb2YgW29iakMgcmVsZWFzZV0gaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggNGFlZDcxZTdlZDFlMDQ2MzVlZDE3
YTU2MTlkNWQ4ZTcxMGU4MDQyNS4uYmVmOGUyYTNmNjAwMGE3YTViY2Q5YzdmMWJiMTE3ZWMzNTU3
N2U5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cApAQCAtNTE3LDYgKzUxNywxMiBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnRGljdGF0aW9uQWx0ZXJuYXRpdmU6CiAgICAgICAgIGZyYW1lLT5l
ZGl0b3IoKS5hcHBseURpY3RhdGlvbkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAgICAgYnJlYWs7
CisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZToKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgaGFuZGxlZCBhdCB0aGUg
Y2xpZW50IGxheWVyLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJl
YWs7CisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtODU2LDggKzg2MiwxNCBAQCB2b2lkIENvbnRleHRNZW51
Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogCiAgICAgICAgICAgICBhcHBlbmRJdGVtKE9wZW5JbWFn
ZUluTmV3V2luZG93SXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgICAgICBhcHBl
bmRJdGVtKERvd25sb2FkSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKLSAgICAgICAg
ICAgIGlmIChpbWFnZVVSTC5pc0xvY2FsRmlsZSgpIHx8IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0
KCkuaW1hZ2UoKSkKKyAgICAgICAgICAgIGlmIChpbWFnZVVSTC5pc0xvY2FsRmlsZSgpIHx8IG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkuaW1hZ2UoKSkgewogICAgICAgICAgICAgICAgIGFwcGVu
ZEl0ZW0oQ29weUltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisKKyNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKKyAgICAgICAgICAgICAgICBDb250ZXh0TWVudUl0ZW0gUmV2ZWFs
SW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlLCBjb250
ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KFJldmVhbEltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisjZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0oR1RLKQogICAg
ICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VVcmxJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKICNlbmRpZgpAQCAtMTQ1MCw2ICsxNDYyLDEwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAog
ICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRp
YUhhc0F1ZGlvKCk7CiAgICAgICAgICAgICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAg
bV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVh
azsKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8vIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQogICAgIH0KIAogICAgIGl0ZW0uc2V0Q2hlY2tlZChzaG91bGRD
aGVjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAppbmRl
eCBhY2I3Zjc1MmJlMWU1NTQ3MzcxMWU0MjhkOGIzZGY2ZDZjZDFmYWU4Li4wZTliNzYyYjNjNTBl
NmFhNTk3NDEzZmRiYTMwZmFmMmI0NGNmNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTI0Niw2ICsyNDYsOSBAQCBib29sIGlzVmFsaWRDb250
ZXh0TWVudUFjdGlvbihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0
TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9GdWxsc2NyZWVuOgogICAg
IGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAg
ICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Vu
aGFuY2VkRnVsbHNjcmVlbjoKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICBjYXNl
IENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyNlbmRp
ZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9u
OjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rp
b246OkNvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFj
dGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCAyNWU0MzFlZTNmNDJlMzJhMmFmNWFkZDEw
NjAyYTZkMTMwYTUwOTIxLi4wZDIwZmUxNTllMWVhNThlNTEyZTVmOWM3ODQ2YjIwZDJmNDlkY2Ex
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTQ5LDYg
KzE0OSw5IEBAIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRh
Z0FkZEhpZ2hsaWdodFRvQ3VycmVudEdyb3VwLAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhp
Z2hsaWdodFRvTmV3R3JvdXAsCiAjZW5kaWYKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
KyAgICBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSwKKyNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKICAgICBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnID0gNTAwMCwK
ICAgICBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnID0gNTk5OSwKICAgICBDb250ZXh0TWVu
dUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgPSAxMDAwMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IDg0NTFmNTE3MDEzZjUyM2UxYTI4ZDBiY2IwN2U2ODVk
MjgyNjE0YWMuLjQwZDg0NTY5YjBhZTU2MjVmZGVjZTA4ZWFlZGRiODg0MGQ0YzEzMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTM1MCw2ICszNTAs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZW5l
cmljVG91Y2hJRFByb21wdFRpdGxlKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSZXZl
YWxJbWFnZSgpOworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorCiAjaWYgVVNF
KEdMSUIpICYmIGRlZmluZWQoR0VUVEVYVF9QQUNLQUdFKQogI2RlZmluZSBXRUJfVUlfU1RSSU5H
KHN0cmluZywgZGVzY3JpcHRpb24pIFdlYkNvcmU6OmxvY2FsaXplZFN0cmluZyhfKHN0cmluZykp
CiAjZGVmaW5lIFdFQl9VSV9TVFJJTkdfS0VZKHN0cmluZywga2V5LCBkZXNjcmlwdGlvbikgV2Vi
Q29yZTo6bG9jYWxpemVkU3RyaW5nKENfKGtleSwgc3RyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQppbmRleCBj
YmMxMDIyYjIyYWY2YTgxNTU2MzY1M2EzOTA0YWYyNjFmOGZkM2RmLi4yNTM2YjlmNjRiNzcwMzll
NTUzMDAwMjQ5ZTcxM2JjMzQ2MGM3NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCkBAIC0zMDYsNCArMzA2LDEx
IEBAIFN0cmluZyBleGl0RnVsbFNjcmVlbkJ1dHRvbkFjY2Vzc2liaWxpdHlUaXRsZSgpCiB9CiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UoKQoreworICAgIHJldHVybiBsb2Nh
bGl6ZWROU1N0cmluZyhAIlJldmVhbCBJbWFnZSIpOworfQorI2VuZGlmIC8vIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDQyYjVkODk5ZWIwYWQ5Y2QwNTg3
NjM4ODhjMDcyODA0OWU1MjkyMzkuLjRlNmI4N2I4OGQyZDg3ZTcyZmFhMjMwODhhNzViZTQyYjE2
MzJjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0Lnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
CkBAIC0xMTQsNiArMTE0LDggQEAgV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Nf
aXBob25lb3MgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREYKIFdLX1VOSUZPUk1f
VFlQRV9JREVOVElGSUVSU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdLX0lPU18xNCkpOwogV0tfVU5JRk9STV9UWVBFX0lE
RU5USUZJRVJTX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElG
SUVSU19MREZMQUdTJChXS19JT1NfMTQpKTsKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19M
REZMQUdTX0lPU19TSU5DRV8xNCA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsK
K1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX21hY29zeCA9ICQoV0tfVU5JRk9S
TV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKK1dLX1VOSUZPUk1f
VFlQRV9JREVOVElGSUVSU19MREZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIFVu
aWZvcm1UeXBlSWRlbnRpZmllcnM7CiAKIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdL
X1VSTF9GT1JNQVRUSU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HKSk7CiBXS19V
UkxfRk9STUFUVElOR19MREZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKQEAg
LTEyOCw2ICsxMzAsMTAgQEAgV0tfQVVUSEtJVF9MREZMQUdTX0lPU19TSU5DRV8xMyA9IC1mcmFt
ZXdvcmsgQXV0aEtpdDsKIFdLX0FVVEhLSVRfTERGTEFHU19tYWNvc3ggPSAkKFdLX0FVVEhLSVRf
TERGTEFHUyQoV0tfTUFDT1NfMTAxNSkpOwogV0tfQVVUSEtJVF9MREZMQUdTX01BQ09TX1NJTkNF
XzEwMTUgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiAKK1dLX1FVQVJUWl9MREZMQUdTID0gJChXS19R
VUFSVFpfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX1FVQVJUWl9MREZMQUdTX21h
Y29zeCA9ICQoV0tfUVVBUlRaX0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKK1dLX1FVQVJUWl9M
REZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIFF1YXJ0ejsKKwogV0tfTElCTkVU
V09SS0VYVEVOU0lPTl9MREZMQUdTID0gJChXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1Nf
JChXS19QTEFURk9STV9OQU1FKSk7CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfaXBo
b25lb3MgPSAtbG5ldHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxB
R1NfaXBob25lc2ltdWxhdG9yID0gLWxuZXR3b3JrZXh0ZW5zaW9uOwpAQCAtMTM3LDcgKzE0Myw3
IEBAIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNjYXRhbHlzdCA9IC1sbmV0d29y
a2V4dGVuc2lvbjsKIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNvc3ggPSAtd2Vh
a19saWJyYXJ5IC91c3IvbGliL2xpYm5ldHdvcmtleHRlbnNpb24uZHlsaWI7CiBXS19MSUJORVRX
T1JLRVhURU5TSU9OX0xERkxBR1NfdHZvcyA9IDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xE
RkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8g
LWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2Fj
eSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxB
R1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdT
KSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQo
V0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFH
UykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZM
QUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQo
V0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdT
KSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxB
R1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZM
QUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsg
Q0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24g
LWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZv
dW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJ
T1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJ
TElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNF
U19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhL
SVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAk
KFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykg
JChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05f
TERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1Mp
ICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9M
REZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1FVQVJUWl9MREZMQUdTKSAkKFdLX1NB
RkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChX
S19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTKSAk
KFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7
CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBv
cGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJv
bSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZM
QUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVds
LF9fWm53bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2
TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMkVPUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRU9T
NF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2Vi
Q29yZTEyUG9saWN5QWN0aW9uRUVFYVNFRG4gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
TktTdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWNsRVMyXyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQ
b2xpY3lBY3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRVJLUzRfIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBv
bGljeUFjdGlvbkVFRUMyRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQxRXYgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0
aW9uRUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3Ry
YWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJlYW1JY1MyX0VFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzE0YmFzaWNfaW9z
dHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFz
aWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUx
Nl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlh
bGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTVi
YXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVh
bUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJf
dHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRl
bVR5cGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5
cGVzLmgKaW5kZXggNDBjNTliMGFhZjhjODg2ZTk4YmRhMTA4MWRkNmY0ZjY3MzY1MGYxNy4uYzFl
OTMzZWI1NjVmN2Q0MDNmNjgxMzM1ZjdkMzRiMWZiMGM4ZGY0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaApAQCAtMTI1LDYg
KzEyNSw3IEBAIGVudW0gewogICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5o
YW5jZWRGdWxsc2NyZWVuLAogICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRv
Q3VycmVudEdyb3VwLAogICAgIGtXS0NvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3
R3JvdXAsCisgICAga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UsCiAgICAga1dLQ29u
dGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnID0gMTAwMDAKIH07CiB0eXBlZGVmIHVpbnQz
Ml90IFdLQ29udGV4dE1lbnVJdGVtVGFnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaAppbmRleCA4NGMwYzJjODNiOWYzOTdhYTk1OGE1OGJlMTJlYmQzYjZi
Mzk1MTRmLi5jYjI4NzUyYzZjMjA1ZmUyOWQ3ZTVkM2RkMmU2OWM0ZjIzYjFhYmI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtNTQ1LDYgKzU0
NSwxMCBAQCBpbmxpbmUgV0tDb250ZXh0TWVudUl0ZW1UYWcgdG9BUEkoV2ViQ29yZTo6Q29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uKQogI2VuZGlmCiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW1UYWdTaGFyZU1lbnU6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1UYWdT
aGFyZU1lbnU7CisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgY2FzZSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgcmV0dXJuIGtXS0NvbnRl
eHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChhY3Rpb24gPCBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgJiYgIShhY3Rpb24gPj0gV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAmJiBhY3Rpb24gPD0gV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtTGFzdEN1c3RvbVRhZykpCiAgICAgICAgICAgICBMT0dfRVJST1IoIkNvbnRleHRNZW51QWN0
aW9uICVpIGlzIGFuIHVua25vd24gdGFnIGJ1dCBpcyBiZWxvdyB0aGUgYWxsb3dhYmxlIGN1c3Rv
bSB0YWcgdmFsdWUgb2YgJWkiLCBhY3Rpb24sIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VB
cHBsaWNhdGlvblRhZyk7CkBAIC03NDUsNiArNzQ5LDEwIEBAIGlubGluZSBXZWJDb3JlOjpDb250
ZXh0TWVudUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcgdGFnKQogICAgIGNhc2Ug
a1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2VuZGlmCisjaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOworI2Vu
ZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmtJblRoaXNXaW5kb3c6CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKHRh
ZyA8IGtXS0NvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyAmJiAhKHRhZyA+PSBXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICYmIHRhZyA8PSBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRl
eHRNZW51Q29udGV4dERhdGEuaAppbmRleCBhMzRhNWVhNDFlYjFjZTk5ZmI0NWE5NDIxMGQ1ZjU0
MGZmOTlhNGQ4Li5mN2QwZmUxZGVkN2EyMDE4N2E5MDdkYWQ5YWMwZTYyYzg2Mzg2MzBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCkBAIC01OCw2
ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tZW51TG9jYXRpb247IH0KICAgICBjb25zdCBWZWN0b3I8
V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zKCkgY29uc3QgeyByZXR1
cm4gbV9tZW51SXRlbXM7IH0KIAorICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhJiB3ZWJIaXRUZXN0
UmVzdWx0RGF0YSgpIHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJlc3VsdERhdGE7IH0KICAgICBjb25z
dCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJlc3VsdERhdGEoKSBjb25zdCB7IHJl
dHVybiBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGVkVGV4dDsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVy
cy5tbQppbmRleCAyNjQyMzc5Y2FkZWY3Y2M5ZTYzZmMwOTU1YmEwMWUzMDEwMGY3ZGVlLi5jMmE5
NGMzY2M0OTAwMjMzNzU4ZTA1ZDQ1YTljYWQzZjY5YjRiNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnMu
bW0KQEAgLTQ3LDYgKzQ3LDcgQEAgTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJPcGVuTGlua0luTmV3V2luZG93ID0gQCJXS01lbnVJdGVtSWRlbnRpZmkKIE5TU3RyaW5nICog
Y29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3cgPSBAIldLTWVu
dUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3ciOwogTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSI7
CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCA9IEAiV0tNZW51
SXRlbUlkZW50aWZpZXJSZWxvYWQiOworTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJSZXZlYWxJbWFnZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJSZXZlYWxJbWFnZSI7CiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNlYXJjaFdlYiA9IEAiV0tNZW51
SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJTaG93SGlkZU1lZGlhQ29udHJvbHMgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyU2hv
d0hpZGVNZWRpYUNvbnRyb2xzIjsKIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyVG9nZ2xlRW5oYW5jZWRGdWxsU2NyZWVuID0gQCJXS01lbnVJdGVtSWRlbnRpZmllclRvZ2ds
ZUVuaGFuY2VkRnVsbFNjcmVlbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaAppbmRl
eCAzMzk2OGFhMDY4ZjVmMjBjZTI4YzRjZGM0ZTAxNzc1YWIwMzM5Mjg3Li42OTZlYWIyOWJiYzRl
MWU2OGViNmNiZjNhOTFkMjBkYjdlMzUzNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2
YXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rSW5OZXdXaW5kb3cgV0tfQVAKIFdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTWVkaWFJ
bk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIFdL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2UgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIFdLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRpYUNvbnRy
b2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2dsZUVuaGFu
Y2VkRnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50
QWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRB
Y3Rpb24ubW0KaW5kZXggYTE0Mjg2OWU2M2VmNmRmYzY1M2FmNDkzYzU2YzlmNzBjNThjNjIwYy4u
ZmIwOTM5MDhjOTcwODUwMWE5N2MyZmYyY2Q4MDkwNzZjYjczZThmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0KQEAg
LTE3MSw3ICsxNzEsNyBAQCArIChpbnN0YW5jZXR5cGUpX2VsZW1lbnRBY3Rpb25XaXRoVHlwZToo
X1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBjdXN0b21UaXRsZTooTgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6CiAjaWYgRU5BQkxFKElN
QUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHRpdGxlID0gV2ViQ29yZTo6bG9jYWxpemVkTlNTdHJp
bmcoQCJSZXZlYWwgSW1hZ2UiKTsKKyAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlvblNoZWV0
QXNzaXN0YW50ICphc3Npc3RhbnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZv
KSB7CiAgICAgICAgICAgICBbYXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTp0
eXBlIGVsZW1lbnQ6YWN0aW9uSW5mbyBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAgICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCmluZGV4IGUxNWYxMGNhMjAxNTkyMGExNDJlNmRlYWNkNjIyNWQ0NjllYzg1MDguLjNkNWE4
OGIyMjNiOWVhMWJjOWFkYzBlNGVkMjg5MDdkODIwNzdkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC03Niw2ICs3Niwx
MCBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKIFNP
RlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CiAj
ZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvV2ViUGFnZVByb3h5Q29jb2FBZGRpdGlvbnNCZWZvcmUubW0+CisjZW5kaWYKKwogI2Rl
ZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlv
biwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT01QTEVU
SU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OX0JBU0Uo
YXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBjb21wbGV0aW9uKQogCkBAIC01NzAs
NiArNTc0LDE5IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFdlYlBhZ2VQcm94eTo6
Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiAgICAgcmV0dXJuIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5KCk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVD
b250ZXh0TWVudVJldmVhbEltYWdlKCkKK3sKKyAgICBhdXRvJiByZXN1bHQgPSBtX2FjdGl2ZUNv
bnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKKyAgICBpZiAoIXJl
c3VsdC5pbWFnZUJpdG1hcCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmV2ZWFsRXh0cmFjdGVk
SW1hZ2VJblByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRl
eHQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShD
T05URVhUX01FTlVTKQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGJvb2wsIGNvbnN0IFN0
cmluZyYsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdCk+JiYgY2FsbGJhY2spCiB7CiAgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvKCksIFdURk1vdmUoY2FsbGJhY2spKTsKQEAgLTU3Nyw1ICs1OTQsOSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVBy
b3h5Q29jb2FBZGRpdGlvbnNBZnRlci5tbT4KKyNlbmRpZgorCiAjdW5kZWYgTUVTU0FHRV9DSEVD
S19DT01QTEVUSU9OCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTI1YmNhOWNmYWQ2YWJkYjE2ZjA2YTJkZmUwZTdhYzg1
N2NmNjczNi4uMmQxZjNjM2RjZGYzZWY2MTUzOTg2Y2E2NmQxODZiYzZhZWE3MjJlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NTYzLDkwICs2NTYzLDEx
MSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IHN0cnVjdCBEb3dubG9hZEluZm8geworICAgICAgICBTdHJpbmcgdXJsOworICAgICAgICBTdHJp
bmcgc3VnZ2VzdGVkRmlsZW5hbWU7CisgICAgfTsKKyAgICBPcHRpb25hbDxEb3dubG9hZEluZm8+
IGRvd25sb2FkSW5mbzsKKworICAgIHN3aXRjaCAoaXRlbS5hY3Rpb24oKSkgewogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ1Nt
YXJ0Q29weVBhc3RlKSB7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0
ZToKICAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFpc1NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rp
b24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcykgeworCisgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlczoKICAgICAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9t
YXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0
ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRl
bS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcykgeworCisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlczoKICAgICAgICAgVGV4dENoZWNrZXI6OnNl
dEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5p
c0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51
cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYg
KGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcykgeworCisgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzOgogICAgICAgICBUZXh0Q2hlY2tlcjo6
c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlz
QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0
ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRl
bS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQpIHsKKworICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50OgogICAgICAgICBUZXh0Q2hl
Y2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCghVGV4dENoZWNrZXI6OnN0
YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKTsKICAgICAgICAgbV9wcm9j
ZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5n
QXV0b21hdGljYWxseSkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3JyZWN0U3Bl
bGxpbmdBdXRvbWF0aWNhbGx5OgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljU3Bl
bGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51cGRhdGVUZXh0
Q2hlY2tlclN0YXRlKCk7Ci0gICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLSAgICBpZiAo
aXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucykgewor
ICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0
dXRpb25zOgogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3Vic3RpdHV0aW9uc1BhbmVsSXNT
aG93aW5nKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAjZW5kaWYKLSAgICBzdHJ1Y3QgRG93
bmxvYWRJbmZvIHsKLSAgICAgICAgU3RyaW5nIHVybDsKLSAgICAgICAgU3RyaW5nIHN1Z2dlc3Rl
ZEZpbGVuYW1lOwotICAgIH07Ci0gICAgT3B0aW9uYWw8RG93bmxvYWRJbmZvPiBkb3dubG9hZElu
Zm87Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJ
bWFnZVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRv
RGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0TWVudUNvbnRl
eHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVJbWFnZVVSTCwgeyB9IH19Owot
ICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzaykgeworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRMaW5rVG9EaXNrOiB7CiAgICAgICAgIGF1dG8mIGhpdFRlc3RSZXN1bHQgPSBtX2FjdGl2
ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKICAgICAgICAg
ZG93bmxvYWRJbmZvID0ge3sgaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwsIGhpdFRlc3RS
ZXN1bHQubGlua1N1Z2dlc3RlZEZpbGVuYW1lIH19OworICAgICAgICBicmVhazsKICAgICB9Ci0g
ICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRNZWRpYVRv
RGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRNZWRpYVRvRGlzazoK
ICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0TWVudUNvbnRleHREYXRh
LndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVNZWRpYVVSTCwgeyB9IH19OwotICAgIGlm
IChkb3dubG9hZEluZm8pIHsKLSAgICAgICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnBy
b2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0YVN0b3JlLCB0aGlzLCBVUkwoVVJMKCks
IGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZvLT5zdWdnZXN0ZWRGaWxlbmFtZSk7Ci0g
ICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpXSAoYXV0byogZG93bmxvYWQpIHsKLSAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMgfHwgIWRvd25sb2FkKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IG1fbmF2aWdhdGlvbkNsaWVudC0+Y29udGV4dE1lbnVEaWRDcmVhdGVEb3dubG9hZCgqdGhpcywg
KmRvd25sb2FkKTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlvbigpID09
IENvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZykgeworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlw
aW5nOgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCk7CiAgICAgICAgIG1fcHJvY2Vzcy0+dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRl
bVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZykgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6CiAgICAgICAgIFRleHRDaGVja2VyOjpzZXRH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0dyYW1tYXJDaGVj
a2luZ0VuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0ZVRleHRDaGVja2VyU3RhdGUo
KTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250
ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCkgeworCisgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbDoKICAgICAgICAgaWYgKCFUZXh0Q2hlY2tlcjo6c3Bl
bGxpbmdVSUlzU2hvd2luZygpKQogICAgICAgICAgICAgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5n
KHRydWUpOwogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygp
OwogICAgICAgICByZXR1cm47Ci0gICAgfQorCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQot
ICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRv
TmV3R3JvdXApIHsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3
R3JvdXA6CiAgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShDcmVhdGVO
ZXdHcm91cEZvckhpZ2hsaWdodDo6WWVzKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJl
bnRHcm91cCkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1
cnJlbnRHcm91cDoKICAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENy
ZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpObyk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0j
ZW5kaWYKLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNw
ZWxsaW5nIHx8IGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxp
bmcpCisjZW5kaWYgLy8gRU5BQkxFKEFQUF9ISUdITElHSFRTKQorCisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlU3BlbGxpbmc6CiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdl
Q291bnQ7CisgICAgICAgIGJyZWFrOworCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgaGFuZGxlQ29u
dGV4dE1lbnVSZXZlYWxJbWFnZSgpOworICAgICAgICByZXR1cm47CisjZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCisKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBpZiAoZG93bmxvYWRJbmZvKSB7CisgICAgICAgIGF1dG8mIGRvd25sb2FkID0gbV9w
cm9jZXNzLT5wcm9jZXNzUG9vbCgpLmRvd25sb2FkKG1fd2Vic2l0ZURhdGFTdG9yZSwgdGhpcywg
VVJMKFVSTCgpLCBkb3dubG9hZEluZm8tPnVybCksIGRvd25sb2FkSW5mby0+c3VnZ2VzdGVkRmls
ZW5hbWUpOworICAgICAgICBkb3dubG9hZC5zZXREaWRTdGFydENhbGxiYWNrKFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8qIGRvd25sb2FkKSB7CisgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8ICFkb3dubG9hZCkKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmNvbnRleHRNZW51RGlkQ3JlYXRlRG93bmxv
YWQoKnRoaXMsICpkb3dubG9hZCk7CisgICAgICAgIH0pOworICAgIH0KIAogICAgIHBsYXRmb3Jt
RGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShpdGVtKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzMTRkYTM1NGE3NGNiMTllY2E0MTdjNDRlNjg5
NDhkOTBkYmFiNzM4Li4zODE5YTE1ZmYwMDhlNTBiMjRkZjc2Y2JkZWQyOWJmOGUwMDliM2RmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEzLDYgKzExMyw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmls
ZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CkBAIC0xODQsNiArMTg1LDEwIEBAIGludGVy
ZmFjZSBJRDNEMTFEZXZpY2UxOwogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uSWRlbnRp
Zmllci5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9uc0JlZm9yZS5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbnRlbnRXb3JsZDsK
QEAgLTE4MzksNiArMTg0NCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoV2hlZWxF
dmVudFdpdGhvdXRTY3JvbGxpbmcoY29uc3QgV2ViV2hlZWxFdmVudCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVO
QUJMRShDT05URVhUX01FTlVTKQorICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFn
ZSgpOworICAgIHZvaWQgcmVzZXRJbWFnZUV4dHJhY3Rpb25QcmV2aWV3KCk7CisjZW5kaWYgLy8g
RU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCiBwcml2
YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVm
PEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CkBAIC0yODk0LDYgKzI5MDQsMTAgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9zdXNwZW5k
TWVkaWFQbGF5YmFja0NvdW50ZXIgeyAwIH07CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKworI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVBy
b3h5QWRkaXRpb25zQWZ0ZXIuaD4KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVBy
b3h5TWFjLm1tCmluZGV4IGZiYzk0ZTg2Yzc0MzJmZWQxM2ExNTQzYmFhY2Q3MTRkNDc3M2EyYzMu
LmE3NGVlYTYzMjE2MWI3MjA0MWFmMzYzOWZlMDc5MzIyZDAxMjAxNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBA
IC00NDUsNiArNDQ1LDExIEBAIHN0YXRpYyBOU1N0cmluZyAqbWVudUl0ZW1JZGVudGlmaWVyKGNv
bnN0IFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ1JlbG9hZDoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJl
bG9hZDsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZp
ZXJSZXZlYWxJbWFnZTsKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKwogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViOgogICAgICAgICByZXR1cm4gX1dLTWVu
dUl0ZW1JZGVudGlmaWVyU2VhcmNoV2ViOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAxNzRmZDM0YjAzNWMxOWU3YzdkMDRkMjEwY2Y3
OWNmYjk1MzM5MmYyLi5jNTk1YzExN2JkOWIzZWVmOTc2NWJiYmY0OWRmNTUzNWZlYzNjZTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAg
LTYxNCw2ICs2MTQsMTAgQEAgc3RhdGljIE9wdGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoV2ViQ29y
ZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1U
YWdTaGFyZU1lbnU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFu
Y2VkRnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9F
bmhhbmNlZEZ1bGxzY3JlZW47CisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIAogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRh
ZzoKICAgICAgICAgLy8gV2UganVzdCBwYXNzIHRoZXNlIHRocm91Z2guCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420422</attachid>
            <date>2021-02-15 21:19:46 -0800</date>
            <delta_ts>2021-02-15 22:35:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221917-20210215211945.patch</filename>
            <type>text/plain</type>
            <size>29383</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YTFjOGJmNTc0ZDdiMzc3YWVmZTNj
YTRhNDc0OWM2NmVhMGQzYzQuLmYwOTgzOWRmMTZmNGIzMDA4NWNiMWVjZDlmN2ZhNDQ5NzBiZWY3
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29u
dGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIGEgbmV3IHNvZnQtbGlua2luZyBtYWNybyB0byBvcHRpb25hbGx5IGxpbmsgYWdhaW5zdCBh
biB1bWJyZWxsYSBmcmFtZXdvcmsuCisKKyAgICAgICAgKiB3dGYvY29jb2EvU29mdExpbmtpbmcu
aDoKKwogMjAyMS0wMi0xNSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQVJNNjRdIENoYW5nZSBicmVhayBpbnN0cnVjdGlvbiBjb21tZW50IHRvIGluZGlj
YXRlIHBvc3NpYmxlIHNlY3VyaXR5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYjA1YTEwZDk3ZDkx
NWRiYzg4OTBkN2E2MTRhM2QxZTAyMTg3NjA5Li5lZmNmZGE5OTY0ZjcwMTdjNWMxNTQ4OWRhYzQy
YmRjOTQ5Y2I4ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDItMTUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBJ
bnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFnZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkxNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgQWRkIHBsdW1iaW5nIGZvciBhIG5ldyBjb250ZXh0IG1lbnUgdGFn
LCBgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2VgLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8g
aW52b2tlIGEgc3BlY2lhbAorICAgICAgICB0eXBlIG9mIFF1aWNrTG9vayBwcmV2aWV3IGZvciBl
eHRyYWN0ZWQgaW1hZ2VzIHdoZW4gdGhlIHJlbGV2YW50IGFjY2Vzc2liaWxpdHkgZmVhdHVyZXMg
YXJlIGVuYWJsZWQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6cG9w
dWxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09y
RW5hYmxlSWZOZWVkZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJp
bmdzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZSk6CisKIDIwMjEtMDItMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW21hY09TXSBDb25uZWN0IFRvdWNoIEJhciB0byBNZWRpYVNlc3Npb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOGYzNWQxNzJmMjZlOWRlZDFlNjBiMzVmZGFjYWJmNDNmNmU5ZTNiMS4uNTYw
MWM5NDA4YWY4ZmUyZTY5NjkxMDQ3Nzg4MDVkZGQxNmQ4MWQ2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MCBAQAorMjAyMS0wMi0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBbbWFjT1NdIEludHJvZHVjZSBhIG5ldyBjb250ZXh0IG1lbnUgaXRlbSB0
byBwcmV2aWV3IGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIxOTE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2MzU3OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8g
c3VwcG9ydCB0aGUgYENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCBhY3Rpb24sIGFzIHdl
bGwgYXMgc29tZSBXZWJLaXRBZGRpdGlvbnMgZXh0ZW5zaW9uCisgICAgICAgIHBvaW50cy4gU2Vl
IGJlbG93IGZvciBtb3JlIGRldGFpbHMuIFRoaXMgcGF0Y2ggd2FzIG1vc3RseSB3cml0dGVuIGJ5
IERldmluIFJvdXNzbywgd2l0aCBzb21lIGFkanVzdG1lbnRzIGZyb20KKyAgICAgICAgbWUuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisKKyAgICAgICAgTGlu
ayBhZ2FpbnN0IFF1YXJ0eiBhbmQgVW5pZm9ybVR5cGVJZGVudGlmaWVycy4KKworICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5cGVzLmg6CisgICAgICAgICogU2hhcmVk
L0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAg
ICAgIChXZWJLaXQ6OnRvSW1wbCk6CisKKyAgICAgICAgQWRkIGBrV0tDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZWAsIGFuZCBhZGQgaGVscGVycyB0byBjb252ZXJ0IGZyb20gYFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYAorICAgICAgICB0byBga1dLQ29udGV4dE1l
bnVJdGVtVGFnUmV2ZWFsSW1hZ2VgIGFuZCB2aWNlIHZlcnNhLgorCisgICAgICAgICogU2hhcmVk
L0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dE1lbnVD
b250ZXh0RGF0YTo6d2ViSGl0VGVzdFJlc3VsdERhdGEpOgorCisgICAgICAgIEFkZCBhIG5vbi1j
b25zdCB2ZXJzaW9uIG9mIGB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpYCwgc28gdGhhdCB3ZSBjYW4g
Z2VuZXJhdGUgYSBgQ0dJbWFnZWAgdXNpbmcKKyAgICAgICAgYFdlYkhpdFRlc3RSZXN1bHREYXRh
YCdzIGJpdG1hcCBkYXRhLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnMubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50QWN0aW9uLm1tOgorICAgICAgICAoK1tfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50
QWN0aW9uV2l0aFR5cGU6Y3VzdG9tVGl0bGU6YXNzaXN0YW50Ol0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKToKKworICAgICAgICBBZGQgYSBo
ZWxwZXIgbWV0aG9kLCBgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZWAsIHRvIGhhbmRsZSB0
aGUgbmV3IGNvbnRleHQgbWVudSBhY3Rpb247IGFkZGl0aW9uYWxseSwKKyAgICAgICAgaW50cm9k
dWNlIGFub3RoZXIgaGVscGVyIG1ldGhvZCwgYHJldmVhbEV4dHJhY3RlZEltYWdlSW5QcmV2aWV3
UGFuZWxgLCB0byBoYW5kbGUgdGhlIE1hYy1zcGVjaWZpYworICAgICAgICBgUUxQcmV2aWV3UGFu
ZWxgIGxvZ2ljIHdoZW4gaW52b2tpbmcgdGhlIG5ldyBpdGVtLiBTZWUgV2ViS2l0QWRkaXRpb25z
IGNoYW5nZXMgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJL
aXQ6Om1lbnVJdGVtSWRlbnRpZmllcik6CisKIDIwMjEtMDItMTUgIFRydWl0dCBTYXZlbGwgIDx0
c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3Mjg2
Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA3N2RjMWY4OTllYzYwODJiOGM4YWQ0
MmQ0OWE2MTU5OTc4NDgzNmYxLi5lZWViMTMyYWZlM2VlNDhkMjkxNDY4ODA2MzlhNGY3ZjhkN2E1
NmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEt
MDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFn
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkx
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTGVnYWN5IFdlYktpdCB3b24ndCBiZSBzdXBwb3J0
aW5nIHRoaXMgbmV3IGNvbnRleHQgbWVudSBhY3Rpb247IHNlZSBvdGhlciBDaGFuZ2VMb2cgZW50
cmllcyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5t
bToKKyAgICAgICAgKHRvVGFnKToKKwogMjAyMS0wMi0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBleHBsaWNpdCB1c2FnZSBvZiBbb2JqQyByZWxl
YXNlXSBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRMaW5r
aW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oCmluZGV4IGY4MGVlMGM3
Y2M2NjllYmZlMTRhYWIwM2U4ODlhNmQzOTJmYWE3YzMuLmQwOWE3OWM5NmFlZGJmODI0OTMwNDBl
NTNlZmFjZWUxNDRmYTM0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRM
aW5raW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvU29mdExpbmtpbmcuaApAQCAtMTEy
LDYgKzExMiwxMyBAQCBzdGF0aWMgdm9pZCogbGliIyNMaWJyYXJ5KCkgXAogICAgICAgICByZXR1
cm4gZnJhbWV3b3JrTGlicmFyeTsgXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfRlJBTUVX
T1JLX0lOX1VNQlJFTExBX09QVElPTkFMKHVtYnJlbGxhLCBmcmFtZXdvcmspIFwKKyAgICBzdGF0
aWMgdm9pZCogZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMg
dm9pZCogZnJhbWV3b3JrTGlicmFyeSA9IGRsb3BlbigiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvIiAjdW1icmVsbGEgIi5mcmFtZXdvcmsvRnJhbWV3b3Jrcy8iICNmcmFtZXdvcmsgIi5mcmFt
ZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05PVyk7IFwKKyAgICAgICAgcmV0dXJuIGZyYW1ld29y
a0xpYnJhcnk7IFwKKyAgICB9CisKICNkZWZpbmUgU09GVF9MSU5LKGZyYW1ld29yaywgZnVuY3Rp
b25OYW1lLCByZXN1bHRUeXBlLCBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMsIHBhcmFtZXRlck5hbWVz
KSBcCiAgICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKICAgICByZXN1bHRUeXBlIGZ1bmN0aW9uTmFt
ZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnM7IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA0YWVkNzFlN2VkMWUwNDYzNWVkMTdhNTYxOWQ1ZDhl
NzEwZTgwNDI1Li4yMGY0MzRmNmU4NjM3OWUzNjVkYjI2MjZjMTVhM2M2YTJjMTk4YWQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC01MTcs
NiArNTE3LDEwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmFw
cGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICAvLyBUaGlzIHNob3VsZCBi
ZSBoYW5kbGVkIGF0IHRoZSBjbGllbnQgbGF5ZXIuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
CkBAIC04MTAsNiArODE0LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRl
KCkKICAgICBDb250ZXh0TWVudUl0ZW0gU2VsZWN0QWxsSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwsIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpKTsKICAg
ICBDb250ZXh0TWVudUl0ZW0gSW5zZXJ0RW1vamlJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51
SXRlbVRhZ0luc2VydEVtb2ppLCBjb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9qaSgpKTsKICNl
bmRpZgorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIENvbnRleHRNZW51SXRlbSBS
ZXZlYWxJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2Us
IGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkpOworI2VuZGlmCiAKICNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBDb250ZXh0TWVudUl0ZW0gU2hhcmVNZW51SXRl
bTsKQEAgLTg1Niw4ICs4NjMsMTMgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVs
YXRlKCkKIAogICAgICAgICAgICAgYXBwZW5kSXRlbShPcGVuSW1hZ2VJbk5ld1dpbmRvd0l0ZW0s
IG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgYXBwZW5kSXRlbShEb3dubG9hZElt
YWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoaW1hZ2VVUkwu
aXNMb2NhbEZpbGUoKSB8fCBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmltYWdlKCkpCisgICAg
ICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUoKSB8fCBtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLmltYWdlKCkpIHsKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlJbWFnZUl0
ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOworCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZXZlYWxJbWFnZUl0ZW0sIG1fY29udGV4dE1l
bnUuZ2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0oR1RLKQogICAg
ICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VVcmxJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKICNlbmRpZgpAQCAtMTQ1MCw2ICsxNDYyLDggQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAg
ICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlh
SGFzQXVkaW8oKTsKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gc2hvdWxkRW5hYmxlICYmICBt
X2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlhTXV0ZWQoKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgaXRlbS5zZXRDaGVja2VkKHNob3VsZENoZWNrKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IGFjYjdmNzUy
YmUxZTU1NDczNzExZTQyOGQ4YjNkZjZkNmNkMWZhZTguLjgzNzZhMWY2OTgwZTdiOWUxNGNjNmM5
MjdmYjY3ZTUyODQ0MjUwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmNwcApAQCAtMjQ2LDYgKzI0Niw3IEBAIGJvb2wgaXNWYWxpZENvbnRleHRNZW51QWN0
aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9u
OjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Z1bGxzY3JlZW46CiAgICAgY2FzZSBDb250
ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgIGNhc2UgQ29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxs
c2NyZWVuOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1Jl
dmVhbEltYWdlOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJh
c2VDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVt
TGFzdEN1c3RvbVRhZzoKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0
ZW1CYXNlQXBwbGljYXRpb25UYWc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oCmluZGV4IDI1ZTQzMWVlM2Y0MmUzMmEyYWY1YWRkMTA2MDJhNmQxMzBhNTA5MjEuLjE1
ZmE4N2RhNjA3NDlhMTc4OGZjMWYxOGMxNTEzNDAxMWE5NWIzODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNDksNiArMTQ5LDcgQEAgZW51bSBDb250
ZXh0TWVudUFjdGlvbiB7CiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJy
ZW50R3JvdXAsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCwK
ICNlbmRpZgorICAgIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlLAogICAgIENvbnRleHRN
ZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRNZW51SXRlbUxhc3RDdXN0
b21UYWcgPSA1OTk5LAogICAgIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyA9IDEw
MDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggODQ1
MWY1MTcwMTNmNTIzZTFhMjhkMGJjYjA3ZTY4NWQyODI2MTRhYy4uN2M0Mjg0ZWE0ZDA1YjY1NzE1
NTU2MmY4MWJlMjVjYmFhYjdiMjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaApAQCAtMzUwLDYgKzM1MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCk7CisjZW5kaWYKKwogI2lmIFVT
RShHTElCKSAmJiBkZWZpbmVkKEdFVFRFWFRfUEFDS0FHRSkKICNkZWZpbmUgV0VCX1VJX1NUUklO
RyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoXyhzdHJpbmcp
KQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3JpcHRpb24pIFdl
YkNvcmU6OmxvY2FsaXplZFN0cmluZyhDXyhrZXksIHN0cmluZykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXgg
Y2JjMTAyMmIyMmFmNmE4MTU1NjM2NTNhMzkwNGFmMjYxZjhmZDNkZi4uZGYyYzIxYmRmNjk5MmFk
OWY1ZjhlMjBjMjgyMjE1YjBjNjk4NWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMzA2LDQgKzMwNiwx
MSBAQCBTdHJpbmcgZXhpdEZ1bGxTY3JlZW5CdXR0b25BY2Nlc3NpYmlsaXR5VGl0bGUoKQogfQog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkKK3sKKyAgICByZXR1cm4gbG9j
YWxpemVkTlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dl
YktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnCmluZGV4IDQyYjVkODk5ZWIwYWQ5Y2QwNTg3NjM4ODhjMDcyODA0OWU1MjkyMzkuLjExM2Yx
MDExNzczMzIxMjhhMTU2NjUyZDdmM2E2NzAyOTVkNDE4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC0xMTQsNiArMTE0LDggQEAgV0tfVU5J
Rk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfaXBob25lb3MgPSAkKFdLX1VOSUZPUk1fVFlQ
RV9JREVOVElGSUVSU19MREYKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX2lw
aG9uZXNpbXVsYXRvciA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdL
X0lPU18xNCkpOwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfbWFjY2F0YWx5
c3QgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTJChXS19JT1NfMTQpKTsK
IFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX0lPU19TSU5DRV8xNCA9IC1mcmFt
ZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKK1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVS
U19MREZMQUdTX21hY29zeCA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Mk
KFdLX01BQ09TXzEyMDApKTsKK1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX01B
Q09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmllcnM7CiAKIFdL
X1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1NfJChX
S19IQVZFX1VSTF9GT1JNQVRUSU5HKSk7CiBXS19VUkxfRk9STUFUVElOR19MREZMQUdTX1lFUyA9
IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaAppbmRleCA0MGM1OWIwYWFmOGM4ODZlOThi
ZGExMDgxZGQ2ZjRmNjczNjUwZjE3Li5jMWU5MzNlYjU2NWY3ZDQwM2Y2ODEzMzVmN2QzNGIxZmIw
YzhkZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRN
ZW51SXRlbVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0
TWVudUl0ZW1UeXBlcy5oCkBAIC0xMjUsNiArMTI1LDcgQEAgZW51bSB7CiAgICAga1dLQ29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4sCiAgICAga1dLQ29udGV4
dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXAsCiAgICAga1dLQ29udGV4dE1l
bnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCwKKyAgICBrV0tDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZSwKICAgICBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcg
PSAxMDAwMAogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tDb250ZXh0TWVudUl0ZW1UYWc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDg0YzBjMmM4
M2I5ZjM5N2FhOTU4YTU4YmUxMmViZDNiNmIzOTUxNGYuLmNjY2U0ODkwZDUwYmNlYzZjMDhmYTU5
ZThlOTY1ZWU5NmEwNTE4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCkBAIC01NDUsNiArNTQ1LDggQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVt
VGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNlbmRpZgogICAg
IGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICByZXR1
cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OworICAgIGNhc2UgV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoYWN0aW9uIDwg
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnICYmICEoYWN0aW9uID49
IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgJiYgYWN0aW9uIDw9IFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcpKQogICAgICAgICAgICAgTE9HX0VSUk9S
KCJDb250ZXh0TWVudUFjdGlvbiAlaSBpcyBhbiB1bmtub3duIHRhZyBidXQgaXMgYmVsb3cgdGhl
IGFsbG93YWJsZSBjdXN0b20gdGFnIHZhbHVlIG9mICVpIiwgYWN0aW9uLCBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcpOwpAQCAtNzQ1LDYgKzc0Nyw4IEBAIGlubGlu
ZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcg
dGFnKQogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2VuZGlmCisgICAg
Y2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAgIGNhc2Uga1dLQ29udGV4
dE1lbnVJdGVtVGFnT3BlbkxpbmtJblRoaXNXaW5kb3c6CiAgICAgZGVmYXVsdDoKICAgICAgICAg
aWYgKHRhZyA8IGtXS0NvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyAmJiAhKHRhZyA+
PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICYmIHRhZyA8PSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvbnRleHRNZW51Q29udGV4dERhdGEuaAppbmRleCBhMzRhNWVhNDFlYjFjZTk5ZmI0NWE5NDIx
MGQ1ZjU0MGZmOTlhNGQ4Li5mN2QwZmUxZGVkN2EyMDE4N2E5MDdkYWQ5YWMwZTYyYzg2Mzg2MzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCkBA
IC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVu
dUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tZW51TG9jYXRpb247IH0KICAgICBjb25zdCBW
ZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zKCkgY29uc3Qg
eyByZXR1cm4gbV9tZW51SXRlbXM7IH0KIAorICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhJiB3ZWJI
aXRUZXN0UmVzdWx0RGF0YSgpIHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJlc3VsdERhdGE7IH0KICAg
ICBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJlc3VsdERhdGEoKSBjb25z
dCB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOyB9CiAgICAgY29uc3QgU3RyaW5nJiBz
ZWxlY3RlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGVkVGV4dDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZp
ZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVu
dGlmaWVycy5tbQppbmRleCAyNjQyMzc5Y2FkZWY3Y2M5ZTYzZmMwOTU1YmEwMWUzMDEwMGY3ZGVl
Li5jMmE5NGMzY2M0OTAwMjMzNzU4ZTA1ZDQ1YTljYWQzZjY5YjRiNmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRp
ZmllcnMubW0KQEAgLTQ3LDYgKzQ3LDcgQEAgTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93ID0gQCJXS01lbnVJdGVtSWRlbnRpZmkKIE5TU3Ry
aW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3cgPSBA
IldLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3ciOwogTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJQ
YXN0ZSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCA9IEAi
V0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQiOworTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJSZXZlYWxJbWFnZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJSZXZlYWxJbWFn
ZSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNlYXJjaFdlYiA9IEAi
V0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51
SXRlbUlkZW50aWZpZXJTaG93SGlkZU1lZGlhQ29udHJvbHMgPSBAIldLTWVudUl0ZW1JZGVudGlm
aWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIjsKIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyVG9nZ2xlRW5oYW5jZWRGdWxsU2NyZWVuID0gQCJXS01lbnVJdGVtSWRlbnRpZmll
clRvZ2dsZUVuaGFuY2VkRnVsbFNjcmVlbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUu
aAppbmRleCAzMzk2OGFhMDY4ZjVmMjBjZTI4YzRjZGM0ZTAxNzc1YWIwMzM5Mjg3Li42OTZlYWIy
OWJiYzRlMWU2OGViNmNiZjNhOTFkMjBkYjdlMzUzNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmll
cnNQcml2YXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rSW5OZXdXaW5kb3cgV0tfQVAKIFdL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVu
TWVkaWFJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJQYXN0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2UgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIFdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hX
ZWIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRp
YUNvbnRyb2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2ds
ZUVuaGFuY2VkRnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50QWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Vs
ZW1lbnRBY3Rpb24ubW0KaW5kZXggYTE0Mjg2OWU2M2VmNmRmYzY1M2FmNDkzYzU2YzlmNzBjNThj
NjIwYy4uZmIwOTM5MDhjOTcwODUwMWE5N2MyZmYyY2Q4MDkwNzZjYjczZThmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24u
bW0KQEAgLTE3MSw3ICsxNzEsNyBAQCArIChpbnN0YW5jZXR5cGUpX2VsZW1lbnRBY3Rpb25XaXRo
VHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBjdXN0b21UaXRsZTooTgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6CiAjaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHRpdGxlID0gV2ViQ29yZTo6bG9jYWxpemVk
TlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKKyAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rp
b25JbmZvKSB7CiAgICAgICAgICAgICBbYXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRo
VHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9uSW5mbyBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAg
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdl
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94
eUNvY29hLm1tCmluZGV4IGUxNWYxMGNhMjAxNTkyMGExNDJlNmRlYWNkNjIyNWQ0NjllYzg1MDgu
LjNkNWE4OGIyMjNiOWVhMWJjOWFkYzBlNGVkMjg5MDdkODIwNzdkY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC03Niw2
ICs3NiwxMCBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lz
KTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRv
cik7CiAjZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJL
aXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5Q29jb2FBZGRpdGlvbnNCZWZvcmUubW0+CisjZW5kaWYK
KwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFz
c2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19D
T01QTEVUSU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9O
X0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBjb21wbGV0aW9uKQogCkBA
IC01NzAsNiArNTc0LDE5IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFdlYlBhZ2VQ
cm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiAgICAgcmV0dXJuIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5KCk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCkKK3sKKyAgICBhdXRvJiByZXN1bHQgPSBtX2Fj
dGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKKyAgICBp
ZiAoIXJlc3VsdC5pbWFnZUJpdG1hcCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmV2ZWFsRXh0
cmFjdGVkSW1hZ2VJblByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9v
bFRpcFRleHQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVO
QUJMRShDT05URVhUX01FTlVTKQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5v
d1BsYXlpbmdTZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGJvb2wsIGNv
bnN0IFN0cmluZyYsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdCk+JiYgY2FsbGJhY2spCiB7CiAg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWN0aXZlTm93
UGxheWluZ1Nlc3Npb25JbmZvKCksIFdURk1vdmUoY2FsbGJhY2spKTsKQEAgLTU3Nyw1ICs1OTQs
OSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
byhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2Vi
UGFnZVByb3h5Q29jb2FBZGRpdGlvbnNBZnRlci5tbT4KKyNlbmRpZgorCiAjdW5kZWYgTUVTU0FH
RV9DSEVDS19DT01QTEVUSU9OCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTI1YmNhOWNmYWQ2YWJkYjE2ZjA2YTJkZmUw
ZTdhYzg1N2NmNjczNi4uNjdjNjU4ZTI2MTZiOWQ2YjcxYzkzZDc1MGIxNDVjNmVlZDQ5YzY2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NTYzLDkwICs2
NTYzLDExMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29u
c3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorICAgIHN0cnVjdCBEb3dubG9hZEluZm8geworICAgICAgICBTdHJpbmcgdXJsOworICAgICAg
ICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWU7CisgICAgfTsKKyAgICBPcHRpb25hbDxEb3dubG9h
ZEluZm8+IGRvd25sb2FkSW5mbzsKKworICAgIHN3aXRjaCAoaXRlbS5hY3Rpb24oKSkgewogI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0Q29weVBhc3RlKSB7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydENv
cHlQYXN0ZToKICAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFpc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRl
bS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcykgeworCisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlczoKICAgICAgICAgVGV4dENoZWNrZXI6OnNl
dEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCku
aXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3Mt
PnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcykgeworCisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlczoKICAgICAgICAgVGV4dENoZWNr
ZXI6OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3Rh
dGUoKS5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9j
ZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcykgewor
CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzOgogICAgICAgICBUZXh0Q2hl
Y2tlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0
ZSgpLmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3Mt
PnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQpIHsK
KworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50OgogICAgICAgICBU
ZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCghVGV4dENoZWNr
ZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKTsKICAgICAgICAg
bV9wcm9jZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNw
ZWxsaW5nQXV0b21hdGljYWxseSkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3Jy
ZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5OgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51cGRh
dGVUZXh0Q2hlY2tlclN0YXRlKCk7Ci0gICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLSAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9u
cykgeworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Nob3dT
dWJzdGl0dXRpb25zOgogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3Vic3RpdHV0aW9uc1Bh
bmVsSXNTaG93aW5nKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAjZW5kaWYKLSAgICBzdHJ1
Y3QgRG93bmxvYWRJbmZvIHsKLSAgICAgICAgU3RyaW5nIHVybDsKLSAgICAgICAgU3RyaW5nIHN1
Z2dlc3RlZEZpbGVuYW1lOwotICAgIH07Ci0gICAgT3B0aW9uYWw8RG93bmxvYWRJbmZvPiBkb3du
bG9hZEluZm87Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRJbWFnZVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJ
bWFnZVRvRGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0TWVu
dUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVJbWFnZVVSTCwgeyB9
IH19OwotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
TGlua1RvRGlzaykgeworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnRG93bmxvYWRMaW5rVG9EaXNrOiB7CiAgICAgICAgIGF1dG8mIGhpdFRlc3RSZXN1bHQgPSBt
X2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKICAg
ICAgICAgZG93bmxvYWRJbmZvID0ge3sgaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwsIGhp
dFRlc3RSZXN1bHQubGlua1N1Z2dlc3RlZEZpbGVuYW1lIH19OworICAgICAgICBicmVhazsKICAg
ICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRN
ZWRpYVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRNZWRpYVRv
RGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0TWVudUNvbnRl
eHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVNZWRpYVVSTCwgeyB9IH19Owot
ICAgIGlmIChkb3dubG9hZEluZm8pIHsKLSAgICAgICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nl
c3MtPnByb2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0YVN0b3JlLCB0aGlzLCBVUkwo
VVJMKCksIGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZvLT5zdWdnZXN0ZWRGaWxlbmFt
ZSk7Ci0gICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoYXV0byogZG93bmxvYWQpIHsKLSAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMgfHwgIWRvd25sb2FkKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+Y29udGV4dE1lbnVEaWRDcmVhdGVEb3dubG9hZCgq
dGhpcywgKmRvd25sb2FkKTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlv
bigpID09IENvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZykgeworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1do
aWxlVHlwaW5nOgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCk7CiAgICAgICAgIG1fcHJvY2Vzcy0+dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwog
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZykgeworCisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6CiAgICAgICAgIFRleHRDaGVja2Vy
OjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0dyYW1t
YXJDaGVja2luZ0VuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0ZVRleHRDaGVja2Vy
U3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCkgeworCisgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbDoKICAgICAgICAgaWYgKCFUZXh0Q2hlY2tl
cjo6c3BlbGxpbmdVSUlzU2hvd2luZygpKQogICAgICAgICAgICAgYWR2YW5jZVRvTmV4dE1pc3Nw
ZWxsaW5nKHRydWUpOwogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hv
d2luZygpOwogICAgICAgICByZXR1cm47Ci0gICAgfQorCiAjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hs
aWdodFRvTmV3R3JvdXApIHsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdo
dFRvTmV3R3JvdXA6CiAgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShD
cmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodDo6WWVzKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRU
b0N1cnJlbnRHcm91cCkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGln
aHRUb0N1cnJlbnRHcm91cDoKICAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJh
bmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpObyk7CiAgICAgICAgIHJldHVybjsKLSAg
ICB9CiAjZW5kaWYKLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdM
ZWFyblNwZWxsaW5nIHx8IGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnSWdub3Jl
U3BlbGxpbmcpCisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmc6Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZzoKICAgICAgICAgKyttX3Bl
bmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorICAgICAgICBoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgaWYgKGRvd25sb2FkSW5mbykgeworICAgICAgICBhdXRvJiBkb3dubG9hZCA9IG1f
cHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5kb3dubG9hZChtX3dlYnNpdGVEYXRhU3RvcmUsIHRoaXMs
IFVSTChVUkwoKSwgZG93bmxvYWRJbmZvLT51cmwpLCBkb3dubG9hZEluZm8tPnN1Z2dlc3RlZEZp
bGVuYW1lKTsKKyAgICAgICAgZG93bmxvYWQuc2V0RGlkU3RhcnRDYWxsYmFjayhbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChhdXRvKiBkb3dubG9hZCkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhZG93bmxvYWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZXh0TWVudURpZENyZWF0ZURvd25s
b2FkKCp0aGlzLCAqZG93bmxvYWQpOworICAgICAgICB9KTsKKyAgICB9CiAKICAgICBwbGF0Zm9y
bURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoaXRlbSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzE0ZGEzNTRhNzRjYjE5ZWNhNDE3YzQ0ZTY4
OTQ4ZDkwZGJhYjczOC4uZjhmNGU2MWNmMzM2YTIxMjFjYTliNmRmMGQzNmE4NzFkZTI5NmY3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExMyw2ICsxMTMsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0Zp
bGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgpAQCAtMTg0LDYgKzE4NSwxMCBAQCBpbnRl
cmZhY2UgSUQzRDExRGV2aWNlMTsKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbklkZW50
aWZpZXIuaD4KICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnNCZWZvcmUuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7
CkBAIC0xODM5LDYgKzE4NDQsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaFdoZWVs
RXZlbnRXaXRob3V0U2Nyb2xsaW5nKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1h
Z2UoKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VFeHRyYWN0aW9uUHJldmlldygpOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkm
LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoKTsKQEAgLTI4OTQsNiArMjkwNCwxMCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX3N1
c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlciB7IDAgfTsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50OworCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJQ
YWdlUHJveHlBZGRpdGlvbnNBZnRlci5oPgorI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRN
ZW51UHJveHlNYWMubW0KaW5kZXggZmJjOTRlODZjNzQzMmZlZDEzYTE1NDNiYWFjZDcxNGQ0Nzcz
YTJjMy4uOGYyYTdkNDZjNTM5ODE4YTU4YWRkNGJhODA4ZGM2MWFiNDkzNjUzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
bW0KQEAgLTQ0NSw2ICs0NDUsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKm1lbnVJdGVtSWRlbnRpZmll
cihjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdSZWxvYWQ6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZp
ZXJSZWxvYWQ7CiAKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAg
ICAgICByZXR1cm4gX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2U7CisKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYjoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVt
SWRlbnRpZmllclNlYXJjaFdlYjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMTc0ZmQzNGIwMzVjMTllN2M3ZDA0ZDIxMGNmNzljZmI5
NTMzOTJmMi4uNDVhZTNkMGNhNDZiYWVhZTNmNTEyMTc0Njc2NWIyZmU1ZThhMDZhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTQs
NiArNjE0LDggQEAgc3RhdGljIE9wdGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdTaGFy
ZU1lbnU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVs
bHNjcmVlbjoKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNl
ZEZ1bGxzY3JlZW47CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtQmFz
ZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAgICAgICAgLy8g
V2UganVzdCBwYXNzIHRoZXNlIHRocm91Z2guCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420423</attachid>
            <date>2021-02-15 22:35:15 -0800</date>
            <delta_ts>2021-02-16 19:29:19 -0800</delta_ts>
            <desc>Rebaseline test</desc>
            <filename>bug-221917-20210215223514.patch</filename>
            <type>text/plain</type>
            <size>31859</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YTFjOGJmNTc0ZDdiMzc3YWVmZTNj
YTRhNDc0OWM2NmVhMGQzYzQuLmYwOTgzOWRmMTZmNGIzMDA4NWNiMWVjZDlmN2ZhNDQ5NzBiZWY3
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29u
dGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
QWRkIGEgbmV3IHNvZnQtbGlua2luZyBtYWNybyB0byBvcHRpb25hbGx5IGxpbmsgYWdhaW5zdCBh
biB1bWJyZWxsYSBmcmFtZXdvcmsuCisKKyAgICAgICAgKiB3dGYvY29jb2EvU29mdExpbmtpbmcu
aDoKKwogMjAyMS0wMi0xNSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQVJNNjRdIENoYW5nZSBicmVhayBpbnN0cnVjdGlvbiBjb21tZW50IHRvIGluZGlj
YXRlIHBvc3NpYmxlIHNlY3VyaXR5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYjA1YTEwZDk3ZDkx
NWRiYzg4OTBkN2E2MTRhM2QxZTAyMTg3NjA5Li5lZmNmZGE5OTY0ZjcwMTdjNWMxNTQ4OWRhYzQy
YmRjOTQ5Y2I4ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDItMTUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBJ
bnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFnZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkxNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgQWRkIHBsdW1iaW5nIGZvciBhIG5ldyBjb250ZXh0IG1lbnUgdGFn
LCBgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2VgLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8g
aW52b2tlIGEgc3BlY2lhbAorICAgICAgICB0eXBlIG9mIFF1aWNrTG9vayBwcmV2aWV3IGZvciBl
eHRyYWN0ZWQgaW1hZ2VzIHdoZW4gdGhlIHJlbGV2YW50IGFjY2Vzc2liaWxpdHkgZmVhdHVyZXMg
YXJlIGVuYWJsZWQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6cG9w
dWxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09y
RW5hYmxlSWZOZWVkZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJp
bmdzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZSk6CisKIDIwMjEtMDItMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW21hY09TXSBDb25uZWN0IFRvdWNoIEJhciB0byBNZWRpYVNlc3Npb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOGYzNWQxNzJmMjZlOWRlZDFlNjBiMzVmZGFjYWJmNDNmNmU5ZTNiMS4uNTYw
MWM5NDA4YWY4ZmUyZTY5NjkxMDQ3Nzg4MDVkZGQxNmQ4MWQ2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MCBAQAorMjAyMS0wMi0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBbbWFjT1NdIEludHJvZHVjZSBhIG5ldyBjb250ZXh0IG1lbnUgaXRlbSB0
byBwcmV2aWV3IGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIxOTE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2MzU3OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8g
c3VwcG9ydCB0aGUgYENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCBhY3Rpb24sIGFzIHdl
bGwgYXMgc29tZSBXZWJLaXRBZGRpdGlvbnMgZXh0ZW5zaW9uCisgICAgICAgIHBvaW50cy4gU2Vl
IGJlbG93IGZvciBtb3JlIGRldGFpbHMuIFRoaXMgcGF0Y2ggd2FzIG1vc3RseSB3cml0dGVuIGJ5
IERldmluIFJvdXNzbywgd2l0aCBzb21lIGFkanVzdG1lbnRzIGZyb20KKyAgICAgICAgbWUuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisKKyAgICAgICAgTGlu
ayBhZ2FpbnN0IFF1YXJ0eiBhbmQgVW5pZm9ybVR5cGVJZGVudGlmaWVycy4KKworICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5cGVzLmg6CisgICAgICAgICogU2hhcmVk
L0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAg
ICAgIChXZWJLaXQ6OnRvSW1wbCk6CisKKyAgICAgICAgQWRkIGBrV0tDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZWAsIGFuZCBhZGQgaGVscGVycyB0byBjb252ZXJ0IGZyb20gYFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYAorICAgICAgICB0byBga1dLQ29udGV4dE1l
bnVJdGVtVGFnUmV2ZWFsSW1hZ2VgIGFuZCB2aWNlIHZlcnNhLgorCisgICAgICAgICogU2hhcmVk
L0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dE1lbnVD
b250ZXh0RGF0YTo6d2ViSGl0VGVzdFJlc3VsdERhdGEpOgorCisgICAgICAgIEFkZCBhIG5vbi1j
b25zdCB2ZXJzaW9uIG9mIGB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpYCwgc28gdGhhdCB3ZSBjYW4g
Z2VuZXJhdGUgYSBgQ0dJbWFnZWAgdXNpbmcKKyAgICAgICAgYFdlYkhpdFRlc3RSZXN1bHREYXRh
YCdzIGJpdG1hcCBkYXRhLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnMubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50QWN0aW9uLm1tOgorICAgICAgICAoK1tfV0tFbGVtZW50QWN0aW9uIF9lbGVtZW50
QWN0aW9uV2l0aFR5cGU6Y3VzdG9tVGl0bGU6YXNzaXN0YW50Ol0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKToKKworICAgICAgICBBZGQgYSBo
ZWxwZXIgbWV0aG9kLCBgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZWAsIHRvIGhhbmRsZSB0
aGUgbmV3IGNvbnRleHQgbWVudSBhY3Rpb247IGFkZGl0aW9uYWxseSwKKyAgICAgICAgaW50cm9k
dWNlIGFub3RoZXIgaGVscGVyIG1ldGhvZCwgYHJldmVhbEV4dHJhY3RlZEltYWdlSW5QcmV2aWV3
UGFuZWxgLCB0byBoYW5kbGUgdGhlIE1hYy1zcGVjaWZpYworICAgICAgICBgUUxQcmV2aWV3UGFu
ZWxgIGxvZ2ljIHdoZW4gaW52b2tpbmcgdGhlIG5ldyBpdGVtLiBTZWUgV2ViS2l0QWRkaXRpb25z
IGNoYW5nZXMgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJL
aXQ6Om1lbnVJdGVtSWRlbnRpZmllcik6CisKIDIwMjEtMDItMTUgIFRydWl0dCBTYXZlbGwgIDx0
c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3Mjg2
Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA3N2RjMWY4OTllYzYwODJiOGM4YWQ0
MmQ0OWE2MTU5OTc4NDgzNmYxLi5lZWViMTMyYWZlM2VlNDhkMjkxNDY4ODA2MzlhNGY3ZjhkN2E1
NmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEt
MDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFn
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkx
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTGVnYWN5IFdlYktpdCB3b24ndCBiZSBzdXBwb3J0
aW5nIHRoaXMgbmV3IGNvbnRleHQgbWVudSBhY3Rpb247IHNlZSBvdGhlciBDaGFuZ2VMb2cgZW50
cmllcyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5t
bToKKyAgICAgICAgKHRvVGFnKToKKwogMjAyMS0wMi0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBleHBsaWNpdCB1c2FnZSBvZiBbb2JqQyByZWxl
YXNlXSBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRMaW5r
aW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oCmluZGV4IGY4MGVlMGM3
Y2M2NjllYmZlMTRhYWIwM2U4ODlhNmQzOTJmYWE3YzMuLmQwOWE3OWM5NmFlZGJmODI0OTMwNDBl
NTNlZmFjZWUxNDRmYTM0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRM
aW5raW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvU29mdExpbmtpbmcuaApAQCAtMTEy
LDYgKzExMiwxMyBAQCBzdGF0aWMgdm9pZCogbGliIyNMaWJyYXJ5KCkgXAogICAgICAgICByZXR1
cm4gZnJhbWV3b3JrTGlicmFyeTsgXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfRlJBTUVX
T1JLX0lOX1VNQlJFTExBX09QVElPTkFMKHVtYnJlbGxhLCBmcmFtZXdvcmspIFwKKyAgICBzdGF0
aWMgdm9pZCogZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMg
dm9pZCogZnJhbWV3b3JrTGlicmFyeSA9IGRsb3BlbigiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvIiAjdW1icmVsbGEgIi5mcmFtZXdvcmsvRnJhbWV3b3Jrcy8iICNmcmFtZXdvcmsgIi5mcmFt
ZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05PVyk7IFwKKyAgICAgICAgcmV0dXJuIGZyYW1ld29y
a0xpYnJhcnk7IFwKKyAgICB9CisKICNkZWZpbmUgU09GVF9MSU5LKGZyYW1ld29yaywgZnVuY3Rp
b25OYW1lLCByZXN1bHRUeXBlLCBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMsIHBhcmFtZXRlck5hbWVz
KSBcCiAgICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKICAgICByZXN1bHRUeXBlIGZ1bmN0aW9uTmFt
ZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnM7IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA0YWVkNzFlN2VkMWUwNDYzNWVkMTdhNTYxOWQ1ZDhl
NzEwZTgwNDI1Li4yMGY0MzRmNmU4NjM3OWUzNjVkYjI2MjZjMTVhM2M2YTJjMTk4YWQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC01MTcs
NiArNTE3LDEwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmFw
cGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICAvLyBUaGlzIHNob3VsZCBi
ZSBoYW5kbGVkIGF0IHRoZSBjbGllbnQgbGF5ZXIuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
CkBAIC04MTAsNiArODE0LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRl
KCkKICAgICBDb250ZXh0TWVudUl0ZW0gU2VsZWN0QWxsSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGwsIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbCgpKTsKICAg
ICBDb250ZXh0TWVudUl0ZW0gSW5zZXJ0RW1vamlJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51
SXRlbVRhZ0luc2VydEVtb2ppLCBjb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9qaSgpKTsKICNl
bmRpZgorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIENvbnRleHRNZW51SXRlbSBS
ZXZlYWxJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2Us
IGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkpOworI2VuZGlmCiAKICNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBDb250ZXh0TWVudUl0ZW0gU2hhcmVNZW51SXRl
bTsKQEAgLTg1Niw4ICs4NjMsMTMgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVs
YXRlKCkKIAogICAgICAgICAgICAgYXBwZW5kSXRlbShPcGVuSW1hZ2VJbk5ld1dpbmRvd0l0ZW0s
IG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgYXBwZW5kSXRlbShEb3dubG9hZElt
YWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoaW1hZ2VVUkwu
aXNMb2NhbEZpbGUoKSB8fCBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmltYWdlKCkpCisgICAg
ICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUoKSB8fCBtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLmltYWdlKCkpIHsKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlJbWFnZUl0
ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOworCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
CisgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZXZlYWxJbWFnZUl0ZW0sIG1fY29udGV4dE1l
bnUuZ2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0oR1RLKQogICAg
ICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VVcmxJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKICNlbmRpZgpAQCAtMTQ1MCw2ICsxNDYyLDggQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAg
ICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlh
SGFzQXVkaW8oKTsKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gc2hvdWxkRW5hYmxlICYmICBt
X2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlhTXV0ZWQoKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgaXRlbS5zZXRDaGVja2VkKHNob3VsZENoZWNrKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IGFjYjdmNzUy
YmUxZTU1NDczNzExZTQyOGQ4YjNkZjZkNmNkMWZhZTguLjgzNzZhMWY2OTgwZTdiOWUxNGNjNmM5
MjdmYjY3ZTUyODQ0MjUwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmNwcApAQCAtMjQ2LDYgKzI0Niw3IEBAIGJvb2wgaXNWYWxpZENvbnRleHRNZW51QWN0
aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9u
OjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Z1bGxzY3JlZW46CiAgICAgY2FzZSBDb250
ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgIGNhc2UgQ29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxs
c2NyZWVuOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1Jl
dmVhbEltYWdlOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJh
c2VDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVt
TGFzdEN1c3RvbVRhZzoKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0
ZW1CYXNlQXBwbGljYXRpb25UYWc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oCmluZGV4IDI1ZTQzMWVlM2Y0MmUzMmEyYWY1YWRkMTA2MDJhNmQxMzBhNTA5MjEuLjE1
ZmE4N2RhNjA3NDlhMTc4OGZjMWYxOGMxNTEzNDAxMWE5NWIzODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNDksNiArMTQ5LDcgQEAgZW51bSBDb250
ZXh0TWVudUFjdGlvbiB7CiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJy
ZW50R3JvdXAsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCwK
ICNlbmRpZgorICAgIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlLAogICAgIENvbnRleHRN
ZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRNZW51SXRlbUxhc3RDdXN0
b21UYWcgPSA1OTk5LAogICAgIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyA9IDEw
MDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggODQ1
MWY1MTcwMTNmNTIzZTFhMjhkMGJjYjA3ZTY4NWQyODI2MTRhYy4uN2M0Mjg0ZWE0ZDA1YjY1NzE1
NTU2MmY4MWJlMjVjYmFhYjdiMjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaApAQCAtMzUwLDYgKzM1MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGdlbmVyaWNUb3VjaElEUHJvbXB0VGl0bGUoKTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCk7CisjZW5kaWYKKwogI2lmIFVT
RShHTElCKSAmJiBkZWZpbmVkKEdFVFRFWFRfUEFDS0FHRSkKICNkZWZpbmUgV0VCX1VJX1NUUklO
RyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoXyhzdHJpbmcp
KQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3JpcHRpb24pIFdl
YkNvcmU6OmxvY2FsaXplZFN0cmluZyhDXyhrZXksIHN0cmluZykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXgg
Y2JjMTAyMmIyMmFmNmE4MTU1NjM2NTNhMzkwNGFmMjYxZjhmZDNkZi4uZGYyYzIxYmRmNjk5MmFk
OWY1ZjhlMjBjMjgyMjE1YjBjNjk4NWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMzA2LDQgKzMwNiwx
MSBAQCBTdHJpbmcgZXhpdEZ1bGxTY3JlZW5CdXR0b25BY2Nlc3NpYmlsaXR5VGl0bGUoKQogfQog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkKK3sKKyAgICByZXR1cm4gbG9j
YWxpemVkTlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dl
YktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnCmluZGV4IDQyYjVkODk5ZWIwYWQ5Y2QwNTg3NjM4ODhjMDcyODA0OWU1MjkyMzkuLjExM2Yx
MDExNzczMzIxMjhhMTU2NjUyZDdmM2E2NzAyOTVkNDE4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC0xMTQsNiArMTE0LDggQEAgV0tfVU5J
Rk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfaXBob25lb3MgPSAkKFdLX1VOSUZPUk1fVFlQ
RV9JREVOVElGSUVSU19MREYKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX2lw
aG9uZXNpbXVsYXRvciA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MkKFdL
X0lPU18xNCkpOwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfbWFjY2F0YWx5
c3QgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTJChXS19JT1NfMTQpKTsK
IFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX0lPU19TSU5DRV8xNCA9IC1mcmFt
ZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKK1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVS
U19MREZMQUdTX21hY29zeCA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Mk
KFdLX01BQ09TXzEyMDApKTsKK1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX01B
Q09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmllcnM7CiAKIFdL
X1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1NfJChX
S19IQVZFX1VSTF9GT1JNQVRUSU5HKSk7CiBXS19VUkxfRk9STUFUVElOR19MREZMQUdTX1lFUyA9
IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaAppbmRleCA0MGM1OWIwYWFmOGM4ODZlOThi
ZGExMDgxZGQ2ZjRmNjczNjUwZjE3Li5jMWU5MzNlYjU2NWY3ZDQwM2Y2ODEzMzVmN2QzNGIxZmIw
YzhkZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRN
ZW51SXRlbVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0
TWVudUl0ZW1UeXBlcy5oCkBAIC0xMjUsNiArMTI1LDcgQEAgZW51bSB7CiAgICAga1dLQ29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4sCiAgICAga1dLQ29udGV4
dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXAsCiAgICAga1dLQ29udGV4dE1l
bnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCwKKyAgICBrV0tDb250ZXh0TWVudUl0ZW1U
YWdSZXZlYWxJbWFnZSwKICAgICBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcg
PSAxMDAwMAogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tDb250ZXh0TWVudUl0ZW1UYWc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDg0YzBjMmM4
M2I5ZjM5N2FhOTU4YTU4YmUxMmViZDNiNmIzOTUxNGYuLmNjY2U0ODkwZDUwYmNlYzZjMDhmYTU5
ZThlOTY1ZWU5NmEwNTE4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCkBAIC01NDUsNiArNTQ1LDggQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVt
VGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNlbmRpZgogICAg
IGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICByZXR1
cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OworICAgIGNhc2UgV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoYWN0aW9uIDwg
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnICYmICEoYWN0aW9uID49
IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgJiYgYWN0aW9uIDw9IFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcpKQogICAgICAgICAgICAgTE9HX0VSUk9S
KCJDb250ZXh0TWVudUFjdGlvbiAlaSBpcyBhbiB1bmtub3duIHRhZyBidXQgaXMgYmVsb3cgdGhl
IGFsbG93YWJsZSBjdXN0b20gdGFnIHZhbHVlIG9mICVpIiwgYWN0aW9uLCBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcpOwpAQCAtNzQ1LDYgKzc0Nyw4IEBAIGlubGlu
ZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVudUl0ZW1UYWcg
dGFnKQogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2VuZGlmCisgICAg
Y2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAgIGNhc2Uga1dLQ29udGV4
dE1lbnVJdGVtVGFnT3BlbkxpbmtJblRoaXNXaW5kb3c6CiAgICAgZGVmYXVsdDoKICAgICAgICAg
aWYgKHRhZyA8IGtXS0NvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyAmJiAhKHRhZyA+
PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICYmIHRhZyA8PSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvbnRleHRNZW51Q29udGV4dERhdGEuaAppbmRleCBhMzRhNWVhNDFlYjFjZTk5ZmI0NWE5NDIx
MGQ1ZjU0MGZmOTlhNGQ4Li5mN2QwZmUxZGVkN2EyMDE4N2E5MDdkYWQ5YWMwZTYyYzg2Mzg2MzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCkBA
IC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVu
dUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tZW51TG9jYXRpb247IH0KICAgICBjb25zdCBW
ZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zKCkgY29uc3Qg
eyByZXR1cm4gbV9tZW51SXRlbXM7IH0KIAorICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhJiB3ZWJI
aXRUZXN0UmVzdWx0RGF0YSgpIHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJlc3VsdERhdGE7IH0KICAg
ICBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJlc3VsdERhdGEoKSBjb25z
dCB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOyB9CiAgICAgY29uc3QgU3RyaW5nJiBz
ZWxlY3RlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGVkVGV4dDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZp
ZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVu
dGlmaWVycy5tbQppbmRleCAyNjQyMzc5Y2FkZWY3Y2M5ZTYzZmMwOTU1YmEwMWUzMDEwMGY3ZGVl
Li5jMmE5NGMzY2M0OTAwMjMzNzU4ZTA1ZDQ1YTljYWQzZjY5YjRiNmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRp
ZmllcnMubW0KQEAgLTQ3LDYgKzQ3LDcgQEAgTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93ID0gQCJXS01lbnVJdGVtSWRlbnRpZmkKIE5TU3Ry
aW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3cgPSBA
IldLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3ciOwogTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJQ
YXN0ZSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCA9IEAi
V0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQiOworTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJSZXZlYWxJbWFnZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJSZXZlYWxJbWFn
ZSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNlYXJjaFdlYiA9IEAi
V0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51
SXRlbUlkZW50aWZpZXJTaG93SGlkZU1lZGlhQ29udHJvbHMgPSBAIldLTWVudUl0ZW1JZGVudGlm
aWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIjsKIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyVG9nZ2xlRW5oYW5jZWRGdWxsU2NyZWVuID0gQCJXS01lbnVJdGVtSWRlbnRpZmll
clRvZ2dsZUVuaGFuY2VkRnVsbFNjcmVlbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUu
aAppbmRleCAzMzk2OGFhMDY4ZjVmMjBjZTI4YzRjZGM0ZTAxNzc1YWIwMzM5Mjg3Li42OTZlYWIy
OWJiYzRlMWU2OGViNmNiZjNhOTFkMjBkYjdlMzUzNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmll
cnNQcml2YXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rSW5OZXdXaW5kb3cgV0tfQVAKIFdL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVu
TWVkaWFJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJQYXN0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2UgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIFdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hX
ZWIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRp
YUNvbnRyb2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2ds
ZUVuaGFuY2VkRnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50QWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Vs
ZW1lbnRBY3Rpb24ubW0KaW5kZXggYTE0Mjg2OWU2M2VmNmRmYzY1M2FmNDkzYzU2YzlmNzBjNThj
NjIwYy4uZmIwOTM5MDhjOTcwODUwMWE5N2MyZmYyY2Q4MDkwNzZjYjczZThmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24u
bW0KQEAgLTE3MSw3ICsxNzEsNyBAQCArIChpbnN0YW5jZXR5cGUpX2VsZW1lbnRBY3Rpb25XaXRo
VHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBjdXN0b21UaXRsZTooTgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6CiAjaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHRpdGxlID0gV2ViQ29yZTo6bG9jYWxpemVk
TlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKKyAgICAgICAgdGl0bGUgPSBXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwogICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rp
b25JbmZvKSB7CiAgICAgICAgICAgICBbYXNzaXN0YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRo
VHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9uSW5mbyBuZWVkc0ludGVyYWN0aW9uOllFU107CiAgICAg
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdl
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94
eUNvY29hLm1tCmluZGV4IGUxNWYxMGNhMjAxNTkyMGExNDJlNmRlYWNkNjIyNWQ0NjllYzg1MDgu
LjNkNWE4OGIyMjNiOWVhMWJjOWFkYzBlNGVkMjg5MDdkODIwNzdkY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC03Niw2
ICs3NiwxMCBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lz
KTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRv
cik7CiAjZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJL
aXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5Q29jb2FBZGRpdGlvbnNCZWZvcmUubW0+CisjZW5kaWYK
KwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFz
c2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19D
T01QTEVUSU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9O
X0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBjb21wbGV0aW9uKQogCkBA
IC01NzAsNiArNTc0LDE5IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFdlYlBhZ2VQ
cm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiAgICAgcmV0dXJuIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5KCk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhU
UkFDVElPTikgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCkKK3sKKyAgICBhdXRvJiByZXN1bHQgPSBtX2Fj
dGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKKyAgICBp
ZiAoIXJlc3VsdC5pbWFnZUJpdG1hcCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmV2ZWFsRXh0
cmFjdGVkSW1hZ2VJblByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9v
bFRpcFRleHQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pICYmIEVO
QUJMRShDT05URVhUX01FTlVTKQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5v
d1BsYXlpbmdTZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGJvb2wsIGNv
bnN0IFN0cmluZyYsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdCk+JiYgY2FsbGJhY2spCiB7CiAg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWN0aXZlTm93
UGxheWluZ1Nlc3Npb25JbmZvKCksIFdURk1vdmUoY2FsbGJhY2spKTsKQEAgLTU3Nyw1ICs1OTQs
OSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
byhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2Vi
UGFnZVByb3h5Q29jb2FBZGRpdGlvbnNBZnRlci5tbT4KKyNlbmRpZgorCiAjdW5kZWYgTUVTU0FH
RV9DSEVDS19DT01QTEVUSU9OCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTI1YmNhOWNmYWQ2YWJkYjE2ZjA2YTJkZmUw
ZTdhYzg1N2NmNjczNi4uNjdjNjU4ZTI2MTZiOWQ2YjcxYzkzZDc1MGIxNDVjNmVlZDQ5YzY2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NTYzLDkwICs2
NTYzLDExMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29u
c3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorICAgIHN0cnVjdCBEb3dubG9hZEluZm8geworICAgICAgICBTdHJpbmcgdXJsOworICAgICAg
ICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWU7CisgICAgfTsKKyAgICBPcHRpb25hbDxEb3dubG9h
ZEluZm8+IGRvd25sb2FkSW5mbzsKKworICAgIHN3aXRjaCAoaXRlbS5hY3Rpb24oKSkgewogI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRl
bVRhZ1NtYXJ0Q29weVBhc3RlKSB7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydENv
cHlQYXN0ZToKICAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFpc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRl
bS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlcykgeworCisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlczoKICAgICAgICAgVGV4dENoZWNrZXI6OnNl
dEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCku
aXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3Mt
PnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlcykgeworCisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlczoKICAgICAgICAgVGV4dENoZWNr
ZXI6OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3Rh
dGUoKS5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9j
ZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rcykgewor
CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzOgogICAgICAgICBUZXh0Q2hl
Y2tlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0
ZSgpLmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3Mt
PnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFjZW1lbnQpIHsK
KworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50OgogICAgICAgICBU
ZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCghVGV4dENoZWNr
ZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKTsKICAgICAgICAg
bV9wcm9jZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNw
ZWxsaW5nQXV0b21hdGljYWxseSkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3Jy
ZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5OgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51cGRh
dGVUZXh0Q2hlY2tlclN0YXRlKCk7Ci0gICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLSAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9u
cykgeworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Nob3dT
dWJzdGl0dXRpb25zOgogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3Vic3RpdHV0aW9uc1Bh
bmVsSXNTaG93aW5nKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAjZW5kaWYKLSAgICBzdHJ1
Y3QgRG93bmxvYWRJbmZvIHsKLSAgICAgICAgU3RyaW5nIHVybDsKLSAgICAgICAgU3RyaW5nIHN1
Z2dlc3RlZEZpbGVuYW1lOwotICAgIH07Ci0gICAgT3B0aW9uYWw8RG93bmxvYWRJbmZvPiBkb3du
bG9hZEluZm87Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRJbWFnZVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJ
bWFnZVRvRGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0TWVu
dUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVJbWFnZVVSTCwgeyB9
IH19OwotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
TGlua1RvRGlzaykgeworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnRG93bmxvYWRMaW5rVG9EaXNrOiB7CiAgICAgICAgIGF1dG8mIGhpdFRlc3RSZXN1bHQgPSBt
X2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKICAg
ICAgICAgZG93bmxvYWRJbmZvID0ge3sgaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwsIGhp
dFRlc3RSZXN1bHQubGlua1N1Z2dlc3RlZEZpbGVuYW1lIH19OworICAgICAgICBicmVhazsKICAg
ICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRN
ZWRpYVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRNZWRpYVRv
RGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0TWVudUNvbnRl
eHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVNZWRpYVVSTCwgeyB9IH19Owot
ICAgIGlmIChkb3dubG9hZEluZm8pIHsKLSAgICAgICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nl
c3MtPnByb2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0YVN0b3JlLCB0aGlzLCBVUkwo
VVJMKCksIGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZvLT5zdWdnZXN0ZWRGaWxlbmFt
ZSk7Ci0gICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoYXV0byogZG93bmxvYWQpIHsKLSAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMgfHwgIWRvd25sb2FkKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+Y29udGV4dE1lbnVEaWRDcmVhdGVEb3dubG9hZCgq
dGhpcywgKmRvd25sb2FkKTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlv
bigpID09IENvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZykgeworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1do
aWxlVHlwaW5nOgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCk7CiAgICAgICAgIG1fcHJvY2Vzcy0+dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwog
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZykgeworCisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6CiAgICAgICAgIFRleHRDaGVja2Vy
OjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0dyYW1t
YXJDaGVja2luZ0VuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0ZVRleHRDaGVja2Vy
U3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCkgeworCisgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbDoKICAgICAgICAgaWYgKCFUZXh0Q2hlY2tl
cjo6c3BlbGxpbmdVSUlzU2hvd2luZygpKQogICAgICAgICAgICAgYWR2YW5jZVRvTmV4dE1pc3Nw
ZWxsaW5nKHRydWUpOwogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hv
d2luZygpOwogICAgICAgICByZXR1cm47Ci0gICAgfQorCiAjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hs
aWdodFRvTmV3R3JvdXApIHsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdo
dFRvTmV3R3JvdXA6CiAgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShD
cmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodDo6WWVzKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRU
b0N1cnJlbnRHcm91cCkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGln
aHRUb0N1cnJlbnRHcm91cDoKICAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJh
bmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpObyk7CiAgICAgICAgIHJldHVybjsKLSAg
ICB9CiAjZW5kaWYKLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdM
ZWFyblNwZWxsaW5nIHx8IGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnSWdub3Jl
U3BlbGxpbmcpCisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmc6Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZzoKICAgICAgICAgKyttX3Bl
bmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorICAgICAgICBoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgaWYgKGRvd25sb2FkSW5mbykgeworICAgICAgICBhdXRvJiBkb3dubG9hZCA9IG1f
cHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5kb3dubG9hZChtX3dlYnNpdGVEYXRhU3RvcmUsIHRoaXMs
IFVSTChVUkwoKSwgZG93bmxvYWRJbmZvLT51cmwpLCBkb3dubG9hZEluZm8tPnN1Z2dlc3RlZEZp
bGVuYW1lKTsKKyAgICAgICAgZG93bmxvYWQuc2V0RGlkU3RhcnRDYWxsYmFjayhbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChhdXRvKiBkb3dubG9hZCkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhZG93bmxvYWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZXh0TWVudURpZENyZWF0ZURvd25s
b2FkKCp0aGlzLCAqZG93bmxvYWQpOworICAgICAgICB9KTsKKyAgICB9CiAKICAgICBwbGF0Zm9y
bURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoaXRlbSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzE0ZGEzNTRhNzRjYjE5ZWNhNDE3YzQ0ZTY4
OTQ4ZDkwZGJhYjczOC4uZjhmNGU2MWNmMzM2YTIxMjFjYTliNmRmMGQzNmE4NzFkZTI5NmY3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExMyw2ICsxMTMsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0Zp
bGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgpAQCAtMTg0LDYgKzE4NSwxMCBAQCBpbnRl
cmZhY2UgSUQzRDExRGV2aWNlMTsKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbklkZW50
aWZpZXIuaD4KICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnNCZWZvcmUuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7
CkBAIC0xODM5LDYgKzE4NDQsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaFdoZWVs
RXZlbnRXaXRob3V0U2Nyb2xsaW5nKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1h
Z2UoKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VFeHRyYWN0aW9uUHJldmlldygpOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkm
LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoKTsKQEAgLTI4OTQsNiArMjkwNCwxMCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX3N1
c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlciB7IDAgfTsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50OworCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJQ
YWdlUHJveHlBZGRpdGlvbnNBZnRlci5oPgorI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRN
ZW51UHJveHlNYWMubW0KaW5kZXggZmJjOTRlODZjNzQzMmZlZDEzYTE1NDNiYWFjZDcxNGQ0Nzcz
YTJjMy4uOGYyYTdkNDZjNTM5ODE4YTU4YWRkNGJhODA4ZGM2MWFiNDkzNjUzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
bW0KQEAgLTQ0NSw2ICs0NDUsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKm1lbnVJdGVtSWRlbnRpZmll
cihjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdSZWxvYWQ6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZp
ZXJSZWxvYWQ7CiAKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAg
ICAgICByZXR1cm4gX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2U7CisKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYjoKICAgICAgICAgcmV0dXJuIF9XS01lbnVJdGVt
SWRlbnRpZmllclNlYXJjaFdlYjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMTc0ZmQzNGIwMzVjMTllN2M3ZDA0ZDIxMGNmNzljZmI5
NTMzOTJmMi4uNDVhZTNkMGNhNDZiYWVhZTNmNTEyMTc0Njc2NWIyZmU1ZThhMDZhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MTQs
NiArNjE0LDggQEAgc3RhdGljIE9wdGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm4gV2ViTWVudUl0ZW1UYWdTaGFy
ZU1lbnU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVs
bHNjcmVlbjoKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNl
ZEZ1bGxzY3JlZW47CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtQmFz
ZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAgICAgICAgLy8g
V2UganVzdCBwYXNzIHRoZXNlIHRocm91Z2guCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGY2MWEwMzY5ODYzMDFmYzQ4MDdjMmIwODhlZTU2ZTY4
YzZlNjZlMy4uY2Q5OGY4ZDg3ZmRlMDE0NGU3ZDE1MmUzMGQxODJkMDhhMDkxOGViMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTAyLTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFttYWNPU10gSW50cm9kdWNlIGEgbmV3IGNvbnRleHQgbWVudSBpdGVtIHRvIHBy
ZXZpZXcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE5MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzYzNTc4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlYmFzZWxpbmUgYW4gZXhpc3Rp
bmcgQVBJIHRlc3QsIHNpbmNlIGBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZWAgaXMgbm93
IHRoZSBsYXN0IHZhbGlkIGVudW0uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisKIDIwMjEtMDItMTUgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtld3NdIEFkZCBweXRob24gMyBzdXBwb3J0IC0gcGFydCAyCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0aW9uLmNw
cAppbmRleCBlNzllNDg5Y2E4MzdhMDg5MDNjODkyMjE1YTFiNGRlNTY0NzA1OGZiLi4zNDA2ZmMx
OGVkZDE1YTY0OGVhZTA3NTRlYTc4OTNhZjkyYjUyNzg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZXh0TWVudUFjdGlvbi5jcHAKQEAgLTM3
LDkgKzM3LDkgQEAgVEVTVChXZWJDb3JlLCBDb250ZXh0TWVudUFjdGlvbl9Jc1ZhbGlkRW51bSkK
ICAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0
aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rp
b24pKTsKICAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRN
ZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFn
Tm9BY3Rpb24gKyAxKSk7CiAKLSAgICBFWFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4gLSAxKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2Vi
Q29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5o
YW5jZWRGdWxsc2NyZWVuKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURjo6aXNWYWxpZEVudW08V2Vi
Q29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbiArIDEpKTsKKyAgICBF
WFBFQ1RfVFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihX
ZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2Ug
LSAxKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0
TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRh
Z1JldmVhbEltYWdlKSk7CisgICAgRVhQRUNUX0ZBTFNFKFdURjo6aXNWYWxpZEVudW08V2ViQ29y
ZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSArIDEpKTsKIAogICAgIEVYUEVDVF9GQUxTRShXVEY6Omlz
VmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVu
dUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAtIDEpKTsKICAgICBFWFBFQ1Rf
VFJVRShXVEY6OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZykpOwo=
</data>
<flag name="review"
          id="438946"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420599</attachid>
            <date>2021-02-16 22:47:45 -0800</date>
            <delta_ts>2021-02-16 23:27:06 -0800</delta_ts>
            <desc>For landing</desc>
            <filename>bug-221917-20210216224744.patch</filename>
            <type>text/plain</type>
            <size>31923</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ1YTFjOGJmNTc0ZDdiMzc3YWVmZTNj
YTRhNDc0OWM2NmVhMGQzYzQuLmE4MTFhNDcwNDE4NmE2NWEyMDc4NmVmYzUwOTU2YzRhYTRkMmVj
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29u
dGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIFRpbSBIb3J0
b24uCisKKyAgICAgICAgQWRkIGEgbmV3IHNvZnQtbGlua2luZyBtYWNybyB0byBvcHRpb25hbGx5
IGxpbmsgYWdhaW5zdCBhbiB1bWJyZWxsYSBmcmFtZXdvcmsuCisKKyAgICAgICAgKiB3dGYvY29j
b2EvU29mdExpbmtpbmcuaDoKKwogMjAyMS0wMi0xNSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2Zm
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQVJNNjRdIENoYW5nZSBicmVhayBpbnN0cnVjdGlvbiBj
b21tZW50IHRvIGluZGljYXRlIHBvc3NpYmxlIHNlY3VyaXR5IGZhaWx1cmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkYjA1YTEwZDk3ZDkxNWRiYzg4OTBkN2E2MTRhM2QxZTAyMTg3NjA5Li5kYzMwZDM2MmY5OGZl
OTMzMzVkZGY5YzkzYzE1YWZiNGFlODJhODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcHJldmll
dyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIHBsdW1i
aW5nIGZvciBhIG5ldyBjb250ZXh0IG1lbnUgdGFnLCBgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2VgLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gaW52b2tlIGEgc3BlY2lhbAorICAgICAgICB0
eXBlIG9mIFF1aWNrTG9vayBwcmV2aWV3IGZvciBleHRyYWN0ZWQgaW1hZ2VzIHdoZW4gdGhlIHJl
bGV2YW50IGFjY2Vzc2liaWxpdHkgZmVhdHVyZXMgYXJlIGVuYWJsZWQuCisKKyAgICAgICAgKiBw
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
c1ZhbGlkQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSk6CisKIDIwMjEtMDItMTUgIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDb25u
ZWN0IFRvdWNoIEJhciB0byBNZWRpYVNlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGYzNWQxNzJmMjZlOWRl
ZDFlNjBiMzVmZGFjYWJmNDNmNmU5ZTNiMS4uMTI2Mjk0ZjIxYjcxNTRkNjdkMGNiYmNlODY5YjQ4
MjFjODQ2MDllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMS0wMi0xNSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEludHJv
ZHVjZSBhIG5ldyBjb250ZXh0IG1lbnUgaXRlbSB0byBwcmV2aWV3IGltYWdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTE3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM2MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ciBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gc3VwcG9ydCB0aGUg
YENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCBhY3Rpb24sIGFzIHdlbGwgYXMgc29tZSBX
ZWJLaXRBZGRpdGlvbnMgZXh0ZW5zaW9uCisgICAgICAgIHBvaW50cy4gU2VlIGJlbG93IGZvciBt
b3JlIGRldGFpbHMuIFRoaXMgcGF0Y2ggd2FzIG1vc3RseSB3cml0dGVuIGJ5IERldmluIFJvdXNz
bywgd2l0aCBzb21lIGFkanVzdG1lbnRzIGZyb20KKyAgICAgICAgbWUuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisKKyAgICAgICAgTGluayBhZ2FpbnN0IFVu
aWZvcm1UeXBlSWRlbnRpZmllcnMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb250ZXh0
TWVudUl0ZW1UeXBlcy5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0b0ltcGwpOgor
CisgICAgICAgIEFkZCBga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2VgLCBhbmQgYWRk
IGhlbHBlcnMgdG8gY29udmVydCBmcm9tIGBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZl
YWxJbWFnZWAKKyAgICAgICAgdG8gYGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCBh
bmQgdmljZSB2ZXJzYS4KKworICAgICAgICAqIFNoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRh
Lmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OndlYkhpdFRlc3RS
ZXN1bHREYXRhKToKKworICAgICAgICBBZGQgYSBub24tY29uc3QgdmVyc2lvbiBvZiBgd2ViSGl0
VGVzdFJlc3VsdERhdGEoKWAsIHNvIHRoYXQgd2UgY2FuIGdlbmVyYXRlIGEgYENHSW1hZ2VgIHVz
aW5nCisgICAgICAgIGBXZWJIaXRUZXN0UmVzdWx0RGF0YWAncyBiaXRtYXAgZGF0YS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1tOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbToKKyAg
ICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOmN1c3RvbVRp
dGxlOmFzc2lzdGFudDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1l
bnVSZXZlYWxJbWFnZSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCwgYGhhbmRsZUNv
bnRleHRNZW51UmV2ZWFsSW1hZ2VgLCB0byBoYW5kbGUgdGhlIG5ldyBjb250ZXh0IG1lbnUgYWN0
aW9uOyBhZGRpdGlvbmFsbHksCisgICAgICAgIGludHJvZHVjZSBhbm90aGVyIGhlbHBlciBtZXRo
b2QsIGByZXZlYWxFeHRyYWN0ZWRJbWFnZUluUHJldmlld1BhbmVsYCwgdG8gaGFuZGxlIHRoZSBN
YWMtc3BlY2lmaWMKKyAgICAgICAgYFFMUHJldmlld1BhbmVsYCBsb2dpYyB3aGVuIGludm9raW5n
IHRoZSBuZXcgaXRlbS4gU2VlIFdlYktpdEFkZGl0aW9ucyBjaGFuZ2VzIGZvciBtb3JlIGRldGFp
bC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIp
OgorCiAyMDIxLTAyLTE1ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzI4NjcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggNzdkYzFmODk5ZWM2MDgyYjhjOGFkNDJkNDlhNjE1OTk3ODQ4MzZmMS4uYmEx
ODIyODhjOGJiZDM2ZjQzZjhhZDA3OWE3ZGI3ODdiOGNhNDEyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTE1ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW50cm9kdWNlIGEgbmV3
IGNvbnRleHQgbWVudSBpdGVtIHRvIHByZXZpZXcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc0MzYzNTc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyIGFuZCBUaW0g
SG9ydG9uLgorCisgICAgICAgIExlZ2FjeSBXZWJLaXQgd29uJ3QgYmUgc3VwcG9ydGluZyB0aGlz
IG5ldyBjb250ZXh0IG1lbnUgYWN0aW9uOyBzZWUgb3RoZXIgQ2hhbmdlTG9nIGVudHJpZXMgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAg
ICAgICh0b1RhZyk6CisKIDIwMjEtMDItMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZWR1Y2UgZXhwbGljaXQgdXNhZ2Ugb2YgW29iakMgcmVsZWFzZV0gaW4g
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oIGIv
U291cmNlL1dURi93dGYvY29jb2EvU29mdExpbmtpbmcuaAppbmRleCBmODBlZTBjN2NjNjY5ZWJm
ZTE0YWFiMDNlODg5YTZkMzkyZmFhN2MzLi5kMDlhNzljOTZhZWRiZjgyNDkzMDQwZTUzZWZhY2Vl
MTQ0ZmEzNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRMaW5raW5nLmgKQEAgLTExMiw2ICsxMTIs
MTMgQEAgc3RhdGljIHZvaWQqIGxpYiMjTGlicmFyeSgpIFwKICAgICAgICAgcmV0dXJuIGZyYW1l
d29ya0xpYnJhcnk7IFwKICAgICB9CiAKKyNkZWZpbmUgU09GVF9MSU5LX0ZSQU1FV09SS19JTl9V
TUJSRUxMQV9PUFRJT05BTCh1bWJyZWxsYSwgZnJhbWV3b3JrKSBcCisgICAgc3RhdGljIHZvaWQq
IGZyYW1ld29yayMjTGlicmFyeSgpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIHZvaWQqIGZy
YW1ld29ya0xpYnJhcnkgPSBkbG9wZW4oIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzLyIgI3Vt
YnJlbGxhICIuZnJhbWV3b3JrL0ZyYW1ld29ya3MvIiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIg
I2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAgICAgIHJldHVybiBmcmFtZXdvcmtMaWJyYXJ5
OyBcCisgICAgfQorCiAjZGVmaW5lIFNPRlRfTElOSyhmcmFtZXdvcmssIGZ1bmN0aW9uTmFtZSwg
cmVzdWx0VHlwZSwgcGFyYW1ldGVyRGVjbGFyYXRpb25zLCBwYXJhbWV0ZXJOYW1lcykgXAogICAg
IFdURl9FWFRFUk5fQ19CRUdJTiBcCiAgICAgcmVzdWx0VHlwZSBmdW5jdGlvbk5hbWUgcGFyYW1l
dGVyRGVjbGFyYXRpb25zOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAKaW5kZXggNGFlZDcxZTdlZDFlMDQ2MzVlZDE3YTU2MTlkNWQ4ZTcxMGU4MDQy
NS4uMjBmNDM0ZjZlODYzNzllMzY1ZGIyNjI2YzE1YTNjNmEyYzE5OGFkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNTE3LDYgKzUxNywx
MCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
RGljdGF0aW9uQWx0ZXJuYXRpdmU6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5hcHBseURpY3Rh
dGlvbkFsdGVybmF0aXZlKHRpdGxlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgaGFuZGxl
ZCBhdCB0aGUgY2xpZW50IGxheWVyLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtODEw
LDYgKzgxNCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAg
Q29udGV4dE1lbnVJdGVtIFNlbGVjdEFsbEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVt
VGFnU2VsZWN0QWxsLCBjb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwoKSk7CiAgICAgQ29udGV4
dE1lbnVJdGVtIEluc2VydEVtb2ppSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdJ
bnNlcnRFbW9qaSwgY29udGV4dE1lbnVJdGVtVGFnSW5zZXJ0RW1vamkoKSk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICBDb250ZXh0TWVudUl0ZW0gUmV2ZWFsSW1h
Z2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlLCBjb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXSU4pCiAgICAgQ29udGV4dE1lbnVJdGVtIFNoYXJlTWVudUl0ZW07CkBAIC04
NTYsOCArODYzLDEzIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAK
ICAgICAgICAgICAgIGFwcGVuZEl0ZW0oT3BlbkltYWdlSW5OZXdXaW5kb3dJdGVtLCBtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICAgICAgICAgIGFwcGVuZEl0ZW0oRG93bmxvYWRJbWFnZUl0ZW0s
IG1fY29udGV4dE1lbnUuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKGltYWdlVVJMLmlzTG9jYWxG
aWxlKCkgfHwgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pbWFnZSgpKQorICAgICAgICAgICAg
aWYgKGltYWdlVVJMLmlzTG9jYWxGaWxlKCkgfHwgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5p
bWFnZSgpKSB7CiAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VJdGVtLCBtX2Nv
bnRleHRNZW51LmdldCgpKTsKKworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgICAg
ICAgICAgICAgIGFwcGVuZEl0ZW0oUmV2ZWFsSW1hZ2VJdGVtLCBtX2NvbnRleHRNZW51LmdldCgp
KTsKKyNlbmRpZgorICAgICAgICAgICAgfQogI2lmIFBMQVRGT1JNKEdUSykKICAgICAgICAgICAg
IGFwcGVuZEl0ZW0oQ29weUltYWdlVXJsSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAjZW5k
aWYKQEAgLTE0NTAsNiArMTQ2Miw4IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVj
a09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICAg
ICAgc2hvdWxkRW5hYmxlID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5tZWRpYUhhc0F1ZGlv
KCk7CiAgICAgICAgICAgICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAgbV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5tZWRpYU11dGVkKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIGl0ZW0uc2V0Q2hlY2tlZChzaG91bGRDaGVjayk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAppbmRleCBhY2I3Zjc1MmJlMWU1NTQ3
MzcxMWU0MjhkOGIzZGY2ZDZjZDFmYWU4Li44Mzc2YTFmNjk4MGU3YjllMTRjYzZjOTI3ZmI2N2U1
Mjg0NDI1MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5j
cHAKQEAgLTI0Niw2ICsyNDYsNyBAQCBib29sIGlzVmFsaWRDb250ZXh0TWVudUFjdGlvbihDb250
ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9GdWxsc2NyZWVuOgogICAgIGNhc2UgQ29udGV4dE1lbnVB
Y3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICBjYXNlIENvbnRleHRNZW51
QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbjoK
KyAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFn
ZToKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9t
VGFnOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUxhc3RDdXN0
b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtQmFzZUFw
cGxpY2F0aW9uVGFnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4
dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApp
bmRleCAyNWU0MzFlZTNmNDJlMzJhMmFmNWFkZDEwNjAyYTZkMTMwYTUwOTIxLi4xNWZhODdkYTYw
NzQ5YTE3ODhmYzFmMThjMTUxMzQwMTFhOTViMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTQ5LDYgKzE0OSw3IEBAIGVudW0gQ29udGV4dE1lbnVB
Y3Rpb24gewogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVudEdyb3Vw
LAogICAgIENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3R3JvdXAsCiAjZW5kaWYK
KyAgICBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSwKICAgICBDb250ZXh0TWVudUl0ZW1C
YXNlQ3VzdG9tVGFnID0gNTAwMCwKICAgICBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnID0g
NTk5OSwKICAgICBDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgPSAxMDAwMApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IDg0NTFmNTE3MDEz
ZjUyM2UxYTI4ZDBiY2IwN2U2ODVkMjgyNjE0YWMuLjdjNDI4NGVhNGQwNWI2NTcxNTU1NjJmODFi
ZTI1Y2JhYWI3YjIzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmgKQEAgLTM1MCw2ICszNTAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBnZW5lcmljVG91Y2hJRFByb21wdFRpdGxlKCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOworI2VuZGlmCisKICNpZiBVU0UoR0xJQikg
JiYgZGVmaW5lZChHRVRURVhUX1BBQ0tBR0UpCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5n
LCBkZXNjcmlwdGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKF8oc3RyaW5nKSkKICNkZWZp
bmUgV0VCX1VJX1NUUklOR19LRVkoc3RyaW5nLCBrZXksIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjps
b2NhbGl6ZWRTdHJpbmcoQ18oa2V5LCBzdHJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCmluZGV4IGNiYzEwMjJi
MjJhZjZhODE1NTYzNjUzYTM5MDRhZjI2MWY4ZmQzZGYuLmRmMmMyMWJkZjY5OTJhZDlmNWY4ZTIw
YzI4MjIxNWIwYzY5ODVjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KQEAgLTMwNiw0ICszMDYsMTEgQEAgU3Ry
aW5nIGV4aXRGdWxsU2NyZWVuQnV0dG9uQWNjZXNzaWJpbGl0eVRpdGxlKCkKIH0KICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpCit7CisgICAgcmV0dXJuIGxvY2FsaXplZE5T
U3RyaW5nKEAiUmV2ZWFsIEltYWdlIik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRl
eCA0MmI1ZDg5OWViMGFkOWNkMDU4NzYzODg4YzA3MjgwNDllNTI5MjM5Li4xMTNmMTAxMTc3MzMy
MTI4YTE1NjY1MmQ3ZjNhNjcwMjk1ZDQxODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTE0LDYgKzExNCw4IEBAIFdLX1VOSUZPUk1fVFlQ
RV9JREVOVElGSUVSU19MREZMQUdTX2lwaG9uZW9zID0gJChXS19VTklGT1JNX1RZUEVfSURFTlRJ
RklFUlNfTERGCiBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19pcGhvbmVzaW11
bGF0b3IgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTJChXS19JT1NfMTQp
KTsKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX21hY2NhdGFseXN0ID0gJChX
S19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHUyQoV0tfSU9TXzE0KSk7CiBXS19VTklG
T1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19JT1NfU0lOQ0VfMTQgPSAtZnJhbWV3b3JrIFVu
aWZvcm1UeXBlSWRlbnRpZmllcnM7CitXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFH
U19tYWNvc3ggPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTJChXS19NQUNP
U18xMjAwKSk7CitXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19NQUNPU19TSU5D
RV8xMjAwID0gLWZyYW1ld29yayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzOwogCiBXS19VUkxfRk9S
TUFUVElOR19MREZMQUdTID0gJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTXyQoV0tfSEFWRV9V
UkxfRk9STUFUVElORykpOwogV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHU19ZRVMgPSAtZnJhbWV3
b3JrIFVSTEZvcm1hdHRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS0NvbnRleHRNZW51SXRlbVR5cGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S0NvbnRleHRNZW51SXRlbVR5cGVzLmgKaW5kZXggNDBjNTliMGFhZjhjODg2ZTk4YmRhMTA4MWRk
NmY0ZjY3MzY1MGYxNy4uYzFlOTMzZWI1NjVmN2Q0MDNmNjgxMzM1ZjdkMzRiMWZiMGM4ZGY0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1U
eXBlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVt
VHlwZXMuaApAQCAtMTI1LDYgKzEyNSw3IEBAIGVudW0gewogICAgIGtXS0NvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuLAogICAgIGtXS0NvbnRleHRNZW51SXRl
bVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVudEdyb3VwLAogICAgIGtXS0NvbnRleHRNZW51SXRlbVRh
Z0FkZEhpZ2hsaWdodFRvTmV3R3JvdXAsCisgICAga1dLQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFs
SW1hZ2UsCiAgICAga1dLQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnID0gMTAwMDAK
IH07CiB0eXBlZGVmIHVpbnQzMl90IFdLQ29udGV4dE1lbnVJdGVtVGFnOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCA4NGMwYzJjODNiOWYzOTdh
YTk1OGE1OGJlMTJlYmQzYjZiMzk1MTRmLi5jY2NlNDg5MGQ1MGJjZWM2YzA4ZmE1OWU4ZTk2NWVl
OTZhMDUxOGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaApAQCAtNTQ1LDYgKzU0NSw4IEBAIGlubGluZSBXS0NvbnRleHRNZW51SXRlbVRhZyB0b0FQ
SShXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAjZW5kaWYKICAgICBjYXNlIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICAgICAgcmV0dXJuIGtXS0Nv
bnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFn
UmV2ZWFsSW1hZ2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKGFjdGlvbiA8IFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyAmJiAhKGFjdGlvbiA+PSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICYmIGFjdGlvbiA8PSBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKSkKICAgICAgICAgICAgIExPR19FUlJPUigiQ29udGV4
dE1lbnVBY3Rpb24gJWkgaXMgYW4gdW5rbm93biB0YWcgYnV0IGlzIGJlbG93IHRoZSBhbGxvd2Fi
bGUgY3VzdG9tIHRhZyB2YWx1ZSBvZiAlaSIsIGFjdGlvbiwgV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtQmFzZUFwcGxpY2F0aW9uVGFnKTsKQEAgLTc0NSw2ICs3NDcsOCBAQCBpbmxpbmUgV2ViQ29y
ZTo6Q29udGV4dE1lbnVBY3Rpb24gdG9JbXBsKFdLQ29udGV4dE1lbnVJdGVtVGFnIHRhZykKICAg
ICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudToKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NoYXJlTWVudTsKICNlbmRpZgorICAgIGNhc2Uga1dL
Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZTsKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRl
bVRhZ09wZW5MaW5rSW5UaGlzV2luZG93OgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICh0YWcg
PCBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcgJiYgISh0YWcgPj0gV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyAmJiB0YWcgPD0gV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtTGFzdEN1c3RvbVRhZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0
TWVudUNvbnRleHREYXRhLmgKaW5kZXggYTM0YTVlYTQxZWIxY2U5OWZiNDVhOTQyMTBkNWY1NDBm
Zjk5YTRkOC4uZjdkMGZlMWRlZDdhMjAxODdhOTA3ZGFkOWFjMGU2MmM4NjM4NjMwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaApAQCAtNTgsNiAr
NTgsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fbWVudUxvY2F0aW9uOyB9CiAgICAgY29uc3QgVmVjdG9yPFdl
YktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1lbnVJdGVtcygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVudUl0ZW1zOyB9CiAKKyAgICBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJl
c3VsdERhdGEoKSB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOyB9CiAgICAgY29uc3Qg
V2ViSGl0VGVzdFJlc3VsdERhdGEmIHdlYkhpdFRlc3RSZXN1bHREYXRhKCkgY29uc3QgeyByZXR1
cm4gbV93ZWJIaXRUZXN0UmVzdWx0RGF0YTsgfQogICAgIGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRU
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZFRleHQ7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVycy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnMu
bW0KaW5kZXggMjY0MjM3OWNhZGVmN2NjOWU2M2ZjMDk1NWJhMDFlMzAxMDBmN2RlZS4uYzJhOTRj
M2NjNDkwMDIzMzc1OGUwNWQ0NWE5Y2FkM2Y2OWI0YjZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVycy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1t
CkBAIC00Nyw2ICs0Nyw3IEBAIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
T3BlbkxpbmtJbk5ld1dpbmRvdyA9IEAiV0tNZW51SXRlbUlkZW50aWZpCiBOU1N0cmluZyAqIGNv
bnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5NZWRpYUluTmV3V2luZG93ID0gQCJXS01lbnVJ
dGVtSWRlbnRpZmllck9wZW5NZWRpYUluTmV3V2luZG93IjsKIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyUGFzdGUgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyUGFzdGUiOwog
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQgPSBAIldLTWVudUl0
ZW1JZGVudGlmaWVyUmVsb2FkIjsKK05TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyUmV2ZWFsSW1hZ2UgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2UiOwogTlNT
dHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIgPSBAIldLTWVudUl0
ZW1JZGVudGlmaWVyU2VhcmNoV2ViIjsKIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzID0gQCJXS01lbnVJdGVtSWRlbnRpZmllclNob3dI
aWRlTWVkaWFDb250cm9scyI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
clRvZ2dsZUVuaGFuY2VkRnVsbFNjcmVlbiA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVF
bmhhbmNlZEZ1bGxTY3JlZW4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgKaW5kZXgg
MzM5NjhhYTA2OGY1ZjIwY2UyOGM0Y2RjNGUwMTc3NWFiMDMzOTI4Ny4uNjk2ZWFiMjliYmM0ZTFl
NjhlYjZjYmYzYTkxZDIwZGI3ZTM1MzczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0
ZS5oCkBAIC00Niw2ICs0Niw3IEBAIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93IFdLX0FQCiBXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5O
ZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUGFzdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmVsb2FkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2VhcmNoV2ViIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNob3dIaWRlTWVkaWFDb250cm9s
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVFbmhhbmNl
ZEZ1bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0
aW9uLm1tCmluZGV4IGExNDI4NjllNjNlZjZkZmM2NTNhZjQ5M2M1NmM5ZjcwYzU4YzYyMGMuLmZi
MDkzOTA4Yzk3MDg1MDFhOTdjMmZmMmNkODA5MDc2Y2I3M2U4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCkBAIC0x
NzEsNyArMTcxLDcgQEAgKyAoaW5zdGFuY2V0eXBlKV9lbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9X
S0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgY3VzdG9tVGl0bGU6KE4KICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVJldmVhbEltYWdlOgogI2lmIEVOQUJMRShJTUFH
RV9FWFRSQUNUSU9OKQotICAgICAgICB0aXRsZSA9IFdlYkNvcmU6OmxvY2FsaXplZE5TU3RyaW5n
KEAiUmV2ZWFsIEltYWdlIik7CisgICAgICAgIHRpdGxlID0gV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnUmV2ZWFsSW1hZ2UoKTsKICAgICAgICAgaGFuZGxlciA9IF4oV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqYXNzaXN0YW50LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykg
ewogICAgICAgICAgICAgW2Fzc2lzdGFudCBoYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6dHlw
ZSBlbGVtZW50OmFjdGlvbkluZm8gbmVlZHNJbnRlcmFjdGlvbjpZRVNdOwogICAgICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bQppbmRleCBlMTVmMTBjYTIwMTU5MjBhMTQyZTZkZWFjZDYyMjVkNDY5ZWM4NTA4Li4zZDVhODhi
MjIzYjllYTFiYzlhZGMwZTRlZDI4OTA3ZDgyMDc3ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNzYsNiArNzYsMTAg
QEAgU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKFdlYkNvbnRlbnRBbmFseXNpcyk7CiBTT0ZU
X0xJTktfQ0xBU1MoV2ViQ29udGVudEFuYWx5c2lzLCBXZWJGaWx0ZXJFdmFsdWF0b3IpOwogI2Vu
ZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL1dlYlBhZ2VQcm94eUNvY29hQWRkaXRpb25zQmVmb3JlLm1tPgorI2VuZGlmCisKICNkZWZp
bmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24s
IHByb2Nlc3MoKS5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElP
Tihhc3NlcnRpb24sIGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTl9CQVNFKGFz
c2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKIApAQCAtNTcwLDYg
KzU3NCwxOSBAQCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdlUHJveHk6OmNy
ZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVucwogICAgIHJldHVybiBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSgpOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04p
ICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29u
dGV4dE1lbnVSZXZlYWxJbWFnZSgpCit7CisgICAgYXV0byYgcmVzdWx0ID0gbV9hY3RpdmVDb250
ZXh0TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCk7CisgICAgaWYgKCFyZXN1
bHQuaW1hZ2VCaXRtYXApCisgICAgICAgIHJldHVybjsKKworICAgIHJldmVhbEV4dHJhY3RlZElt
YWdlSW5QcmV2aWV3UGFuZWwoKnJlc3VsdC5pbWFnZUJpdG1hcCwgcmVzdWx0LnRvb2xUaXBUZXh0
KTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKSAmJiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm8oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBib29sLCBjb25zdCBTdHJp
bmcmLCBkb3VibGUsIGRvdWJsZSwgdWludDY0X3QpPiYmIGNhbGxiYWNrKQogewogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6UmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdT
ZXNzaW9uSW5mbygpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CkBAIC01NzcsNSArNTk0LDkgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib28KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94
eUNvY29hQWRkaXRpb25zQWZ0ZXIubW0+CisjZW5kaWYKKwogI3VuZGVmIE1FU1NBR0VfQ0hFQ0tf
Q09NUExFVElPTgogI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGUyNWJjYTljZmFkNmFiZGIxNmYwNmEyZGZlMGU3YWM4NTdj
ZjY3MzYuLjY3YzY1OGUyNjE2YjlkNmI3MWM5M2Q3NTBiMTQ1YzZlZWQ0OWM2NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjU2Myw5MCArNjU2MywxMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNv
bnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBz
dHJ1Y3QgRG93bmxvYWRJbmZvIHsKKyAgICAgICAgU3RyaW5nIHVybDsKKyAgICAgICAgU3RyaW5n
IHN1Z2dlc3RlZEZpbGVuYW1lOworICAgIH07CisgICAgT3B0aW9uYWw8RG93bmxvYWRJbmZvPiBk
b3dubG9hZEluZm87CisKKyAgICBzd2l0Y2ggKGl0ZW0uYWN0aW9uKCkpIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFy
dENvcHlQYXN0ZSkgeworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGU6
CiAgICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghaXNTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKSk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9u
KCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXMpIHsKKworICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnU21hcnRRdW90ZXM6CiAgICAgICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21h
dGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51cGRhdGVU
ZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGl0ZW0u
YWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXMpIHsKKworICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnU21hcnREYXNoZXM6CiAgICAgICAgIFRleHRDaGVja2VyOjpzZXRB
dXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNB
dXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk7CiAgICAgICAgIG1fcHJvY2Vzcy0+dXBk
YXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChp
dGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3MpIHsKKworICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rczoKICAgICAgICAgVGV4dENoZWNrZXI6OnNl
dEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51cGRhdGVU
ZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGl0ZW0u
YWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50KSB7CisKKyAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudDoKICAgICAgICAgVGV4dENoZWNr
ZXI6OnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0
ZSgpLmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCk7CiAgICAgICAgIG1fcHJvY2Vz
cy0+dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1
dG9tYXRpY2FsbHkpIHsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxs
aW5nQXV0b21hdGljYWxseToKICAgICAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbkVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljU3Bl
bGxpbmdDb3JyZWN0aW9uRW5hYmxlZCk7CiAgICAgICAgIG1fcHJvY2Vzcy0+dXBkYXRlVGV4dENo
ZWNrZXJTdGF0ZSgpOwotICAgICAgICByZXR1cm47ICAgICAgICAKLSAgICB9Ci0gICAgaWYgKGl0
ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMpIHsKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0
aW9uczoKICAgICAgICAgVGV4dENoZWNrZXI6OnRvZ2dsZVN1YnN0aXR1dGlvbnNQYW5lbElzU2hv
d2luZygpOwogICAgICAgICByZXR1cm47Ci0gICAgfQogI2VuZGlmCi0gICAgc3RydWN0IERvd25s
b2FkSW5mbyB7Ci0gICAgICAgIFN0cmluZyB1cmw7Ci0gICAgICAgIFN0cmluZyBzdWdnZXN0ZWRG
aWxlbmFtZTsKLSAgICB9OwotICAgIE9wdGlvbmFsPERvd25sb2FkSW5mbz4gZG93bmxvYWRJbmZv
OwotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2spCisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2s6CiAgICAgICAgIGRvd25sb2FkSW5mbyA9IHt7IG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0
RGF0YS53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLmFic29sdXRlSW1hZ2VVUkwsIHsgfSB9fTsKLSAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rp
c2spIHsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzazogewogICAgICAgICBhdXRvJiBoaXRUZXN0UmVzdWx0ID0gbV9hY3RpdmVD
b250ZXh0TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCk7CiAgICAgICAgIGRv
d25sb2FkSW5mbyA9IHt7IGhpdFRlc3RSZXN1bHQuYWJzb2x1dGVMaW5rVVJMLCBoaXRUZXN0UmVz
dWx0LmxpbmtTdWdnZXN0ZWRGaWxlbmFtZSB9fTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAg
IGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rp
c2spCisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAg
ICAgICAgIGRvd25sb2FkSW5mbyA9IHt7IG1fYWN0aXZlQ29udGV4dE1lbnVDb250ZXh0RGF0YS53
ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLmFic29sdXRlTWVkaWFVUkwsIHsgfSB9fTsKLSAgICBpZiAo
ZG93bmxvYWRJbmZvKSB7Ci0gICAgICAgIGF1dG8mIGRvd25sb2FkID0gbV9wcm9jZXNzLT5wcm9j
ZXNzUG9vbCgpLmRvd25sb2FkKG1fd2Vic2l0ZURhdGFTdG9yZSwgdGhpcywgVVJMKFVSTCgpLCBk
b3dubG9hZEluZm8tPnVybCksIGRvd25sb2FkSW5mby0+c3VnZ2VzdGVkRmlsZW5hbWUpOwotICAg
ICAgICBkb3dubG9hZC5zZXREaWRTdGFydENhbGxiYWNrKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0gKGF1dG8qIGRvd25sb2FkKSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICFkb3dubG9hZCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBt
X25hdmlnYXRpb25DbGllbnQtPmNvbnRleHRNZW51RGlkQ3JlYXRlRG93bmxvYWQoKnRoaXMsICpk
b3dubG9hZCk7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBD
b250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcpIHsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGlu
ZzoKICAgICAgICAgVGV4dENoZWNrZXI6OnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQp
OwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1U
YWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcpIHsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nOgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0R3Jh
bW1hckNoZWNraW5nRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tp
bmdFbmFibGVkKTsKICAgICAgICAgbV9wcm9jZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7
CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4
dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpIHsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnU2hvd1NwZWxsaW5nUGFuZWw6CiAgICAgICAgIGlmICghVGV4dENoZWNrZXI6OnNwZWxs
aW5nVUlJc1Nob3dpbmcoKSkKICAgICAgICAgICAgIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyh0
cnVlKTsKICAgICAgICAgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxsaW5nVUlJc1Nob3dpbmcoKTsK
ICAgICAgICAgcmV0dXJuOwotICAgIH0KKwogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKLSAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05l
d0dyb3VwKSB7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld0dy
b3VwOgogICAgICAgICBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3
R3JvdXBGb3JIaWdobGlnaHQ6Olllcyk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYg
KGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50
R3JvdXApIHsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJy
ZW50R3JvdXA6CiAgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShDcmVh
dGVOZXdHcm91cEZvckhpZ2hsaWdodDo6Tm8pOwogICAgICAgICByZXR1cm47Ci0gICAgfQogI2Vu
ZGlmCi0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVs
bGluZyB8fCBpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
KQorCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nOgorICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmc6CiAgICAgICAgICsrbV9wZW5kaW5nTGVh
cm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElP
TikKKyAgICAgICAgaGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSgpOworI2VuZGlmCisgICAg
ICAgIHJldHVybjsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IGlmIChkb3dubG9hZEluZm8pIHsKKyAgICAgICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nlc3Mt
PnByb2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0YVN0b3JlLCB0aGlzLCBVUkwoVVJM
KCksIGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZvLT5zdWdnZXN0ZWRGaWxlbmFtZSk7
CisgICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXSAoYXV0byogZG93bmxvYWQpIHsKKyAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMgfHwgIWRvd25sb2FkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+Y29udGV4dE1lbnVEaWRDcmVhdGVEb3dubG9hZCgqdGhp
cywgKmRvd25sb2FkKTsKKyAgICAgICAgfSk7CisgICAgfQogCiAgICAgcGxhdGZvcm1EaWRTZWxl
Y3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGl0ZW0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDMxNGRhMzU0YTc0Y2IxOWVjYTQxN2M0NGU2ODk0OGQ5MGRi
YWI3MzguLmY4ZjRlNjFjZjMzNmEyMTIxY2E5YjZkZjBkMzZhODcxZGUyOTZmN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTMsNiArMTEzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVt
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KQEAgLTE4NCw2ICsxODUsMTAgQEAgaW50ZXJmYWNlIElE
M0QxMURldmljZTE7CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25JZGVudGlmaWVyLmg+
CiAjZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRB
ZGRpdGlvbnMvV2ViUGFnZVByb3h5QWRkaXRpb25zQmVmb3JlLmg+CisjZW5kaWYKKwogbmFtZXNw
YWNlIEFQSSB7CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29udGVudFdvcmxkOwpAQCAtMTgz
OSw2ICsxODQ0LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGF0Y2hXaGVlbEV2ZW50V2l0
aG91dFNjcm9sbGluZyhjb25zdCBXZWJXaGVlbEV2ZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAKKyNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCk7Cisg
ICAgdm9pZCByZXNldEltYWdlRXh0cmFjdGlvblByZXZpZXcoKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQ
STo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7
CkBAIC0yODk0LDYgKzI5MDQsMTAgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9zdXNwZW5kTWVk
aWFQbGF5YmFja0NvdW50ZXIgeyAwIH07CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5
QWRkaXRpb25zQWZ0ZXIuaD4KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCmluZGV4IGZiYzk0ZTg2Yzc0MzJmZWQxM2ExNTQzYmFhY2Q3MTRkNDc3M2EyYzMuLjhm
MmE3ZDQ2YzUzOTgxOGE1OGFkZDRiYTgwOGRjNjFhYjQ5MzY1M2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC00
NDUsNiArNDQ1LDkgQEAgc3RhdGljIE5TU3RyaW5nICptZW51SXRlbUlkZW50aWZpZXIoY29uc3Qg
V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnUmVsb2FkOgogICAgICAgICByZXR1cm4gX1dLTWVudUl0ZW1JZGVudGlmaWVyUmVsb2Fk
OwogCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAgcmV0
dXJuIF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdlOworCiAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hXZWI6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRlbUlkZW50aWZp
ZXJTZWFyY2hXZWI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCmluZGV4IDE3NGZkMzRiMDM1YzE5ZTdjN2QwNGQyMTBjZjc5Y2ZiOTUzMzkyZjIu
LjQ1YWUzZDBjYTQ2YmFlYWUzZjUxMjE3NDY3NjViMmZlNWU4YTA2YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNjE0LDYgKzYxNCw4
IEBAIHN0YXRpYyBPcHRpb25hbDxOU0ludGVnZXI+IHRvVGFnKFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnU2hhcmVNZW51Owog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW46
CiAgICAgICAgIHJldHVybiBXZWJNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2Ny
ZWVuOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBjYXNlIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21U
YWcgLi4uIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CiAgICAgICAgIC8vIFdlIGp1c3Qg
cGFzcyB0aGVzZSB0aHJvdWdoLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDRmNjFhMDM2OTg2MzAxZmM0ODA3YzJiMDg4ZWU1NmU2OGM2ZTY2ZTMu
LmFmNjk2Y2I0ODdhYjUyODMyMzM1N2FiMDVjMTY3ODY4M2U1NDVlYTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wMi0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbbWFjT1NdIEludHJvZHVjZSBhIG5ldyBjb250ZXh0IG1lbnUgaXRlbSB0byBwcmV2aWV3IGlt
YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIx
OTE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2MzU3OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlciBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBSZWJhc2VsaW5lIGFu
IGV4aXN0aW5nIEFQSSB0ZXN0LCBzaW5jZSBgQ29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2Vg
IGlzIG5vdyB0aGUgbGFzdCB2YWxpZCBlbnVtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIxLTAyLTE1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxl
LmNvbT4KIAogICAgICAgICBbZXdzXSBBZGQgcHl0aG9uIDMgc3VwcG9ydCAtIHBhcnQgMgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0
aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZXh0TWVudUFj
dGlvbi5jcHAKaW5kZXggZTc5ZTQ4OWNhODM3YTA4OTAzYzg5MjIxNWExYjRkZTU2NDcwNThmYi4u
MzQwNmZjMThlZGQxNWE2NDhlYWUwNzU0ZWE3ODkzYWY5MmI1Mjc4NCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0aW9uLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3Bw
CkBAIC0zNyw5ICszNyw5IEBAIFRFU1QoV2ViQ29yZSwgQ29udGV4dE1lbnVBY3Rpb25fSXNWYWxp
ZEVudW0pCiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0
TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRh
Z05vQWN0aW9uKSk7CiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpD
b250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51
SXRlbVRhZ05vQWN0aW9uICsgMSkpOwogCi0gICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51
bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246
OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuIC0gMSkpOwot
ICAgIEVYUEVDVF9UUlVFKFdURjo6aXNWYWxpZEVudW08V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVW
aWRlb0VuaGFuY2VkRnVsbHNjcmVlbikpOwotICAgIEVYUEVDVF9GQUxTRShXVEY6OmlzVmFsaWRF
bnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlv
bjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4gKyAxKSk7
CisgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFj
dGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1JldmVh
bEltYWdlIC0gMSkpOworICAgIEVYUEVDVF9UUlVFKFdURjo6aXNWYWxpZEVudW08V2ViQ29yZTo6
Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVu
dUl0ZW1UYWdSZXZlYWxJbWFnZSkpOworICAgIEVYUEVDVF9GQUxTRShXVEY6OmlzVmFsaWRFbnVt
PFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbjo6
Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UgKyAxKSk7CiAKICAgICBFWFBFQ1RfRkFMU0Uo
V1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgLSAxKSk7CiAgICAg
RVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4o
V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420606</attachid>
            <date>2021-02-17 00:00:53 -0800</date>
            <delta_ts>2021-02-17 07:49:55 -0800</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-221917-20210217000053.patch</filename>
            <type>text/plain</type>
            <size>32217</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUxODIxN2EzNDY3MTA5NDNjZTU2NmJk
MTIzNjhlYTdkM2MwZTA1ZmIuLjEyZTA3MDc3NGNiODQzMWNlOWZjNDI0YWFmYWUyMjRhYmY0MGZk
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29u
dGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIFRpbSBIb3J0
b24uCisKKyAgICAgICAgQWRkIGEgbmV3IHNvZnQtbGlua2luZyBtYWNybyB0byBvcHRpb25hbGx5
IGxpbmsgYWdhaW5zdCBhbiB1bWJyZWxsYSBmcmFtZXdvcmsuCisKKyAgICAgICAgKiB3dGYvY29j
b2EvU29mdExpbmtpbmcuaDoKKwogMjAyMS0wMi0xNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIENTUyBwcm9wZXJ0eSB0byBlbmFibGUgc2VwYXJhdGVkIGJp
dCBvbiBHcmFwaGljc0xheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY1YWJmOGNiMDE5YjJjN2ZjMzZjMGU3
NzQ1YWZmMWMzODdhYzEyMy4uYzgwYjIwMWFlY2E3M2UwOWYzOTM3ZTM4ZmIwODFkMWE2MmMxZjU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTE1ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW50cm9kdWNlIGEg
bmV3IGNvbnRleHQgbWVudSBpdGVtIHRvIHByZXZpZXcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5MTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc0MzYzNTc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyIGFuZCBU
aW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgYSBuZXcgY29udGV4dCBtZW51
IHRhZywgYENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCwgd2hpY2ggd2lsbCBiZSB1c2Vk
IHRvIGludm9rZSBhIHNwZWNpYWwKKyAgICAgICAgdHlwZSBvZiBRdWlja0xvb2sgcHJldmlldyBm
b3IgZXh0cmFjdGVkIGltYWdlcyB3aGVuIHRoZSByZWxldmFudCBhY2Nlc3NpYmlsaXR5IGZlYXR1
cmVzIGFyZSBlbmFibGVkLgorCisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVu
dUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hl
Y2tPckVuYWJsZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZENvbnRleHRNZW51QWN0aW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVk
U3RyaW5nc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmV2
ZWFsSW1hZ2UpOgorCiAyMDIxLTAyLTE2ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgQ1NTIHByb3BlcnR5IHRvIGVuYWJsZSBzZXBhcmF0ZWQgYml0IG9uIEdy
YXBoaWNzTGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzJiZWI4ZjlkMjU2MjgxOGI5OWRjYjRmZGQ3NWE1YTlh
YjY0OTBkMy4uM2QzNTczMDYzNDBjOTE4ZmNlNTA2NTBiMjIyYjU0MjA4ZjI2Nzg1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMS0wMi0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEludHJvZHVjZSBhIG5ldyBjb250ZXh0
IG1lbnUgaXRlbSB0byBwcmV2aWV3IGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2
MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlciBhbmQgVGltIEhvcnRvbi4K
KworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gc3VwcG9ydCB0aGUgYENvbnRleHRNZW51SXRlbVRh
Z1JldmVhbEltYWdlYCBhY3Rpb24sIGFzIHdlbGwgYXMgc29tZSBXZWJLaXRBZGRpdGlvbnMgZXh0
ZW5zaW9uCisgICAgICAgIHBvaW50cy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuIFRoaXMg
cGF0Y2ggd2FzIG1vc3RseSB3cml0dGVuIGJ5IERldmluIFJvdXNzbywgd2l0aCBzb21lIGFkanVz
dG1lbnRzIGZyb20KKyAgICAgICAgbWUuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJL
aXQueGNjb25maWc6CisKKyAgICAgICAgTGluayBhZ2FpbnN0IFVuaWZvcm1UeXBlSWRlbnRpZmll
cnMuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oOgor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktp
dDo6dG9BUEkpOgorICAgICAgICAoV2ViS2l0Ojp0b0ltcGwpOgorCisgICAgICAgIEFkZCBga1dL
Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2VgLCBhbmQgYWRkIGhlbHBlcnMgdG8gY29udmVy
dCBmcm9tIGBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZWAKKyAgICAgICAg
dG8gYGtXS0NvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlYCBhbmQgdmljZSB2ZXJzYS4KKwor
ICAgICAgICAqIFNoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmg6CisgICAgICAgIChXZWJL
aXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OndlYkhpdFRlc3RSZXN1bHREYXRhKToKKworICAg
ICAgICBBZGQgYSBub24tY29uc3QgdmVyc2lvbiBvZiBgd2ViSGl0VGVzdFJlc3VsdERhdGEoKWAs
IHNvIHRoYXQgd2UgY2FuIGdlbmVyYXRlIGEgYENHSW1hZ2VgIHVzaW5nCisgICAgICAgIGBXZWJI
aXRUZXN0UmVzdWx0RGF0YWAncyBiaXRtYXAgZGF0YS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbToKKyAgICAgICAgKCtbX1dLRWxlbWVu
dEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOmN1c3RvbVRpdGxlOmFzc2lzdGFudDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVSZXZlYWxJbWFnZSk6CisK
KyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCwgYGhhbmRsZUNvbnRleHRNZW51UmV2ZWFsSW1h
Z2VgLCB0byBoYW5kbGUgdGhlIG5ldyBjb250ZXh0IG1lbnUgYWN0aW9uOyBhZGRpdGlvbmFsbHks
CisgICAgICAgIGludHJvZHVjZSBhbm90aGVyIGhlbHBlciBtZXRob2QsIGByZXZlYWxFeHRyYWN0
ZWRJbWFnZUluUHJldmlld1BhbmVsYCwgdG8gaGFuZGxlIHRoZSBNYWMtc3BlY2lmaWMKKyAgICAg
ICAgYFFMUHJldmlld1BhbmVsYCBsb2dpYyB3aGVuIGludm9raW5nIHRoZSBuZXcgaXRlbS4gU2Vl
IFdlYktpdEFkZGl0aW9ucyBjaGFuZ2VzIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjptZW51SXRlbUlkZW50aWZpZXIpOgorCiAyMDIxLTAyLTE2ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFZpZGVvIGFz
IGltYWdlIHNvdXJjZSB0cmlnZ2VycyBJT1N1cmZhY2UgcmVhZGJhY2sgKHVubmVjZXNzYXJpbHkg
c2xvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0MzY5MzQxYzBkOTFmMGU5MTYy
N2QzZmVhZjE5NzZlMmFjMjBiZTJhLi4xNjQyMmI3NDIwNjVhMzM2ZDE1ZWVmZjdkYmZiYjA4NGIx
MGMzM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjEtMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBJbnRyb2R1Y2UgYSBuZXcgY29udGV4dCBtZW51IGl0ZW0gdG8gcHJldmlldyBp
bWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjM1Nzg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIFRpbSBIb3J0b24uCisKKyAgICAgICAgTGVnYWN5IFdlYktp
dCB3b24ndCBiZSBzdXBwb3J0aW5nIHRoaXMgbmV3IGNvbnRleHQgbWVudSBhY3Rpb247IHNlZSBv
dGhlciBDaGFuZ2VMb2cgZW50cmllcyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKHRvVGFnKToKKwogMjAyMS0wMi0xNiAgTWVn
YW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZSBB
cHAgSGlnaGxpZ2h0cyBBUEkgdG8gb3BlcmF0ZSBpbiB0ZXJtcyBvZiBhIHNpbmdsZSBzZXJpYWxp
emVkIGhpZ2hsaWdodCBhdCBhIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29h
L1NvZnRMaW5raW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oCmluZGV4
IDRkMjg1NGUwMjM5MTE1NTU3ZGQwMTk0MzExYmZiMGZiYjBkNzEzZWIuLjExNWU0NmI0YzI2MGJj
OWM2YmNiMjljNDJkYzlhMTA1ODg2MWUwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1NvZnRMaW5raW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvU29mdExpbmtpbmcu
aApAQCAtMTIzLDYgKzEyMywxMyBAQCBzdGF0aWMgdm9pZCogbGliIyNMaWJyYXJ5KCkgXAogICAg
ICAgICByZXR1cm4gZnJhbWV3b3JrTGlicmFyeTsgXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJ
TktfRlJBTUVXT1JLX0lOX1VNQlJFTExBX09QVElPTkFMKHVtYnJlbGxhLCBmcmFtZXdvcmspIFwK
KyAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAgICAg
ICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGlicmFyeSA9IGRsb3BlbigiL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvIiAjdW1icmVsbGEgIi5mcmFtZXdvcmsvRnJhbWV3b3Jrcy8iICNmcmFtZXdv
cmsgIi5mcmFtZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05PVyk7IFwKKyAgICAgICAgcmV0dXJu
IGZyYW1ld29ya0xpYnJhcnk7IFwKKyAgICB9CisKICNkZWZpbmUgU09GVF9MSU5LKGZyYW1ld29y
aywgZnVuY3Rpb25OYW1lLCByZXN1bHRUeXBlLCBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMsIHBhcmFt
ZXRlck5hbWVzKSBcCiAgICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKICAgICByZXN1bHRUeXBlIGZ1
bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnM7IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA0YWVkNzFlN2VkMWUwNDYzNWVkMTdh
NTYxOWQ1ZDhlNzEwZTgwNDI1Li4yMGY0MzRmNmU4NjM3OWUzNjVkYjI2MjZjMTVhM2M2YTJjMTk4
YWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
CkBAIC01MTcsNiArNTE3LDEwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdEaWN0YXRpb25BbHRlcm5hdGl2ZToKICAgICAgICAgZnJhbWUtPmVk
aXRvcigpLmFwcGx5RGljdGF0aW9uQWx0ZXJuYXRpdmUodGl0bGUpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorICAgICAgICAvLyBUaGlz
IHNob3VsZCBiZSBoYW5kbGVkIGF0IHRoZSBjbGllbnQgbGF5ZXIuCisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVh
azsKICAgICB9CkBAIC04MTAsNiArODE0LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnBvcHVsYXRlKCkKICAgICBDb250ZXh0TWVudUl0ZW0gU2VsZWN0QWxsSXRlbShBY3Rpb25UeXBl
LCBDb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGwsIGNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFs
bCgpKTsKICAgICBDb250ZXh0TWVudUl0ZW0gSW5zZXJ0RW1vamlJdGVtKEFjdGlvblR5cGUsIENv
bnRleHRNZW51SXRlbVRhZ0luc2VydEVtb2ppLCBjb250ZXh0TWVudUl0ZW1UYWdJbnNlcnRFbW9q
aSgpKTsKICNlbmRpZgorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIENvbnRleHRN
ZW51SXRlbSBSZXZlYWxJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnUmV2
ZWFsSW1hZ2UsIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkpOworI2VuZGlmCiAKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKICAgICBDb250ZXh0TWVudUl0ZW0gU2hh
cmVNZW51SXRlbTsKQEAgLTg1Niw4ICs4NjMsMTMgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OnBvcHVsYXRlKCkKIAogICAgICAgICAgICAgYXBwZW5kSXRlbShPcGVuSW1hZ2VJbk5ld1dp
bmRvd0l0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICAgICAgYXBwZW5kSXRlbShE
b3dubG9hZEltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAo
aW1hZ2VVUkwuaXNMb2NhbEZpbGUoKSB8fCBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmltYWdl
KCkpCisgICAgICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUoKSB8fCBtX2NvbnRleHQu
aGl0VGVzdFJlc3VsdCgpLmltYWdlKCkpIHsKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKENv
cHlJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOworCisjaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZXZlYWxJbWFnZUl0ZW0sIG1f
Y29udGV4dE1lbnUuZ2V0KCkpOworI2VuZGlmCisgICAgICAgICAgICB9CiAjaWYgUExBVEZPUk0o
R1RLKQogICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VVcmxJdGVtLCBtX2NvbnRleHRN
ZW51LmdldCgpKTsKICNlbmRpZgpAQCAtMTQ1MCw2ICsxNDYyLDggQEAgdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0p
IGNvbnN0CiAgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLm1lZGlhSGFzQXVkaW8oKTsKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gc2hvdWxkRW5h
YmxlICYmICBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLm1lZGlhTXV0ZWQoKTsKICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgor
ICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgaXRlbS5zZXRDaGVja2VkKHNob3VsZENo
ZWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4
IGFjYjdmNzUyYmUxZTU1NDczNzExZTQyOGQ4YjNkZjZkNmNkMWZhZTguLjgzNzZhMWY2OTgwZTdi
OWUxNGNjNmM5MjdmYjY3ZTUyODQ0MjUwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmNwcApAQCAtMjQ2LDYgKzI0Niw3IEBAIGJvb2wgaXNWYWxpZENvbnRl
eHRNZW51QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICAgICBjYXNlIENvbnRleHRN
ZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Z1bGxzY3JlZW46CiAgICAg
Y2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAg
IGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5o
YW5jZWRGdWxsc2NyZWVuOgorICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51
SXRlbVRhZ1JldmVhbEltYWdlOgogICAgIGNhc2UgQ29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbUJhc2VDdXN0b21UYWc6CiAgICAgY2FzZSBDb250ZXh0TWVudUFjdGlvbjo6Q29udGV4
dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAgICBjYXNlIENvbnRleHRNZW51QWN0aW9uOjpDb250
ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5oCmluZGV4IDI1ZTQzMWVlM2Y0MmUzMmEyYWY1YWRkMTA2MDJhNmQxMzBh
NTA5MjEuLjE1ZmE4N2RhNjA3NDlhMTc4OGZjMWYxOGMxNTEzNDAxMWE5NWIzODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNDksNiArMTQ5LDcgQEAg
ZW51bSBDb250ZXh0TWVudUFjdGlvbiB7CiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxp
Z2h0VG9DdXJyZW50R3JvdXAsCiAgICAgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9O
ZXdHcm91cCwKICNlbmRpZgorICAgIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlLAogICAg
IENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgIENvbnRleHRNZW51SXRl
bUxhc3RDdXN0b21UYWcgPSA1OTk5LAogICAgIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlv
blRhZyA9IDEwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
aW5kZXggODQ1MWY1MTcwMTNmNTIzZTFhMjhkMGJjYjA3ZTY4NWQyODI2MTRhYy4uN2M0Mjg0ZWE0
ZDA1YjY1NzE1NTU2MmY4MWJlMjVjYmFhYjdiMjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMzUwLDYgKzM1MCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGdlbmVyaWNUb3VjaElEUHJvbXB0VGl0
bGUoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCk7CisjZW5kaWYK
KwogI2lmIFVTRShHTElCKSAmJiBkZWZpbmVkKEdFVFRFWFRfUEFDS0FHRSkKICNkZWZpbmUgV0VC
X1VJX1NUUklORyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmco
XyhzdHJpbmcpKQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3Jp
cHRpb24pIFdlYkNvcmU6OmxvY2FsaXplZFN0cmluZyhDXyhrZXksIHN0cmluZykpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2Eu
bW0KaW5kZXggY2JjMTAyMmIyMmFmNmE4MTU1NjM2NTNhMzkwNGFmMjYxZjhmZDNkZi4uZGYyYzIx
YmRmNjk5MmFkOWY1ZjhlMjBjMjgyMjE1YjBjNjk4NWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMzA2
LDQgKzMwNiwxMSBAQCBTdHJpbmcgZXhpdEZ1bGxTY3JlZW5CdXR0b25BY2Nlc3NpYmlsaXR5VGl0
bGUoKQogfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlKCkKK3sKKyAgICBy
ZXR1cm4gbG9jYWxpemVkTlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKK30KKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnCmluZGV4IDQyYjVkODk5ZWIwYWQ5Y2QwNTg3NjM4ODhjMDcyODA0OWU1Mjky
MzkuLjExM2YxMDExNzczMzIxMjhhMTU2NjUyZDdmM2E2NzAyOTVkNDE4ODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC0xMTQsNiArMTE0LDgg
QEAgV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfaXBob25lb3MgPSAkKFdLX1VO
SUZPUk1fVFlQRV9JREVOVElGSUVSU19MREYKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19M
REZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xE
RkxBR1MkKFdLX0lPU18xNCkpOwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Nf
bWFjY2F0YWx5c3QgPSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTJChXS19J
T1NfMTQpKTsKIFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX0lPU19TSU5DRV8x
NCA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKK1dLX1VOSUZPUk1fVFlQRV9J
REVOVElGSUVSU19MREZMQUdTX21hY29zeCA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJT
X0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKK1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19M
REZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmll
cnM7CiAKIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xE
RkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HKSk7CiBXS19VUkxfRk9STUFUVElOR19MREZM
QUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaAppbmRleCA0MGM1OWIwYWFm
OGM4ODZlOThiZGExMDgxZGQ2ZjRmNjczNjUwZjE3Li5jMWU5MzNlYjU2NWY3ZDQwM2Y2ODEzMzVm
N2QzNGIxZmIwYzhkZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S0NvbnRleHRNZW51SXRlbVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oCkBAIC0xMjUsNiArMTI1LDcgQEAgZW51bSB7CiAgICAg
a1dLQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3JlZW4sCiAgICAg
a1dLQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXAsCiAgICAga1dL
Q29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCwKKyAgICBrV0tDb250ZXh0
TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSwKICAgICBrV0tDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGlj
YXRpb25UYWcgPSAxMDAwMAogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tDb250ZXh0TWVudUl0ZW1U
YWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4
IDg0YzBjMmM4M2I5ZjM5N2FhOTU4YTU4YmUxMmViZDNiNmIzOTUxNGYuLmNjY2U0ODkwZDUwYmNl
YzZjMDhmYTU5ZThlOTY1ZWU5NmEwNTE4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC01NDUsNiArNTQ1LDggQEAgaW5saW5lIFdLQ29udGV4
dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKICNl
bmRpZgogICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OgogICAg
ICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OworICAgIGNhc2UgV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2U6CisgICAgICAgIHJldHVybiBrV0tD
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAo
YWN0aW9uIDwgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnICYmICEo
YWN0aW9uID49IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgJiYgYWN0aW9u
IDw9IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcpKQogICAgICAgICAgICAg
TE9HX0VSUk9SKCJDb250ZXh0TWVudUFjdGlvbiAlaSBpcyBhbiB1bmtub3duIHRhZyBidXQgaXMg
YmVsb3cgdGhlIGFsbG93YWJsZSBjdXN0b20gdGFnIHZhbHVlIG9mICVpIiwgYWN0aW9uLCBXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWcpOwpAQCAtNzQ1LDYgKzc0Nyw4
IEBAIGlubGluZSBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiB0b0ltcGwoV0tDb250ZXh0TWVu
dUl0ZW1UYWcgdGFnKQogICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51Ogog
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnU2hhcmVNZW51OwogI2Vu
ZGlmCisgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOwogICAgIGNhc2Ug
a1dLQ29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJblRoaXNXaW5kb3c6CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgaWYgKHRhZyA8IGtXS0NvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZyAm
JiAhKHRhZyA+PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICYmIHRhZyA8
PSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAppbmRleCBhMzRhNWVhNDFlYjFjZTk5
ZmI0NWE5NDIxMGQ1ZjU0MGZmOTlhNGQ4Li5mN2QwZmUxZGVkN2EyMDE4N2E5MDdkYWQ5YWMwZTYy
Yzg2Mzg2MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0
RGF0YS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgbWVudUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tZW51TG9jYXRpb247IH0KICAg
ICBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1z
KCkgY29uc3QgeyByZXR1cm4gbV9tZW51SXRlbXM7IH0KIAorICAgIFdlYkhpdFRlc3RSZXN1bHRE
YXRhJiB3ZWJIaXRUZXN0UmVzdWx0RGF0YSgpIHsgcmV0dXJuIG1fd2ViSGl0VGVzdFJlc3VsdERh
dGE7IH0KICAgICBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgd2ViSGl0VGVzdFJlc3VsdERh
dGEoKSBjb25zdCB7IHJldHVybiBtX3dlYkhpdFRlc3RSZXN1bHREYXRhOyB9CiAgICAgY29uc3Qg
U3RyaW5nJiBzZWxlY3RlZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGVkVGV4dDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRl
bUlkZW50aWZpZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVu
dUl0ZW1JZGVudGlmaWVycy5tbQppbmRleCAyNjQyMzc5Y2FkZWY3Y2M5ZTYzZmMwOTU1YmEwMWUz
MDEwMGY3ZGVlLi5jMmE5NGMzY2M0OTAwMjMzNzU4ZTA1ZDQ1YTljYWQzZjY5YjRiNmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50
aWZpZXJzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnMubW0KQEAgLTQ3LDYgKzQ3LDcgQEAgTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93ID0gQCJXS01lbnVJdGVtSWRlbnRp
ZmkKIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdX
aW5kb3cgPSBAIldLTWVudUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3ciOwogTlNT
dHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSA9IEAiV0tNZW51SXRlbUlk
ZW50aWZpZXJQYXN0ZSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJl
bG9hZCA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQiOworTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJSZXZlYWxJbWFnZSA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJS
ZXZlYWxJbWFnZSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNlYXJj
aFdlYiA9IEAiV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIiOwogTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaG93SGlkZU1lZGlhQ29udHJvbHMgPSBAIldLTWVudUl0
ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIjsKIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xlRW5oYW5jZWRGdWxsU2NyZWVuID0gQCJXS01lbnVJdGVt
SWRlbnRpZmllclRvZ2dsZUVuaGFuY2VkRnVsbFNjcmVlbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVy
c1ByaXZhdGUuaAppbmRleCAzMzk2OGFhMDY4ZjVmMjBjZTI4YzRjZGM0ZTAxNzc1YWIwMzM5Mjg3
Li42OTZlYWIyOWJiYzRlMWU2OGViNmNiZjNhOTFkMjBkYjdlMzUzNzM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVt
SWRlbnRpZmllcnNQcml2YXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rSW5OZXdXaW5kb3cg
V0tfQVAKIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJPcGVuTWVkaWFJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJQYXN0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjAp
KTsKIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJSZWxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFs
SW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJTZWFyY2hXZWIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBX
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hv
d0hpZGVNZWRpYUNvbnRyb2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAu
MCkpOwogV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllclRvZ2dsZUVuaGFuY2VkRnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
KSwgaW9zKDEyLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRBY3Rpb24ubW0KaW5kZXggNTE1MGUyODk0YjQ1YTZmNmJkZWE2ODY1OGEy
MGZjZmM5MmI4NjZjMi4uZWZjYzUzNTRjYmRiNTkxNDlhMzA0NmJiMzUzMDE1ZTA0YjZiYjRkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRB
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1l
bnRBY3Rpb24ubW0KQEAgLTE3MSw3ICsxNzEsNyBAQCArIChpbnN0YW5jZXR5cGUpX2VsZW1lbnRB
Y3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBjdXN0b21UaXRsZTooTgog
ICAgICAgICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2U6
CiAjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCi0gICAgICAgIHRpdGxlID0gV2ViQ29yZTo6
bG9jYWxpemVkTlNTdHJpbmcoQCJSZXZlYWwgSW1hZ2UiKTsKKyAgICAgICAgdGl0bGUgPSBXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSgpOwogICAgICAgICBoYW5kbGVyID0g
XihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQsIF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICphY3Rpb25JbmZvKSB7CiAgICAgICAgICAgICBbYXNzaXN0YW50IGhhbmRsZUVsZW1lbnRB
Y3Rpb25XaXRoVHlwZTp0eXBlIGVsZW1lbnQ6YWN0aW9uSW5mbyBuZWVkc0ludGVyYWN0aW9uOllF
U107CiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGVkZjA0YTQwNDk3NDBkMDJiNGJkMDRjOTE0NzY2M2Y0
NWEzZjMxOWMuLjk0NWM5YTM0OWIzODE4MzRjNGFkMWEwYjYxZGY1YmQzMTI5YzE0NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CkBAIC03Niw2ICs3NiwxMCBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVu
dEFuYWx5c2lzKTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRl
ckV2YWx1YXRvcik7CiAjZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5Q29jb2FBZGRpdGlvbnNCZWZvcmUubW0+
CisjZW5kaWYKKwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVD
S19CQVNFKGFzc2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FH
RV9DSEVDS19DT01QTEVUSU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9DSEVDS19D
T01QTEVUSU9OX0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBjb21wbGV0
aW9uKQogCkBAIC01NzcsNiArNTgxLDE5IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiAgICAg
cmV0dXJuIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5KCk7CiB9CiAKKyNpZiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdlKCkKK3sKKyAgICBhdXRvJiByZXN1
bHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEo
KTsKKyAgICBpZiAoIXJlc3VsdC5pbWFnZUJpdG1hcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cmV2ZWFsRXh0cmFjdGVkSW1hZ2VJblByZXZpZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCBy
ZXN1bHQudG9vbFRpcFRleHQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pICYmIEVOQUJMRShDT05URVhUX01FTlVTKQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2ws
IGJvb2wsIGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdCk+JiYgY2FsbGJh
Y2spCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0
QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCksIFdURk1vdmUoY2FsbGJhY2spKTsKQEAgLTU4
NCw1ICs2MDEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdT
ZXNzaW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvbwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvV2ViUGFnZVByb3h5Q29jb2FBZGRpdGlvbnNBZnRlci5tbT4KKyNlbmRpZgorCiAjdW5k
ZWYgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggY2FkNGE5NTNmOGIwMDlkNzQ4
YWUxZjI0ZjdiOGVmODc3MGJmY2RjZC4uYmM4YjE2M2U5Njk1MTZkZWNjZjlkZjNmMTI4NmQyM2Yy
NGQ1ZjJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02
NTY0LDkwICs2NTY0LDExMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2Vs
ZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIHN0cnVjdCBEb3dubG9hZEluZm8geworICAgICAgICBTdHJpbmcgdXJs
OworICAgICAgICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWU7CisgICAgfTsKKyAgICBPcHRpb25h
bDxEb3dubG9hZEluZm8+IGRvd25sb2FkSW5mbzsKKworICAgIHN3aXRjaCAoaXRlbS5hY3Rpb24o
KSkgewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRl
eHRNZW51SXRlbVRhZ1NtYXJ0Q29weVBhc3RlKSB7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdTbWFydENvcHlQYXN0ZToKICAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFp
c1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3Rlcykgewor
CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydFF1b3RlczoKICAgICAgICAgVGV4dENo
ZWNrZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6
OnN0YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwogICAgICAgICBt
X3Byb2Nlc3MtPnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hl
cykgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlczoKICAgICAgICAg
VGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCFUZXh0Q2hl
Y2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKTsKICAgICAg
ICAgbV9wcm9jZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnU21hcnRM
aW5rcykgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzOgogICAgICAg
ICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoIVRleHRDaGVj
a2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOwogICAgICAgICBt
X3Byb2Nlc3MtPnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdUZXh0UmVwbGFj
ZW1lbnQpIHsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50Ogog
ICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCgh
VGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKTsK
ICAgICAgICAgbV9wcm9jZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiAgICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFn
Q29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSkgeworCisgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdDb3JyZWN0U3BlbGxpbmdBdXRvbWF0aWNhbGx5OgogICAgICAgICBUZXh0Q2hlY2tlcjo6
c2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRl
KCkuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKICAgICAgICAgbV9wcm9j
ZXNzLT51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7Ci0gICAgICAgIHJldHVybjsgICAgICAgIAot
ICAgIH0KLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vi
c3RpdHV0aW9ucykgeworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ1Nob3dTdWJzdGl0dXRpb25zOgogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3Vic3Rp
dHV0aW9uc1BhbmVsSXNTaG93aW5nKCk7CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAjZW5kaWYK
LSAgICBzdHJ1Y3QgRG93bmxvYWRJbmZvIHsKLSAgICAgICAgU3RyaW5nIHVybDsKLSAgICAgICAg
U3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lOwotICAgIH07Ci0gICAgT3B0aW9uYWw8RG93bmxvYWRJ
bmZvPiBkb3dubG9hZEluZm87Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJ
dGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVD
b250ZXh0TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVJbWFn
ZVVSTCwgeyB9IH19OwotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRh
Z0Rvd25sb2FkTGlua1RvRGlzaykgeworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrOiB7CiAgICAgICAgIGF1dG8mIGhpdFRlc3RS
ZXN1bHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERh
dGEoKTsKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxp
bmtVUkwsIGhpdFRlc3RSZXN1bHQubGlua1N1Z2dlc3RlZEZpbGVuYW1lIH19OworICAgICAgICBi
cmVhazsKICAgICB9Ci0gICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRNZWRpYVRvRGlzaykKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxv
YWRNZWRpYVRvRGlzazoKICAgICAgICAgZG93bmxvYWRJbmZvID0ge3sgbV9hY3RpdmVDb250ZXh0
TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVNZWRpYVVSTCwg
eyB9IH19OwotICAgIGlmIChkb3dubG9hZEluZm8pIHsKLSAgICAgICAgYXV0byYgZG93bmxvYWQg
PSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0YVN0b3JlLCB0
aGlzLCBVUkwoVVJMKCksIGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZvLT5zdWdnZXN0
ZWRGaWxlbmFtZSk7Ci0gICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoYXV0byogZG93bmxvYWQpIHsKLSAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMgfHwgIWRvd25sb2FkKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+Y29udGV4dE1lbnVEaWRDcmVhdGVE
b3dubG9hZCgqdGhpcywgKmRvd25sb2FkKTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIGlmIChp
dGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGlu
ZykgeworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZ1doaWxlVHlwaW5nOgogICAgICAgICBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0NvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk7CiAgICAgICAgIG1fcHJvY2Vzcy0+dXBkYXRlVGV4dENoZWNrZXJT
dGF0ZSgpOwogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlvbigpID09
IENvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZykgeworCisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmc6CiAgICAgICAgIFRl
eHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUo
KS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQpOwogICAgICAgICBtX3Byb2Nlc3MtPnVwZGF0ZVRl
eHRDaGVja2VyU3RhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXRlbS5h
Y3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCkgeworCisgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbDoKICAgICAgICAgaWYgKCFU
ZXh0Q2hlY2tlcjo6c3BlbGxpbmdVSUlzU2hvd2luZygpKQogICAgICAgICAgICAgYWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKHRydWUpOwogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxp
bmdVSUlzU2hvd2luZygpOwogICAgICAgICByZXR1cm47Ci0gICAgfQorCiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQotICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRh
Z0FkZEhpZ2hsaWdodFRvTmV3R3JvdXApIHsKLSAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5T
ZWxlY3RlZFJhbmdlKFdlYkNvcmU6OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpZZXMpOwor
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cDoKKyAgICAg
ICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGln
aGxpZ2h0OjpZZXMpOwogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChpdGVtLmFjdGlv
bigpID09IENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvQ3VycmVudEdyb3VwKSB7Ci0g
ICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpDcmVhdGVO
ZXdHcm91cEZvckhpZ2hsaWdodDo6Tm8pOworCisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdB
ZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cDoKKyAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5T
ZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpObyk7CiAgICAgICAgIHJl
dHVybjsKLSAgICB9CiAjZW5kaWYKLSAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVu
dUl0ZW1UYWdMZWFyblNwZWxsaW5nIHx8IGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVt
VGFnSWdub3JlU3BlbGxpbmcpCisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3Bl
bGxpbmc6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZzoKICAgICAg
ICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKKyAgICAgICAgYnJl
YWs7CisKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbEltYWdlOgorI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQorICAgICAgICBoYW5kbGVDb250ZXh0TWVudVJldmVhbEltYWdl
KCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgaWYgKGRvd25sb2FkSW5mbykgeworICAgICAgICBhdXRvJiBkb3du
bG9hZCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5kb3dubG9hZChtX3dlYnNpdGVEYXRhU3Rv
cmUsIHRoaXMsIFVSTChVUkwoKSwgZG93bmxvYWRJbmZvLT51cmwpLCBkb3dubG9hZEluZm8tPnN1
Z2dlc3RlZEZpbGVuYW1lKTsKKyAgICAgICAgZG93bmxvYWQuc2V0RGlkU3RhcnRDYWxsYmFjayhb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChhdXRvKiBkb3dubG9hZCkgewor
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhZG93bmxvYWQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZXh0TWVudURpZENy
ZWF0ZURvd25sb2FkKCp0aGlzLCAqZG93bmxvYWQpOworICAgICAgICB9KTsKKyAgICB9CiAKICAg
ICBwbGF0Zm9ybURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoaXRlbSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzRiZGNmYTNlYmQ1ZDM0MzZm
NGM5ZTJlMTFjMTMxODEyZTkwZDFlOC4uNDlhZjI1OWFkOGMzODljYWRiOWU4YTQwNzc5Yjk5ZWRm
MDhjZDQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExMiw2
ICsxMTIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgpAQCAtMTgzLDYgKzE4NCwx
MCBAQCBpbnRlcmZhY2UgSUQzRDExRGV2aWNlMTsKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vz
c2lvbklkZW50aWZpZXIuaD4KICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnNCZWZvcmUuaD4K
KyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250
ZW50V29ybGQ7CkBAIC0xODM5LDYgKzE4NDQsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNw
YXRjaFdoZWVsRXZlbnRXaXRob3V0U2Nyb2xsaW5nKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNU
SU9OKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51
UmV2ZWFsSW1hZ2UoKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VFeHRyYWN0aW9uUHJldmlldygpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9j
ZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKQEAgLTI4OTQsNiArMjkwNCwxMCBAQCBwcml2YXRlOgogICAgIHNp
emVfdCBtX3N1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlciB7IDAgfTsKIAogICAgIE9wdGlvbmFs
PFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50OworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0
aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnNBZnRlci5oPgorI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggZmJjOTRlODZjNzQzMmZlZDEzYTE1NDNiYWFj
ZDcxNGQ0NzczYTJjMy4uOGYyYTdkNDZjNTM5ODE4YTU4YWRkNGJhODA4ZGM2MWFiNDkzNjUzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJv
eHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KQEAgLTQ0NSw2ICs0NDUsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKm1lbnVJdGVt
SWRlbnRpZmllcihjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQ6CiAgICAgICAgIHJldHVybiBfV0tNZW51SXRl
bUlkZW50aWZpZXJSZWxvYWQ7CiAKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1JldmVhbElt
YWdlOgorICAgICAgICByZXR1cm4gX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFsSW1hZ2U7CisK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYjoKICAgICAgICAgcmV0dXJuIF9X
S01lbnVJdGVtSWRlbnRpZmllclNlYXJjaFdlYjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMTc0ZmQzNGIwMzVjMTllN2M3ZDA0ZDIx
MGNmNzljZmI5NTMzOTJmMi4uNDVhZTNkMGNhNDZiYWVhZTNmNTEyMTc0Njc2NWIyZmU1ZThhMDZh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CkBAIC02MTQsNiArNjE0LDggQEAgc3RhdGljIE9wdGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoV2Vi
Q29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm4gV2ViTWVudUl0
ZW1UYWdTaGFyZU1lbnU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVWaWRlb0Vu
aGFuY2VkRnVsbHNjcmVlbjoKICAgICAgICAgcmV0dXJuIFdlYk1lbnVJdGVtVGFnVG9nZ2xlVmlk
ZW9FbmhhbmNlZEZ1bGxzY3JlZW47CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJ
bWFnZToKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtQmFzZUN1c3RvbVRhZyAuLi4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAg
ICAgICAgLy8gV2UganVzdCBwYXNzIHRoZXNlIHRocm91Z2guCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2IyMjliNDE3YmYyMGNiNDMxOGI4NjFl
ZmE1MjM5MDYyMTRjMzJlMS4uMGMwOTViNzllMDI5ZjRhNDhlMjhiY2RiZmI4NWZjZGQ0OGIzMmY0
OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTAyLTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW50cm9kdWNlIGEgbmV3IGNvbnRleHQgbWVudSBp
dGVtIHRvIHByZXZpZXcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjE5MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzYzNTc4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyIGFuZCBUaW0gSG9ydG9uLgorCisgICAg
ICAgIFJlYmFzZWxpbmUgYW4gZXhpc3RpbmcgQVBJIHRlc3QsIHNpbmNlIGBDb250ZXh0TWVudUl0
ZW1UYWdSZXZlYWxJbWFnZWAgaXMgbm93IHRoZSBsYXN0IHZhbGlkIGVudW0uCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVBY3Rpb24uY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDItMTYgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gUmVkdWNl
IHRoZSB1c2Ugb2YgU291cFVSSSBpbiB1bml0IHRlc3RzIGluIHByZXBhcmF0aW9uIGZvciBsaWJz
b3VwMwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
eHRNZW51QWN0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZXh0TWVudUFjdGlvbi5jcHAKaW5kZXggZTc5ZTQ4OWNhODM3YTA4OTAzYzg5MjIxNWExYjRkZTU2
NDcwNThmYi4uMzQwNmZjMThlZGQxNWE2NDhlYWUwNzU0ZWE3ODkzYWY5MmI1Mjc4NCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRleHRNZW51QWN0aW9u
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGV4dE1lbnVB
Y3Rpb24uY3BwCkBAIC0zNyw5ICszNyw5IEBAIFRFU1QoV2ViQ29yZSwgQ29udGV4dE1lbnVBY3Rp
b25fSXNWYWxpZEVudW0pCiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRN
ZW51SXRlbVRhZ05vQWN0aW9uKSk7CiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxX
ZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNv
bnRleHRNZW51SXRlbVRhZ05vQWN0aW9uICsgMSkpOwogCi0gICAgRVhQRUNUX1RSVUUoV1RGOjpp
c1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1l
bnVBY3Rpb246OkNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZVZpZGVvRW5oYW5jZWRGdWxsc2NyZWVu
IC0gMSkpOwotICAgIEVYUEVDVF9UUlVFKFdURjo6aXNWYWxpZEVudW08V2ViQ29yZTo6Q29udGV4
dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpDb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVWaWRlb0VuaGFuY2VkRnVsbHNjcmVlbikpOwotICAgIEVYUEVDVF9GQUxTRShXVEY6
OmlzVmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0
TWVudUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlVmlkZW9FbmhhbmNlZEZ1bGxzY3Jl
ZW4gKyAxKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250
ZXh0TWVudUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRl
bVRhZ1JldmVhbEltYWdlIC0gMSkpOworICAgIEVYUEVDVF9UUlVFKFdURjo6aXNWYWxpZEVudW08
V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uOjpD
b250ZXh0TWVudUl0ZW1UYWdSZXZlYWxJbWFnZSkpOworICAgIEVYUEVDVF9GQUxTRShXVEY6Omlz
VmFsaWRFbnVtPFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uPihXZWJDb3JlOjpDb250ZXh0TWVu
dUFjdGlvbjo6Q29udGV4dE1lbnVJdGVtVGFnUmV2ZWFsSW1hZ2UgKyAxKSk7CiAKICAgICBFWFBF
Q1RfRkFMU0UoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbj4oV2Vi
Q29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgLSAx
KSk7CiAgICAgRVhQRUNUX1RSVUUoV1RGOjppc1ZhbGlkRW51bTxXZWJDb3JlOjpDb250ZXh0TWVu
dUFjdGlvbj4oV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb246OkNvbnRleHRNZW51SXRlbUJhc2VD
dXN0b21UYWcpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>