<?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>225961</bug_id>
          
          <creation_ts>2021-05-18 23:40:47 -0700</creation_ts>
          <short_desc>[GStreamer] Incorrect rendering of VP9 with transparency</short_desc>
          <delta_ts>2021-06-01 02:41:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226484</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nazar Mokrynskyi">nazar</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>magomez</cc>
    
    <cc>menard</cc>
    
    <cc>nicolas</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>zan</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1761482</commentid>
    <comment_count>0</comment_count>
    <who name="Nazar Mokrynskyi">nazar</who>
    <bug_when>2021-05-18 23:40:47 -0700</bug_when>
    <thetext>Upstream GStreamer supports VP8/VP9 with transparency, but some videos are not rendered correctly in WebKit WPE with GStreamer backend, while working fine in Firefox and Chromium.

Example of such video with incorrect rendering is: https://cdn.streamelements.com/uploads/187c102b-ac08-4843-8ac9-4e6be93688b9.webm

Reproduction with GStreamer&apos;s wpesrc (this is what I have and use for testing):
LIBGL_ALWAYS_SOFTWARE=true gst-launch-1.0 \
  wpesrc do-timestamp=true location=https://nextcloud.mokrynskyi.com/s/qcoTsNgeLqmAXtg ! \
  video/x-raw,format=BGRA,width=1280,height=720 ! \
  queue ! videoconvert ! autovideosink

Many other videos are rendered properly, so there is something special about that particular file.
NOTE: GStreamer pipeline that takes that video and does some compositing with it also works fine, so it is WPE-specific issue.

Initially reported against gst-plugins-bad: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1594

Tested with:
libwpe 1.9.1
wpebackend-fdo 1.9.1
wpewebkit 2.31.1
GStreamer and plugins from master branch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761546</commentid>
    <comment_count>1</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2021-05-19 09:10:18 -0700</bug_when>
    <thetext>&quot;Rendered correctly&quot; is not totally accurate. So according to Firefox and Chromium implementation, WebM always produces straight colors. Good thing, since GStreamer only support that also.

Though, what I notice is that the compositor in WebKit assumes premultiplied colors, that will looks ok-ish, as loing as the transparent pixels have no color information.

From quick look, it seems like a knob missing, but that Straight vs Premultiplied is already something supported over-all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761547</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-05-19 09:14:38 -0700</bug_when>
    <thetext>Yeah, we&apos;ll try to investigate this soon, thanks for the report :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764303</commentid>
    <comment_count>3</comment_count>
      <attachid>429871</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-27 05:54:41 -0700</bug_when>
    <thetext>Created attachment 429871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764407</commentid>
    <comment_count>4</comment_count>
      <attachid>429901</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-27 10:49:53 -0700</bug_when>
    <thetext>Created attachment 429901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764701</commentid>
    <comment_count>5</comment_count>
      <attachid>429901</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2021-05-28 00:15:13 -0700</bug_when>
    <thetext>Comment on attachment 429901
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:91
&gt; +                // These store the source pixel components.
&gt; +                unsigned short red;
&gt; +                unsigned short green;
&gt; +                unsigned short blue;
&gt; +                unsigned short alpha;
&gt; +                // These store the component offset inside the pixel for the destination surface.
&gt; +                unsigned short redIndex;
&gt; +                unsigned short greenIndex;
&gt; +                unsigned short blueIndex;
&gt; +                unsigned short alphaIndex;

These could be explicitly using the uint16_t type. Bonus points for using uint8_t in place of unsigned char (or unsigned char*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764710</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-05-28 01:14:52 -0700</bug_when>
    <thetext>Would it be possible to have a test? reftest? Would be skipped until the bots use gst 1.20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764793</commentid>
    <comment_count>7</comment_count>
      <attachid>430019</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-28 09:29:31 -0700</bug_when>
    <thetext>Created attachment 430019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764794</commentid>
    <comment_count>8</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-28 09:31:59 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #7)
&gt; Created attachment 430019 [details]
&gt; Patch

Please don&apos;t review this yet.
As I don&apos;t have any idea about which platforms support transparent video rendering and will pass the new test, I&apos;ll let the EWSs tell me, and I&apos;ll update the patch later skipping the platforms that fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764817</commentid>
    <comment_count>9</comment_count>
      <attachid>430025</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-28 10:21:24 -0700</bug_when>
    <thetext>Created attachment 430025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764821</commentid>
    <comment_count>10</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-28 10:24:53 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #9)
&gt; Created attachment 430025 [details]
&gt; Patch

This is the correct patch. The new test is skipped for all the platforms initially. After this is landed, I&apos;ll open a new gardening bug for the new test, mentioning that it must be enabled for GTK and WPE once GStreamer is bumped to 1.20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765359</commentid>
    <comment_count>11</comment_count>
      <attachid>430025</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2021-05-31 01:45:17 -0700</bug_when>
    <thetext>Comment on attachment 430025
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:91
&gt; +                // These store the source pixel components.
&gt; +                uint8_t red;
&gt; +                uint8_t green;
&gt; +                uint8_t blue;
&gt; +                uint8_t alpha;
&gt; +                // These store the component offset inside the pixel for the destination surface.
&gt; +                uint8_t redIndex;
&gt; +                uint8_t greenIndex;
&gt; +                uint8_t blueIndex;
&gt; +                uint8_t alphaIndex;

I did mean uint16_t when I wrote that, since down lower you end up conditionally multiplying RGB values with the alpha channel and then dividing by 255. You&apos;re on the safe side if you do this through uint16_ts as you definitely avoid any overflow. I don&apos;t know whether otherwise the multiplication automagically propagates the product into a uint16_t before it&apos;s divided and narrowed back down to uint8_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765367</commentid>
    <comment_count>12</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-31 02:36:36 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #11)
&gt; Comment on attachment 430025 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430025&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:91
&gt; &gt; +                // These store the source pixel components.
&gt; &gt; +                uint8_t red;
&gt; &gt; +                uint8_t green;
&gt; &gt; +                uint8_t blue;
&gt; &gt; +                uint8_t alpha;
&gt; &gt; +                // These store the component offset inside the pixel for the destination surface.
&gt; &gt; +                uint8_t redIndex;
&gt; &gt; +                uint8_t greenIndex;
&gt; &gt; +                uint8_t blueIndex;
&gt; &gt; +                uint8_t alphaIndex;
&gt; 
&gt; I did mean uint16_t when I wrote that, since down lower you end up
&gt; conditionally multiplying RGB values with the alpha channel and then
&gt; dividing by 255. You&apos;re on the safe side if you do this through uint16_ts as
&gt; you definitely avoid any overflow. I don&apos;t know whether otherwise the
&gt; multiplication automagically propagates the product into a uint16_t before
&gt; it&apos;s divided and narrowed back down to uint8_t.

Yeah, you&apos;re right, my fault. But the *Index ones can remain as uint8_t as they are just indexes, no operations are done with them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765368</commentid>
    <comment_count>13</comment_count>
      <attachid>430189</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-05-31 02:41:59 -0700</bug_when>
    <thetext>Created attachment 430189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765390</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-31 05:22:50 -0700</bug_when>
    <thetext>zan@falconsigh.net does not have reviewer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/Tools/Scripts/webkitpy/common/config/contributors.json.

Rejecting attachment 430189 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765405</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-31 06:33:24 -0700</bug_when>
    <thetext>Committed r278276 (238313@main): &lt;https://commits.webkit.org/238313@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430189.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429871</attachid>
            <date>2021-05-27 05:54:41 -0700</date>
            <delta_ts>2021-05-27 10:49:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225961-20210527145440.patch</filename>
            <type>text/plain</type>
            <size>20691</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2NGJkZjBhYzMwN2Zh
MzgxYjgyNGY3M2Q2MzM0YTY4ZjVmOWQxNy4uZTQxYmYyYTYzOWNiMjMwNDFkOGQxMzQ4OTliNWM4
OWU3YmU0MjFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTA1LTI3ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSW5j
b3JyZWN0IHJlbmRlcmluZyBvZiBWUDkgd2l0aCB0cmFuc3BhcmVuY3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcmVuZGVyaW5nIG9mIHZp
ZGVvcyB3aXRoIHRyYW5zcGFyZW5jeS4gVGhpcyBpcyBkb25lIGJvdGggQUMgYW5kIG5vbiBBQyBt
b2Rlcy4KKworICAgICAgICBPbiBBQyBtb2RlLCBhIG5ldyBvcHRpb24gd2FzIGFkZGVkIHRvIFRl
eHR1cmVNYXBwZXJHTCBhbmQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0KKyAgICAgICAgdG8g
c3VwcG9ydCBwcmVtdWx0aXBseWluZyB0aGUgY29tcG9uZW50cyBvZiBhIHBpeGVsLiBUaGlzIGlz
IHJlcXVpcmVkIGJlY2F1c2UgR1N0cmVhbWVyCisgICAgICAgIHVzZXMgc3RyYWlnaHQgYWxwaGEs
IGFuZCB3ZSBuZWVkIGl0IHByZW11bHRpcGxpZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY29y
cmVjdCBibGVuZGluZy4KKyAgICAgICAgVGhlbiB3ZSB1c2UgdGhhdCBuZXcgb3B0aW9uIHRvIHJl
bmRlciB2aWRlbyBmcmFtZXMgYW5kIHRoYXQgd29ya3MuIFRoaXMgbmV3IG9wdGlvbiBpcyBhbHNv
CisgICAgICAgIHVzZWQgd2hlbiBjb3B5aW5nIHRoZSB2aWRlbyBmcmFtZSBpbnRvIGFuIGV4dGVy
bmFsIHRleHR1cmUgaWYgcHJlbXVsdGlwbHlBbHBoYSBpcworICAgICAgICByZXF1ZXN0ZWQuCisK
KyAgICAgICAgT24gbm9uIEFDIG1vZGUsIGFkZGVkIHN1cHBvcnQgdG8gSW1hZ2VHU3RyZWFtZXJD
YWlybyB0byBwcmVtdWx0aXBseSB0aGUgYWxwaGEgYmVmb3JlCisgICAgICAgIGNyZWF0aW5nIHRo
ZSBjYWlybyBzdXJmYWNlIHRvIHBhaW50LCBhbmQgcGFzc2VkIHRoZSBhcHByb3ByaWF0ZSBjb21w
b3NpdGUgb3BlcmF0b3Igd2hlbgorICAgICAgICBkcmF3aW5nIGl0LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRlcjo6R3N0VmlkZW9GcmFtZUhvbGRl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVh
bWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4
dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVy
ZUNvcGllckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3Bp
ZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1l
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW0uaDoKKwogMjAyMS0wNS0yNiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFByZXZlbnQgc2JpeCBnbHlwaHMgZnJvbSBiZWluZyByZW5k
ZXJlZCBpbiB0aGUgR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lSG9sZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Zy
YW1lSG9sZGVyLmNwcAppbmRleCBlZWYxMjc0YmVkZjJjYTEwYTg0MzU1NDZhYTI2MTIyYThjZGI1
ZGI0Li44MTBlNmI4NDJkNGJlYzExMzk2OGFmMjIxYjdiNzk0YTNjY2MxYmI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9GcmFtZUhvbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xkZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBA
IEdzdFZpZGVvRnJhbWVIb2xkZXI6OkdzdFZpZGVvRnJhbWVIb2xkZXIoR3N0U2FtcGxlKiBzYW1w
bGUsIE9wdGlvbmFsPEdzdFZpZGVvRGVjCiAgICAgICAgIHJldHVybjsKIAogI2lmIFVTRShHU1RS
RUFNRVJfR0wpCi0gICAgbV9mbGFncyA9IGZsYWdzIHwgKG1faGFzQWxwaGFDaGFubmVsID8gVGV4
dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDApOworICAgIG1fZmxhZ3MgPSBmbGFncyB8ICht
X2hhc0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgfCBUZXh0dXJl
TWFwcGVyR0w6OlNob3VsZFByZW11bHRpcGx5IDogMCk7CiAKICAgICBHc3RNZW1vcnkqIG1lbW9y
eSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkobV9idWZmZXIuZ2V0KCksIDApOwogICAgIGlmIChn
c3RfaXNfZ2xfbWVtb3J5KG1lbW9yeSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5j
cHAKaW5kZXggYmM4MDY2NDQ5NmYzOTllOTZlY2I2ZGEzYzAwZDMyOWIzZTRhM2E3OS4uY2FiZDVi
NzBmZTE4NDc5MzMwNTg3M2IwZDJkMTA5ZDYzYWFlMThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdT
dHJlYW1lckNhaXJvLmNwcApAQCAtMzksOSArMzksNiBAQCBJbWFnZUdTdHJlYW1lcjo6SW1hZ2VH
U3RyZWFtZXIoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9t
X2NhcHMoJnZpZGVvSW5mbywgY2FwcykpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFJpZ2h0
IG5vdyB0aGUgVGV4dHVyZU1hcHBlciBvbmx5IHN1cHBvcnRzIGNocm9tYXMgd2l0aCBvbmUgcGxh
bmUKLSAgICBBU1NFUlQoR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJnZpZGVvSW5mbykgPT0gMSk7
Ci0KICAgICBtX2hhc0FscGhhID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8p
OwogCiAgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxl
KTsKQEAgLTUyLDUwICs0OSwxMjEgQEAgSW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdz
dFNhbXBsZSogc2FtcGxlKQogICAgIGlmICghbV9mcmFtZU1hcHBlZCkKICAgICAgICAgcmV0dXJu
OwogCisgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBjb252ZXJ0aW5nIEk0MjAsIFk0NDQs
IFlWMTIsIFk0MUIsIFk0MkIsIE5WMTIsIE5WMjEgYW5kIFZVWUEgaW50byBzb21ldGhpbmcgdGhh
dCBjYWlybyBjYW4gcmVuZGVyCisgICAgLy8gc28gd2UgY2FuIHBhaW50IHRob3NlIHZpZGVvcyBp
bnRvIGEgY2FudmFzLgorICAgIGJvb2wgY29tcG9uZW50U3dhcFJlcXVpcmVkID0gZmFsc2U7Cisg
ICAgc3dpdGNoIChHU1RfVklERU9fRlJBTUVfRk9STUFUKCZtX3ZpZGVvRnJhbWUpKSB7CisgICAg
Y2FzZSBHU1RfVklERU9fRk9STUFUX0JHUng6CisgICAgY2FzZSBHU1RfVklERU9fRk9STUFUX0JH
UkE6CisgICAgY2FzZSBHU1RfVklERU9fRk9STUFUX3hSR0I6CisgICAgY2FzZSBHU1RfVklERU9f
Rk9STUFUX0FSR0I6CisgICAgICAgIGNvbXBvbmVudFN3YXBSZXF1aXJlZCA9IGZhbHNlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEdTVF9WSURFT19GT1JNQVRfUkdCeDoKKyAgICBjYXNlIEdT
VF9WSURFT19GT1JNQVRfUkdCQToKKyAgICAgICAgY29tcG9uZW50U3dhcFJlcXVpcmVkID0gdHJ1
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgLy8gVW5zdXBwb3J0ZWQg
Zm9ybWF0cy4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHVuc2lnbmVkIGNoYXIqIGJ1
ZmZlckRhdGEgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihHU1RfVklERU9fRlJB
TUVfUExBTkVfREFUQSgmbV92aWRlb0ZyYW1lLCAwKSk7CiAgICAgaW50IHN0cmlkZSA9IEdTVF9W
SURFT19GUkFNRV9QTEFORV9TVFJJREUoJm1fdmlkZW9GcmFtZSwgMCk7CiAgICAgaW50IHdpZHRo
ID0gR1NUX1ZJREVPX0ZSQU1FX1dJRFRIKCZtX3ZpZGVvRnJhbWUpOwogICAgIGludCBoZWlnaHQg
PSBHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZtX3ZpZGVvRnJhbWUpOwotCiAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gc3VyZmFjZTsKLSAgICBjYWlyb19mb3JtYXRfdCBjYWlyb0Zvcm1hdDsK
LSAgICBjYWlyb0Zvcm1hdCA9IChHU1RfVklERU9fRlJBTUVfRk9STUFUKCZtX3ZpZGVvRnJhbWUp
ID09IEdTVF9WSURFT19GT1JNQVRfUkdCQSkgPyBDQUlST19GT1JNQVRfQVJHQjMyIDogQ0FJUk9f
Rk9STUFUX1JHQjI0OwogCi0gICAgLy8gR1N0cmVhbWVyIGRvZXNuJ3QgdXNlIHByZW11bHRpcGxp
ZWQgYWxwaGEsIGJ1dCBjYWlybyBkb2VzLiBTbyBpZiB0aGUgdmlkZW8gZm9ybWF0IGhhcyBhbiBh
bHBoYSBjb21wb25lbnQKLSAgICAvLyB3ZSBuZWVkIHRvIHByZW11bHRpcGx5IGl0IGJlZm9yZSBw
YXNzaW5nIHRoZSBkYXRhIHRvIGNhaXJvLiBUaGlzIG5lZWRzIHRvIGJlIGJvdGggdXNpbmcgZ3N0
cmVhbWVyLWdsIGFuZCBub3QKLSAgICAvLyB1c2luZyBpdC4KKyAgICAvLyBGcm9tIHRoZSB2aWRl
byBzaW5rIHdlIGNhbiBnZXQgdGhlc2UgZm9ybWF0cyAoYWxsIG9mIHRoZW0gMzIgYml0cyBwZXIg
cGl4ZWwpOgorICAgIC8vIC0geyBCR1J4LCBCR1JBIH0gZnJvbSBWaWRlb1NpbmtHU3RyZWFtZXI6
IGxpdHRsZSBlbmRpYW4sIG5vbiBBQyBtb2RlIG9yIHBhaW50IHRvIG5vbiBhY2NlbGVyYXRlZCBj
YW52YXMuCisgICAgLy8gLSB7IHhSR0IsIEFSR0IgfSBmcm9tIFZpZGVvU2lua0dTdHJlYW1lcjog
YmlnIGVuZGlhbiwgbm9uIEFDIG1vZGUgb3IgcGFpbnQgdG8gbm9uIGFjY2VsZXJhdGVkIGNhbnZh
cy4KKyAgICAvLyAtIHsgUkdCeCwgUkdCQSB9IGZyb20gR0xWaWRlb1NpbmtHU3RyZWFtZXI6IHBh
aW50IHRvIG5vbiBhY2NlbGVyYXRlZCBjYW52YXMgd2l0aCBHU3RyZWFtZXItZ2wgZW5hYmxlZC4K
ICAgICAvLwotICAgIC8vIFRoaXMgbWV0aG9kIGNvdWxkIGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVz
IGZvciB0aGUgc2FtZSBidWZmZXIsIGZvciBleGFtcGxlIGlmIHdlIGFyZSByZW5kZXJpbmcgdGhl
IHZpZGVvIGZyYW1lcwotICAgIC8vIGluIHNldmVyYWwgbm9uIGFjY2VsZXJhdGVkIGNhbnZhc2Vz
LiBEdWUgdG8gdGhpcywgd2UgY2Fubm90IG1vZGlmeSB0aGUgYnVmZmVyLCBzbyB3ZSBuZWVkIHRv
IGNyZWF0ZSBhIGNvcHkuCi0gICAgaWYgKGNhaXJvRm9ybWF0ID09IENBSVJPX0ZPUk1BVF9BUkdC
MzIpIHsKKyAgICAvLyBJbnRlcm5hbGx5IGNhaXJvIHVzZXMgQkdSQSBmb3IgQ0FJUk9fRk9STUFU
X0FSR0IzMiBvbiBsaXR0bGUgZW5kaWFuIGFuZCBBUkdCIG9uIGJpZyBlbmRpYW4sIHNvIGJvdGgg
eyBCR1J4LCBCR1JBIH0KKyAgICAvLyBhbmQgeyB4UkdCLCBBUkdCIH0gY2FuIGJlIHBhc3NlZCBk
aXJlY3RseSB0byBjYWlyby4gQnV0IGZvciB7IFJHQngsIFJHQkEgfSB3ZSBuZWVkIHRvIHN3YXAg
dGhlIFIgYW5kIEIgY29tcG9uZW50cy4KKyAgICAvLyBBbHNvLCBHU3RyZWFtZXIgdXNlcyBzdHJh
aWdodCBhbHBoYSB3aGlsZSBjYWlybyByZXF1aXJlcyBpdCB0byBiZSBwcmVtdWx0aXBsaWVkLCBz
byBpZiB0aGUgZm9ybWF0IGhhcyBhbHBoYQorICAgIC8vIHdlIG5lZWQgdG8gcHJlbXVsdGlwbHkg
dGhlIGNvbG9yIGNvbXBvbmVudHMuIFNvIGluIHRoZXNlIGNhc2VzIHdlIG5lZWQgdG8gY3JlYXRl
IGEgbW9kaWZpZWQgY29weSBvZiB0aGUgb3JpZ2luYWwKKyAgICAvLyBidWZmZXIuCisgICAgaWYg
KG1faGFzQWxwaGEgfHwgY29tcG9uZW50U3dhcFJlcXVpcmVkKSB7CiAgICAgICAgIHVuc2lnbmVk
IGNoYXIqIHN1cmZhY2VEYXRhID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KGZhc3RNYWxs
b2MoaGVpZ2h0ICogc3RyaWRlKSk7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIqIHN1cmZhY2VQaXhl
bCA9IHN1cmZhY2VEYXRhOwogCiAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHgr
KykgewogICAgICAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7IHkrKykgewotICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGFscGhhID0gYnVmZmVyRGF0YVszXTsKKyAgICAg
ICAgICAgICAgICAvLyBUaGVzZSBzdG9yZSB0aGUgc291cmNlIHBpeGVsIGNvbXBvbmVudHMuCisg
ICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgcmVkOworICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHNob3J0IGdyZWVuOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGJsdWU7Cisg
ICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYWxwaGE7CisgICAgICAgICAgICAgICAgLy8g
VGhlc2Ugc3RvcmUgdGhlIGNvbXBvbmVudCBvZmZzZXQgaW5zaWRlIHRoZSBwaXhlbCBmb3IgdGhl
IGRlc3RpbmF0aW9uIHN1cmZhY2UuCisgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgcmVk
SW5kZXg7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgZ3JlZW5JbmRleDsKKyAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBibHVlSW5kZXg7CisgICAgICAgICAgICAgICAgdW5z
aWduZWQgc2hvcnQgYWxwaGFJbmRleDsKKyAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50U3dh
cFJlcXVpcmVkKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNvdXJjZSBpcyBSR0JBIG9yIFJH
QnguCisgICAgICAgICAgICAgICAgICAgIHJlZCA9IGJ1ZmZlckRhdGFbMF07CisgICAgICAgICAg
ICAgICAgICAgIGdyZWVuID0gYnVmZmVyRGF0YVsxXTsKKyAgICAgICAgICAgICAgICAgICAgYmx1
ZSA9IGJ1ZmZlckRhdGFbMl07CisgICAgICAgICAgICAgICAgICAgIGFscGhhID0gYnVmZmVyRGF0
YVszXTsKICNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCi0gICAgICAgICAgICAg
ICAgLy8gVmlkZW8gZnJhbWVzIHVzZSBSR0JBIGluIGxpdHRsZSBlbmRpYW4uCi0gICAgICAgICAg
ICAgICAgc3VyZmFjZVBpeGVsWzBdID0gKGJ1ZmZlckRhdGFbMl0gKiBhbHBoYSArIDEyOCkgLyAy
NTU7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzFdID0gKGJ1ZmZlckRhdGFbMV0gKiBh
bHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzJdID0gKGJ1
ZmZlckRhdGFbMF0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgc3VyZmFj
ZVBpeGVsWzNdID0gYWxwaGE7CisgICAgICAgICAgICAgICAgICAgIC8vIERlc3RpbmF0aW9uIGlz
IEJHUkEuCisgICAgICAgICAgICAgICAgICAgIHJlZEluZGV4ID0gMjsKKyAgICAgICAgICAgICAg
ICAgICAgZ3JlZW5JbmRleCA9IDE7CisgICAgICAgICAgICAgICAgICAgIGJsdWVJbmRleCA9IDA7
CisgICAgICAgICAgICAgICAgICAgIGFscGhhSW5kZXggPSAzOwogI2Vsc2UKLSAgICAgICAgICAg
ICAgICAvLyBWaWRlbyBmcmFtZXMgdXNlIFJHQkEgaW4gYmlnIGVuZGlhbi4KLSAgICAgICAgICAg
ICAgICBzdXJmYWNlUGl4ZWxbMF0gPSBhbHBoYTsKLSAgICAgICAgICAgICAgICBzdXJmYWNlUGl4
ZWxbMV0gPSAoYnVmZmVyRGF0YVswXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKLSAgICAgICAgICAg
ICAgICBzdXJmYWNlUGl4ZWxbMl0gPSAoYnVmZmVyRGF0YVsxXSAqIGFscGhhICsgMTI4KSAvIDI1
NTsKLSAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbM10gPSAoYnVmZmVyRGF0YVsyXSAqIGFs
cGhhICsgMTI4KSAvIDI1NTsKKyAgICAgICAgICAgICAgICAgICAgLy8gRGVzdGluYXRpb24gaXMg
QVJHQi4KKyAgICAgICAgICAgICAgICAgICAgcmVkSW5kZXggPSAxOworICAgICAgICAgICAgICAg
ICAgICBncmVlbkluZGV4ID0gMjsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZUluZGV4ID0gMzsK
KyAgICAgICAgICAgICAgICAgICAgYWxwaGFJbmRleCA9IDA7CiAjZW5kaWYKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworI2lmIEdfQllURV9PUkRFUiA9PSBHX0xJVFRMRV9FTkRJQU4KKyAgICAg
ICAgICAgICAgICAgICAgLy8gQkdSQSBvciBCR1J4IGJvdGggc291cmNlIGFuZCBkZXN0aW5hdGlv
bi4KKyAgICAgICAgICAgICAgICAgICAgcmVkID0gYnVmZmVyRGF0YVsyXTsKKyAgICAgICAgICAg
ICAgICAgICAgZ3JlZW4gPSBidWZmZXJEYXRhWzFdOworICAgICAgICAgICAgICAgICAgICBibHVl
ID0gYnVmZmVyRGF0YVswXTsKKyAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSBidWZmZXJEYXRh
WzNdOworICAgICAgICAgICAgICAgICAgICByZWRJbmRleCA9IDI7CisgICAgICAgICAgICAgICAg
ICAgIGdyZWVuSW5kZXggPSAxOworICAgICAgICAgICAgICAgICAgICBibHVlSW5kZXggPSAwOwor
ICAgICAgICAgICAgICAgICAgICBhbHBoYUluZGV4ID0gMzsKKyNlbHNlCisgICAgICAgICAgICAg
ICAgICAgIC8vIEFSR0Igb3QgeFJHQiBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24uCisgICAg
ICAgICAgICAgICAgICAgIHJlZCA9IGJ1ZmZlckRhdGFbMV07CisgICAgICAgICAgICAgICAgICAg
IGdyZWVuID0gYnVmZmVyRGF0YVsyXTsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZSA9IGJ1ZmZl
ckRhdGFbM107CisgICAgICAgICAgICAgICAgICAgIGFscGhhID0gYnVmZmVyRGF0YVswXTsKKyAg
ICAgICAgICAgICAgICAgICAgcmVkSW5kZXggPSAxOworICAgICAgICAgICAgICAgICAgICBncmVl
bkluZGV4ID0gMjsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZUluZGV4ID0gMzsKKyAgICAgICAg
ICAgICAgICAgICAgYWxwaGFJbmRleCA9IDA7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBpZiAobV9oYXNBbHBoYSkgeworICAgICAgICAgICAgICAgICAgICBz
dXJmYWNlUGl4ZWxbcmVkSW5kZXhdID0gKHJlZCAqIGFscGhhICsgMTI4KSAvIDI1NTsKKyAgICAg
ICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2dyZWVuSW5kZXhdID0gKGdyZWVuICogYWxwaGEg
KyAxMjgpIC8gMjU1OworICAgICAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbYmx1ZUluZGV4
XSA9IChibHVlICogYWxwaGEgKyAxMjgpIC8gMjU1OworICAgICAgICAgICAgICAgICAgICBzdXJm
YWNlUGl4ZWxbYWxwaGFJbmRleF0gPSBhbHBoYTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbcmVkSW5kZXhdID0gcmVkOworICAgICAg
ICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbZ3JlZW5JbmRleF0gPSBncmVlbjsKKyAgICAgICAg
ICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2JsdWVJbmRleF0gPSBibHVlOworICAgICAgICAgICAg
ICAgICAgICBzdXJmYWNlUGl4ZWxbYWxwaGFJbmRleF0gPSBhbHBoYTsKKyAgICAgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgICAgICBidWZmZXJEYXRhICs9IDQ7CiAgICAgICAgICAgICAgICAg
c3VyZmFjZVBpeGVsICs9IDQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgc3Vy
ZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKHN1cmZh
Y2VEYXRhLCBjYWlyb0Zvcm1hdCwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSk7CisgICAgICAgIHN1
cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShzdXJm
YWNlRGF0YSwgQ0FJUk9fRk9STUFUX0FSR0IzMiwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSk7CiAg
ICAgICAgIHN0YXRpYyBjYWlyb191c2VyX2RhdGFfa2V5X3Qgc19zdXJmYWNlRGF0YUtleTsKICAg
ICAgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKHN1cmZhY2UuZ2V0KCksICZzX3N1cmZh
Y2VEYXRhS2V5LCBzdXJmYWNlRGF0YSwgW10odm9pZCogZGF0YSkgeyBmYXN0RnJlZShkYXRhKTsg
fSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9z
dXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXJEYXRhLCBjYWlyb0Zvcm1hdCwgd2lkdGgsIGhl
aWdodCwgc3RyaWRlKSk7CisgICAgICAgIHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9z
dXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXJEYXRhLCBDQUlST19GT1JNQVRfQVJHQjMyLCB3
aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKIAogICAgIEFTU0VSVChjYWlyb19zdXJmYWNlX3N0YXR1
cyhzdXJmYWNlLmdldCgpKSA9PSBDQUlST19TVEFUVVNfU1VDQ0VTUyk7CiAgICAgbV9pbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoV1RGTW92ZShzdXJmYWNlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDU2NmZiZTI1MGFlYTQzOTI3
MGIxZGQwNjNjZGE2NjlhYzcyYzc2MTYuLmZhNjM1ZGEzYWU1YjExNjg4NjNiNjZjNmNjNTM4YTEy
MjBlYmI5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCkBAIC0yOTQ2LDcgKzI5NDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgICAgICAgICAgICAgIGxheWVyQnVm
ZmVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4oV1RGTW92
ZSh0ZXh0dXJlKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmcmFtZUhvbGRlci0+dXBk
YXRlVGV4dHVyZShsYXllckJ1ZmZlci0+dGV4dHVyZUdMKCkpOwotICAgICAgICAgICAgbGF5ZXJC
dWZmZXItPnNldEV4dHJhRmxhZ3MobV90ZXh0dXJlTWFwcGVyRmxhZ3MgfCAoZnJhbWVIb2xkZXIt
Pmhhc0FscGhhQ2hhbm5lbCgpID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDApKTsK
KyAgICAgICAgICAgIGxheWVyQnVmZmVyLT5zZXRFeHRyYUZsYWdzKG1fdGV4dHVyZU1hcHBlckZs
YWdzIHwgKGZyYW1lSG9sZGVyLT5oYXNBbHBoYUNoYW5uZWwoKSA/IFRleHR1cmVNYXBwZXJHTDo6
U2hvdWxkQmxlbmQgfCBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZFByZW11bHRpcGx5IDogMCkpOwog
ICAgICAgICB9CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZm
ZXIpKTsKICAgICB9OwpAQCAtMzMyMyw3ICszMzIzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWMKICAgICBpZiAoIWdzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb250ZXh0LmRy
YXdJbWFnZShnc3RJbWFnZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgeyBDb21w
b3NpdGVPcGVyYXRvcjo6Q29weSwgbV9zaG91bGRIYW5kbGVPcmllbnRhdGlvblRhZ3MgPyBtX3Zp
ZGVvU291cmNlT3JpZW50YXRpb24gOiBJbWFnZU9yaWVudGF0aW9uKCkgfSk7CisgICAgY29udGV4
dC5kcmF3SW1hZ2UoZ3N0SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIHsg
Z3N0SW1hZ2UtPmhhc0FscGhhKCkgPyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciA6IENv
bXBvc2l0ZU9wZXJhdG9yOjpDb3B5LCBtX3Nob3VsZEhhbmRsZU9yaWVudGF0aW9uVGFncyA/IG1f
dmlkZW9Tb3VyY2VPcmllbnRhdGlvbiA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKIH0KIAogI2lm
IFVTRShHU1RSRUFNRVJfR0wpCkBAIC0zMzM0LDkgKzMzMzQsNiBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBo
aWNzQ29udAogICAgIGlmIChtX2lzVXNpbmdGYWxsYmFja1ZpZGVvU2luaykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKHByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQogICAgIExvY2tlciBzYW1wbGVMb2NrZXIgeyBtX3NhbXBsZU11dGV4IH07CiAKICAg
ICBpZiAoIUdTVF9JU19TQU1QTEUobV9zYW1wbGUuZ2V0KCkpKQpAQCAtMzM1Nyw3ICszMzU0LDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnQKIAogICAgIGZyYW1lSG9sZGVyLT53YWl0Rm9yQ1BV
U3luYygpOwogCi0gICAgcmV0dXJuIG1fdmlkZW9UZXh0dXJlQ29waWVyLT5jb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoKmxheWVyQnVmZmVyLmdldCgpLCBzaXplLCBvdXRwdXRUZXh0
dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBm
bGlwWSwgbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uKTsKKyAgICByZXR1cm4gbV92aWRlb1RleHR1
cmVDb3BpZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgqbGF5ZXJCdWZmZXIu
Z2V0KCksIHNpemUsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFs
Rm9ybWF0LCBmb3JtYXQsIHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNlT3JpZW50YXRpb24sIHBy
ZW11bHRpcGx5QWxwaGEpOwogfQogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29w
aWVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwCmluZGV4IGI4OGM4MDI4MWVmYjE5
ZTU4Y2NlZTFjYTkxYjk3OGI5N2RlOThjZjAuLjkwNThmMDgxNDg2OWZkZmVjMjkzNjc5ZGNkNTE5
M2Q4Y2UwNDllOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXIuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBWaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXI6OnVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCkKICAgICAgICAgLTEsIDEsIC0oZmFy
VmFsdWUgKyBuZWFyVmFsdWUpIC8gKGZhclZhbHVlIC0gbmVhclZhbHVlKSwgMSk7CiB9CiAKLWJv
b2wgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9y
bVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXImIGlucHV0VGV4dHVyZSwg
SW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwgR0xlbnVtIG91dHB1dFRh
cmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24gc291cmNlT3JpZW50YXRp
b24pCitib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyJiBpbnB1dFRl
eHR1cmUsIEludFNpemUmIGZyYW1lU2l6ZSwgR0x1aW50IG91dHB1dFRleHR1cmUsIEdMZW51bSBv
dXRwdXRUYXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBm
b3JtYXQsIEdMZW51bSB0eXBlLCBib29sIGZsaXBZLCBJbWFnZU9yaWVudGF0aW9uIHNvdXJjZU9y
aWVudGF0aW9uLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAgICAgaWYgKCFtX2ZyYW1lYnVm
ZmVyIHx8ICFtX3ZibyB8fCBmcmFtZVNpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xNjEsNyArMTYxLDcgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6
OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGUKICAgICB1c2lu
ZyBCdWZmZXIgPSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjsKICAgICBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9ucyBvcHRpb25zOwogICAgIFdURjo6c3dpdGNoT24o
aW5wdXRUZXh0dXJlLnRleHR1cmVWYXJpYW50KCksCi0gICAgICAgIFsmXShjb25zdCBCdWZmZXI6
OlJHQlRleHR1cmUmKSB7IG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4
dHVyZVJHQjsgfSwKKyAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6UkdCVGV4dHVyZSYpIHsgb3B0
aW9ucyA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCIHwgKHByZW11bHRp
cGx5QWxwaGEgPyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlwbHkgOiAwKTsg
fSwKICAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6WVVWVGV4dHVyZSYgdGV4dHVyZSkgewogICAg
ICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLm51bWJlck9mUGxhbmVzKSB7CiAgICAgICAgICAgICBj
YXNlIDE6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmgKaW5k
ZXggNTc5Yjg3ZTMzYjYwNGM5NjViN2U2NTJjOTk3MWI2NDAwZjFmYjBkNC4uZWFiYTk1YjI2MWY3
MGFkZTY3ZDY5YjVhNjU1NjQzYjA1ZDMxYjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Rl
eHR1cmVDb3BpZXJHU3RyZWFtZXIuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgVmlk
ZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyKENvbG9yQ29udmVyc2lvbik7CiAgICAgflZpZGVvVGV4
dHVyZUNvcGllckdTdHJlYW1lcigpOwogCi0gICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXImIGlucHV0VGV4dHVy
ZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwgR0xlbnVtIG91dHB1
dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24gc291cmNlT3JpZW50
YXRpb24pOworICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyJiBpbnB1dFRleHR1cmUsIEludFNpemUmIGZyYW1l
U2l6ZSwgR0x1aW50IG91dHB1dFRleHR1cmUsIEdMZW51bSBvdXRwdXRUYXJnZXQsIEdMaW50IGxl
dmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBi
b29sIGZsaXBZLCBJbWFnZU9yaWVudGF0aW9uIHNvdXJjZU9yaWVudGF0aW9uLCBib29sIHByZW11
bHRpcGx5QWxwaGEpOwogICAgIHZvaWQgdXBkYXRlQ29sb3JDb252ZXJzaW9uTWF0cml4KENvbG9y
Q29udmVyc2lvbik7CiAgICAgdm9pZCB1cGRhdGVUZXh0dXJlU3BhY2VNYXRyaXgoKTsKICAgICB2
b2lkIHVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmlu
ZGV4IDE4ODk5ZTU5OGY3NmNmMmNjMTA5MjhkZWM1ZmFmNWU3ZWZjNzg4ZmMuLjAwYzhlODdlOTE1
NjlhNTY1ZjVkYWZhMTU1YzZjZjE2MTZmZGM2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBA
IC01MDQsNiArNTA0LDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKEdMdWlu
dCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgdGUKICAgICAgICAgZmxhZ3Mg
fD0gU2hvdWxkQmxlbmQ7CiAgICAgfQogCisgICAgaWYgKGZsYWdzICYgU2hvdWxkUHJlbXVsdGlw
bHkpCisgICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlByZW11
bHRpcGx5OworCiAgICAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0g
ZGF0YSgpLmdldFNoYWRlclByb2dyYW0ob3B0aW9ucyk7CiAKICAgICBpZiAoZmlsdGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5oCmluZGV4IDM4NzRkN2VlY2IwMWI1OTk4NTA5NWExMmIwYWEwMGJiYjA0N2Qz
YzcuLjRjN2RkYWE2YjIzNGFmZDhhZGMwMGU5YTI1MmQ2YzAyYWNlMmUxMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmgKQEAgLTU3LDcgKzU3LDggQEAgcHVibGljOgogICAgICAgICBTaG91bGRDb252ZXJ0
VGV4dHVyZUJHUkFUb1JHQkEgPSAweDgwLAogICAgICAgICBTaG91bGRDb252ZXJ0VGV4dHVyZUFS
R0JUb1JHQkEgPSAweDEwMCwKICAgICAgICAgU2hvdWxkTm90QmxlbmQgPSAweDIwMCwKLSAgICAg
ICAgU2hvdWxkVXNlRXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCA9IDB4NDAwCisgICAgICAgIFNob3Vs
ZFVzZUV4dGVybmFsT0VTVGV4dHVyZVJlY3QgPSAweDQwMCwKKyAgICAgICAgU2hvdWxkUHJlbXVs
dGlwbHkgPSAweDgwMAogICAgIH07CiAKICAgICB0eXBlZGVmIGludCBGbGFnczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmluZGV4IGNmYjViOGIwYmE0MTk2MGFi
NjRjOGZhYzBkOTUyMmVhNDViYWMyMGEuLjI4Yjk2ODMwZDVmYzQzMDczNGFjNzE2M2ZiZjliZTI4
OWVhNDM5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcApA
QCAtMjY0LDYgKzI2NCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRlbXBsYXRlQ29t
bW9uID0KIAogICAgICAgICB2b2lkIGFwcGx5VGV4dHVyZVJHQihpbm91dCB2ZWM0IGNvbG9yLCB2
ZWMyIHRleENvb3JkKSB7IGNvbG9yID0gdV90ZXh0dXJlQ29sb3JTcGFjZU1hdHJpeCAqIFNhbXBs
ZXJGdW5jdGlvbihzX3NhbXBsZXIsIHRleENvb3JkKTsgfQogCisgICAgICAgIHZvaWQgYXBwbHlQ
cmVtdWx0aXBseShpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBj
b2xvci5hLCBjb2xvci5hKTsgfQorCiAgICAgICAgIHZlYzMgeXV2VG9SZ2IoZmxvYXQgeSwgZmxv
YXQgdSwgZmxvYXQgdikKICAgICAgICAgewogICAgICAgICAgICAgLy8geXV2IGlzIGVpdGhlciBi
dDYwMSBvciBidDcwOSBzbyB0aGUgb2Zmc2V0IGlzIHRoZSBzYW1lCkBAIC00ODMsNiArNDg1LDcg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxhdGVDb21tb24gPQogICAgICAgICAg
ICAgdmVjMiB0ZXhDb29yZCA9IHRyYW5zZm9ybVRleENvb3JkKCk7CiAgICAgICAgICAgICBhcHBs
eU1hbnVhbFJlcGVhdElmTmVlZGVkKHRleENvb3JkKTsKICAgICAgICAgICAgIGFwcGx5VGV4dHVy
ZVJHQklmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CisgICAgICAgICAgICBhcHBseVByZW11bHRp
cGx5SWZOZWVkZWQoY29sb3IpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlWVVWSWZOZWVkZWQo
Y29sb3IsIHRleENvb3JkKTsKICAgICAgICAgICAgIGFwcGx5VGV4dHVyZU5WMTJJZk5lZWRlZChj
b2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlTlYyMUlmTmVlZGVkKGNv
bG9yLCB0ZXhDb29yZCk7CkBAIC01MzcsNiArNTQwLDcgQEAgUmVmPFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRleHR1cmVNYXBw
ZXIKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoTWFudWFsUmVwZWF0KTsKICAgICBTRVRf
QVBQTElFUl9GUk9NX09QVElPTlMoVGV4dHVyZUV4dGVybmFsT0VTKTsKICAgICBTRVRfQVBQTElF
Ul9GUk9NX09QVElPTlMoUm91bmRlZFJlY3RDbGlwKTsKKyAgICBTRVRfQVBQTElFUl9GUk9NX09Q
VElPTlMoUHJlbXVsdGlwbHkpOwogCiAgICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhTaGFkZXJCdWls
ZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCmluZGV4IGQ2YWM1
MDE4MjE3MjY3N2Q2MDExMmEwMmU0ZjhkNzVjNTcwMGI1MTMuLjgyNmM1YjgxOGIxNTAyZWVmNTZi
N2M5YTZiOGUyZTVkZjMzZTM3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgICAgICBUZXh0dXJlUGFja2Vk
WVVWID0gMUwgPDwgMjEsCiAgICAgICAgIFRleHR1cmVFeHRlcm5hbE9FUyA9IDFMIDw8IDIyLAog
ICAgICAgICBSb3VuZGVkUmVjdENsaXAgID0gMUwgPDwgMjMsCisgICAgICAgIFByZW11bHRpcGx5
ICAgICAgPSAxTCA8PCAyNCwKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBWYXJpYWJsZUlEIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429901</attachid>
            <date>2021-05-27 10:49:53 -0700</date>
            <delta_ts>2021-05-28 09:29:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225961-20210527194952.patch</filename>
            <type>text/plain</type>
            <size>22097</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUxNzg1M2YxZjY0NGY0
MjFkMjNlYjBkMTliM2Q1MjIzZTQ5MmYyNi4uNjIwM2QyNDExZDljNjllNmRmZjQ3NWU4NGZjMzI4
NTJhZTdhZGZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA1LTI3ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSW5j
b3JyZWN0IHJlbmRlcmluZyBvZiBWUDkgd2l0aCB0cmFuc3BhcmVuY3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcmVuZGVyaW5nIG9mIHZp
ZGVvcyB3aXRoIHRyYW5zcGFyZW5jeS4gVGhpcyBpcyBkb25lIGJvdGggQUMgYW5kIG5vbiBBQyBt
b2RlcyBhbmQKKyAgICAgICAgd2l0aCBhbmQgd2l0aG91dCBHU1RSRUFNRVJfR0wgZW5hYmxlZC4K
KworICAgICAgICBPbiBBQyBtb2RlIGFuZCB1c2luZyBHU1RSRUFNRVJfR0wsIGEgbmV3IG9wdGlv
biBpcyBhZGRlZCB0byBUZXh0dXJlTWFwcGVyR0wgYW5kIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtCisgICAgICAgIHRvIHN1cHBvcnQgcHJlbXVsdGlwbHlpbmcgdGhlIGNvbXBvbmVudHMgb2Yg
YSBwaXhlbC4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0
IGFscGhhLAorICAgICAgICBhbmQgd2UgbmVlZCBpdCBwcmVtdWx0aXBsaWVkIGluIG9yZGVyIHRv
IHBlcmZvcm0gdGhlIGNvcnJlY3QgYmxlbmRpbmcgYmxlbmRpbmcgb2YgdGhlIHZpZGVvIGZyYW1l
cy4gVGhlbiB3ZQorICAgICAgICB1c2UgdGhhdCBuZXcgb3B0aW9uIHRvIHJlbmRlciB2aWRlbyBm
cmFtZXMuIFRoaXMgbmV3IG9wdGlvbiBpcyBhbHNvIHVzZWQgd2hlbiBjb3B5aW5nIHRoZSB2aWRl
byBmcmFtZSBpbnRvCisgICAgICAgIGFuIGV4dGVybmFsIHRleHR1cmUgaWYgcHJlbXVsdGlwbHlB
bHBoYSBpcyByZXF1ZXN0ZWQuCisKKyAgICAgICAgT24gbm9uIEFDIG1vZGUsIG9yIHdoZW4gR1N0
cmVhbWVyLWdsIGlzIGRpc2FibGVkLCBhZGQgc3VwcG9ydCB0byBJbWFnZUdTdHJlYW1lckNhaXJv
IHRvIHByZW11bHRpcGx5IHRoZSBhbHBoYQorICAgICAgICBvZiB0aGUgdmlkZW8gZnJhbWUgYmVm
b3JlIGNyZWF0aW5nIHRoZSBjYWlybyBzdXJmYWNlIHRvIHBhaW50LCBhbmQgcGFzcyB0aGUgYXBw
cm9wcmlhdGUgY29tcG9zaXRlIG9wZXJhdG9yIHdoZW4KKyAgICAgICAgZHJhd2luZyB3aXRoIGFs
cGhhLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZp
ZGVvRnJhbWVIb2xkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRl
cjo6R3N0VmlkZW9GcmFtZUhvbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VH
U3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6
IHVwZGF0ZSB0aGUgY2FwcyBvZiB0aGUgY29udmVyc2lvbiB0byBtYWtlIHRoZW0gbWF0Y2ggdGhl
IGZvcm1hdAorICAgICAgICBleHBlY3RlZCBieSBjYWlybywgc28gd2UgY2FuIGF2b2lkIGEgY29t
cG9uZW50IHN3YXAuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMS0w
NS0yNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjI0NDQzNCkgRGlzcGF0Y2ggaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZCBvbiB0aGUg
bWFpbiBmcmFtZSBvbmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUhvbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUhvbGRl
ci5jcHAKaW5kZXggZWVmMTI3NGJlZGYyY2ExMGE4NDM1NTQ2YWEyNjEyMmE4Y2RiNWRiNC4uODEw
ZTZiODQyZDRiZWMxMTM5NjhhZjIyMWI3Yjc5NGEzY2NjMWJiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVI
b2xkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJWaWRlb0ZyYW1lSG9sZGVyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBHc3RWaWRl
b0ZyYW1lSG9sZGVyOjpHc3RWaWRlb0ZyYW1lSG9sZGVyKEdzdFNhbXBsZSogc2FtcGxlLCBPcHRp
b25hbDxHc3RWaWRlb0RlYwogICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dM
KQotICAgIG1fZmxhZ3MgPSBmbGFncyB8IChtX2hhc0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBw
ZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKKyAgICBtX2ZsYWdzID0gZmxhZ3MgfCAobV9oYXNBbHBo
YUNoYW5uZWwgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIHwgVGV4dHVyZU1hcHBlckdM
OjpTaG91bGRQcmVtdWx0aXBseSA6IDApOwogCiAgICAgR3N0TWVtb3J5KiBtZW1vcnkgPSBnc3Rf
YnVmZmVyX3BlZWtfbWVtb3J5KG1fYnVmZmVyLmdldCgpLCAwKTsKICAgICBpZiAoZ3N0X2lzX2ds
X21lbW9yeShtZW1vcnkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4
IGJjODA2NjQ0OTZmMzk5ZTk2ZWNiNmRhM2MwMGQzMjliM2U0YTNhNzkuLjM3MWI0OTQxODQ2NTc1
OTQwZmMzZTNiMzE4MTllNjIyMDJhMWZhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJD
YWlyby5jcHAKQEAgLTM5LDEwICszOSw4IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1l
cihHc3RTYW1wbGUqIHNhbXBsZSkKICAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2Fwcygm
dmlkZW9JbmZvLCBjYXBzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gUmlnaHQgbm93IHRo
ZSBUZXh0dXJlTWFwcGVyIG9ubHkgc3VwcG9ydHMgY2hyb21hcyB3aXRoIG9uZSBwbGFuZQotICAg
IEFTU0VSVChHU1RfVklERU9fSU5GT19OX1BMQU5FUygmdmlkZW9JbmZvKSA9PSAxKTsKLQotICAg
IG1faGFzQWxwaGEgPSBHU1RfVklERU9fSU5GT19IQVNfQUxQSEEoJnZpZGVvSW5mbyk7CisgICAg
Ly8gVGhlIGZyYW1lIGhhcyB0byBSR0Igc28gd2UgY2FuIHBhaW50IGl0LgorICAgIEFTU0VSVChH
U1RfVklERU9fSU5GT19JU19SR0IoJnZpZGVvSW5mbykpOwogCiAgICAgR3N0QnVmZmVyKiBidWZm
ZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsKICAgICBpZiAoVU5MSUtFTFkoIUdT
VF9JU19CVUZGRVIoYnVmZmVyKSkpCkBAIC01Miw1MCArNTAsMTA5IEBAIEltYWdlR1N0cmVhbWVy
OjpJbWFnZUdTdHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKICAgICBpZiAoIW1fZnJhbWVNYXBw
ZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFRoZSB2aWRlbyBidWZmZXIgbWF5IGhhdmUg
dGhlc2UgZm9ybWF0cyBpbiB0aGVzZSBjYXNlczoKKyAgICAvLyB7IEJHUngsIEJHUkEgfTogb24g
bGl0dGxlIGVuZGlhbjoKKyAgICAvLyAgIC0gV2hlbiBHU3RyZWFtZXItZ2wgaXMgZGlzYWJsZWQg
KGJlaW5nIEFDIGVuYWJsZWQgb3Igbm90KSBhcyBWaWRlb1NpbmtHU3RyZWFtZXIgaXMgdXNlZC4K
KyAgICAvLyAgIC0gV2hlbiBHU3RyZWFtZXItZ2wgaXMgZW5hYmxlZCwgYnV0IHRoZSBjYXBzIHVz
ZWQgaW4gdGhlIHNpbmsgYXJlIG5vdCBSR0IgYW5kIGl0J3MgY29udmVydGVkIGJ5IHRoZSBwbGF5
ZXIgdG8gcGFpbnQgaXQuCisgICAgLy8geyB4UkdCLCBBUkdCIH06IG9uIGJpZyBlbmRpYW46Cisg
ICAgLy8gICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlzIGRpc2FibGVkIChiZWluZyBBQyBlbmFibGVk
IG9yIG5vdCkgYXMgVmlkZW9TaW5rR1N0cmVhbWVyIGlzIHVzZWQuCisgICAgLy8gICAtIFdoZW4g
R1N0cmVhbWVyLWdsIGlzIGVuYWJsZWQsIGJ1dCB0aGUgY2FwcyB1c2VkIGluIHRoZSBzaW5rIGFy
ZSBub3QgUkdCIGFuZCBpdCdzIGNvbnZlcnRlZCBieSB0aGUgcGxheWVyIHRvIHBhaW50IGl0Lgor
ICAgIC8vIHsgUkdCeCwgUkdCQSB9CisgICAgLy8gICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlzIGVu
YWJsZWQgYW5kIHRoZSBjYXBzIHVzZWQgaW4gdGhlIHNpbmsgYXJlIFJHQngvUkdCQS4KKyAgICAv
LworICAgIC8vIEludGVybmFsbHkgY2Fpcm8gdXNlcyBCR1JBIGZvciBDQUlST19GT1JNQVRfQVJH
QjMyIG9uIGxpdHRsZSBlbmRpYW4gYW5kIEFSR0Igb24gYmlnIGVuZGlhbiwgc28gYm90aCB7IEJH
UngsIEJHUkEgfQorICAgIC8vIGFuZCB7IHhSR0IsIEFSR0IgfSBjYW4gYmUgcGFzc2VkIGRpcmVj
dGx5IHRvIGNhaXJvLiBCdXQgZm9yIHsgUkdCeCwgUkdCQSB9IHdlIG5lZWQgdG8gc3dhcCB0aGUg
UiBhbmQgQiBjb21wb25lbnRzLgorICAgIC8vIEFsc28sIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0
IGFscGhhIHdoaWxlIGNhaXJvIHJlcXVpcmVzIGl0IHRvIGJlIHByZW11bHRpcGxpZWQsIHNvIGlm
IHRoZSBmb3JtYXQgaGFzIGFscGhhCisgICAgLy8gd2UgbmVlZCB0byBwcmVtdWx0aXBseSB0aGUg
Y29sb3IgY29tcG9uZW50cy4gU28gaW4gdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBjcmVhdGUgYSBt
b2RpZmllZCBjb3B5IG9mIHRoZSBvcmlnaW5hbAorICAgIC8vIGJ1ZmZlci4KKyAgICBtX2hhc0Fs
cGhhID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8pOworICAgIGJvb2wgY29t
cG9uZW50U3dhcFJlcXVpcmVkID0gR1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1l
KSA9PSBHU1RfVklERU9fRk9STUFUX1JHQkEgfHwgR1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92
aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFUX1JHQng7CiAgICAgdW5zaWduZWQgY2hhciog
YnVmZmVyRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KEdTVF9WSURFT19G
UkFNRV9QTEFORV9EQVRBKCZtX3ZpZGVvRnJhbWUsIDApKTsKICAgICBpbnQgc3RyaWRlID0gR1NU
X1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmbV92aWRlb0ZyYW1lLCAwKTsKICAgICBpbnQgd2lk
dGggPSBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1fdmlkZW9GcmFtZSk7CiAgICAgaW50IGhlaWdo
dCA9IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1fdmlkZW9GcmFtZSk7Ci0KICAgICBSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlOwotICAgIGNhaXJvX2Zvcm1hdF90IGNhaXJvRm9ybWF0
OwotICAgIGNhaXJvRm9ybWF0ID0gKEdTVF9WSURFT19GUkFNRV9GT1JNQVQoJm1fdmlkZW9GcmFt
ZSkgPT0gR1NUX1ZJREVPX0ZPUk1BVF9SR0JBKSA/IENBSVJPX0ZPUk1BVF9BUkdCMzIgOiBDQUlS
T19GT1JNQVRfUkdCMjQ7CiAKLSAgICAvLyBHU3RyZWFtZXIgZG9lc24ndCB1c2UgcHJlbXVsdGlw
bGllZCBhbHBoYSwgYnV0IGNhaXJvIGRvZXMuIFNvIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGFu
IGFscGhhIGNvbXBvbmVudAotICAgIC8vIHdlIG5lZWQgdG8gcHJlbXVsdGlwbHkgaXQgYmVmb3Jl
IHBhc3NpbmcgdGhlIGRhdGEgdG8gY2Fpcm8uIFRoaXMgbmVlZHMgdG8gYmUgYm90aCB1c2luZyBn
c3RyZWFtZXItZ2wgYW5kIG5vdAotICAgIC8vIHVzaW5nIGl0LgotICAgIC8vCi0gICAgLy8gVGhp
cyBtZXRob2QgY291bGQgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgZm9yIHRoZSBzYW1lIGJ1ZmZl
ciwgZm9yIGV4YW1wbGUgaWYgd2UgYXJlIHJlbmRlcmluZyB0aGUgdmlkZW8gZnJhbWVzCi0gICAg
Ly8gaW4gc2V2ZXJhbCBub24gYWNjZWxlcmF0ZWQgY2FudmFzZXMuIER1ZSB0byB0aGlzLCB3ZSBj
YW5ub3QgbW9kaWZ5IHRoZSBidWZmZXIsIHNvIHdlIG5lZWQgdG8gY3JlYXRlIGEgY29weS4KLSAg
ICBpZiAoY2Fpcm9Gb3JtYXQgPT0gQ0FJUk9fRk9STUFUX0FSR0IzMikgeworICAgIGlmIChtX2hh
c0FscGhhIHx8IGNvbXBvbmVudFN3YXBSZXF1aXJlZCkgewogICAgICAgICB1bnNpZ25lZCBjaGFy
KiBzdXJmYWNlRGF0YSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihmYXN0TWFsbG9jKGhl
aWdodCAqIHN0cmlkZSkpOwogICAgICAgICB1bnNpZ25lZCBjaGFyKiBzdXJmYWNlUGl4ZWwgPSBz
dXJmYWNlRGF0YTsKIAogICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsK
ICAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKLSAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBhbHBoYSA9IGJ1ZmZlckRhdGFbM107CisgICAgICAgICAg
ICAgICAgLy8gVGhlc2Ugc3RvcmUgdGhlIHNvdXJjZSBwaXhlbCBjb21wb25lbnRzLgorICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHNob3J0IHJlZDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBz
aG9ydCBncmVlbjsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBibHVlOworICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGFscGhhOworICAgICAgICAgICAgICAgIC8vIFRoZXNl
IHN0b3JlIHRoZSBjb21wb25lbnQgb2Zmc2V0IGluc2lkZSB0aGUgcGl4ZWwgZm9yIHRoZSBkZXN0
aW5hdGlvbiBzdXJmYWNlLgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IHJlZEluZGV4
OworICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGdyZWVuSW5kZXg7CisgICAgICAgICAg
ICAgICAgdW5zaWduZWQgc2hvcnQgYmx1ZUluZGV4OworICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHNob3J0IGFscGhhSW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudFN3YXBSZXF1
aXJlZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTb3VyY2UgaXMgUkdCQSBvciBSR0J4Lgor
ICAgICAgICAgICAgICAgICAgICByZWQgPSBidWZmZXJEYXRhWzBdOworICAgICAgICAgICAgICAg
ICAgICBncmVlbiA9IGJ1ZmZlckRhdGFbMV07CisgICAgICAgICAgICAgICAgICAgIGJsdWUgPSBi
dWZmZXJEYXRhWzJdOworICAgICAgICAgICAgICAgICAgICBhbHBoYSA9IGJ1ZmZlckRhdGFbM107
CiAjaWYgR19CWVRFX09SREVSID09IEdfTElUVExFX0VORElBTgotICAgICAgICAgICAgICAgIC8v
IFZpZGVvIGZyYW1lcyB1c2UgUkdCQSBpbiBsaXR0bGUgZW5kaWFuLgotICAgICAgICAgICAgICAg
IHN1cmZhY2VQaXhlbFswXSA9IChidWZmZXJEYXRhWzJdICogYWxwaGEgKyAxMjgpIC8gMjU1Owot
ICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsxXSA9IChidWZmZXJEYXRhWzFdICogYWxwaGEg
KyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsyXSA9IChidWZmZXJE
YXRhWzBdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhl
bFszXSA9IGFscGhhOworICAgICAgICAgICAgICAgICAgICAvLyBEZXN0aW5hdGlvbiBpcyBCR1JB
LgorICAgICAgICAgICAgICAgICAgICByZWRJbmRleCA9IDI7CisgICAgICAgICAgICAgICAgICAg
IGdyZWVuSW5kZXggPSAxOworICAgICAgICAgICAgICAgICAgICBibHVlSW5kZXggPSAwOworICAg
ICAgICAgICAgICAgICAgICBhbHBoYUluZGV4ID0gMzsKICNlbHNlCi0gICAgICAgICAgICAgICAg
Ly8gVmlkZW8gZnJhbWVzIHVzZSBSR0JBIGluIGJpZyBlbmRpYW4uCi0gICAgICAgICAgICAgICAg
c3VyZmFjZVBpeGVsWzBdID0gYWxwaGE7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzFd
ID0gKGJ1ZmZlckRhdGFbMF0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAg
c3VyZmFjZVBpeGVsWzJdID0gKGJ1ZmZlckRhdGFbMV0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0g
ICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzNdID0gKGJ1ZmZlckRhdGFbMl0gKiBhbHBoYSAr
IDEyOCkgLyAyNTU7CisgICAgICAgICAgICAgICAgICAgIC8vIERlc3RpbmF0aW9uIGlzIEFSR0Iu
CisgICAgICAgICAgICAgICAgICAgIHJlZEluZGV4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAg
Z3JlZW5JbmRleCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJsdWVJbmRleCA9IDM7CisgICAg
ICAgICAgICAgICAgICAgIGFscGhhSW5kZXggPSAwOwogI2VuZGlmCisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCisgICAgICAgICAg
ICAgICAgICAgIC8vIEJHUkEgb3IgQkdSeCBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24uCisg
ICAgICAgICAgICAgICAgICAgIHJlZCA9IGJ1ZmZlckRhdGFbMl07CisgICAgICAgICAgICAgICAg
ICAgIGdyZWVuID0gYnVmZmVyRGF0YVsxXTsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZSA9IGJ1
ZmZlckRhdGFbMF07CisgICAgICAgICAgICAgICAgICAgIGFscGhhID0gYnVmZmVyRGF0YVszXTsK
KyAgICAgICAgICAgICAgICAgICAgcmVkSW5kZXggPSAyOworICAgICAgICAgICAgICAgICAgICBn
cmVlbkluZGV4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZUluZGV4ID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgYWxwaGFJbmRleCA9IDM7CisjZWxzZQorICAgICAgICAgICAgICAgICAg
ICAvLyBBUkdCIG90IHhSR0IgYm90aCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uLgorICAgICAgICAg
ICAgICAgICAgICByZWQgPSBidWZmZXJEYXRhWzFdOworICAgICAgICAgICAgICAgICAgICBncmVl
biA9IGJ1ZmZlckRhdGFbMl07CisgICAgICAgICAgICAgICAgICAgIGJsdWUgPSBidWZmZXJEYXRh
WzNdOworICAgICAgICAgICAgICAgICAgICBhbHBoYSA9IGJ1ZmZlckRhdGFbMF07CisgICAgICAg
ICAgICAgICAgICAgIHJlZEluZGV4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW5JbmRl
eCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJsdWVJbmRleCA9IDM7CisgICAgICAgICAgICAg
ICAgICAgIGFscGhhSW5kZXggPSAwOworI2VuZGlmCisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgaWYgKG1faGFzQWxwaGEpIHsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFj
ZVBpeGVsW3JlZEluZGV4XSA9IHJlZCAqIGFscGhhIC8gMjU1OworICAgICAgICAgICAgICAgICAg
ICBzdXJmYWNlUGl4ZWxbZ3JlZW5JbmRleF0gPSBncmVlbiAqIGFscGhhIC8gMjU1OworICAgICAg
ICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbYmx1ZUluZGV4XSA9IGJsdWUgKiBhbHBoYSAvIDI1
NTsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2FscGhhSW5kZXhdID0gYWxwaGE7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBp
eGVsW3JlZEluZGV4XSA9IHJlZDsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2dy
ZWVuSW5kZXhdID0gZ3JlZW47CisgICAgICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFtibHVl
SW5kZXhdID0gYmx1ZTsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2FscGhhSW5k
ZXhdID0gYWxwaGE7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgYnVmZmVy
RGF0YSArPSA0OwogICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbCArPSA0OwogICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgICAgIHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9z
dXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShzdXJmYWNlRGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIHN0cmlkZSkpOworICAgICAgICBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vf
c3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoc3VyZmFjZURhdGEsIENBSVJPX0ZPUk1BVF9BUkdCMzIs
IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkpOwogICAgICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRh
X2tleV90IHNfc3VyZmFjZURhdGFLZXk7CiAgICAgICAgIGNhaXJvX3N1cmZhY2Vfc2V0X3VzZXJf
ZGF0YShzdXJmYWNlLmdldCgpLCAmc19zdXJmYWNlRGF0YUtleSwgc3VyZmFjZURhdGEsIFtdKHZv
aWQqIGRhdGEpIHsgZmFzdEZyZWUoZGF0YSk7IH0pOwogICAgIH0gZWxzZQotICAgICAgICBzdXJm
YWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVy
RGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkpOworICAgICAgICBzdXJm
YWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVy
RGF0YSwgQ0FJUk9fRk9STUFUX0FSR0IzMiwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSk7CiAKICAg
ICBBU1NFUlQoY2Fpcm9fc3VyZmFjZV9zdGF0dXMoc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RB
VFVTX1NVQ0NFU1MpOwogICAgIG1faW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUo
c3VyZmFjZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCA1NjZmYmUyNTBhZWE0MzkyNzBiMWRkMDYzY2RhNjY5YWM3MmM3NjE2Li43ZGQ3
YzJhODRhNWM4MjQ0NDVjYjM5NzkzYTNjZDU1NDU5N2FmYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk0Niw3ICsyOTQ2LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9y
KCkKICAgICAgICAgICAgICAgICBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZnJhbWVIb2xkZXItPnVwZGF0ZVRleHR1cmUobGF5ZXJCdWZmZXItPnRleHR1
cmVHTCgpKTsKLSAgICAgICAgICAgIGxheWVyQnVmZmVyLT5zZXRFeHRyYUZsYWdzKG1fdGV4dHVy
ZU1hcHBlckZsYWdzIHwgKGZyYW1lSG9sZGVyLT5oYXNBbHBoYUNoYW5uZWwoKSA/IFRleHR1cmVN
YXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKSk7CisgICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0
RXh0cmFGbGFncyhtX3RleHR1cmVNYXBwZXJGbGFncyB8IChmcmFtZUhvbGRlci0+aGFzQWxwaGFD
aGFubmVsKCkgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIHwgVGV4dHVyZU1hcHBlckdM
OjpTaG91bGRQcmVtdWx0aXBseSA6IDApKTsKICAgICAgICAgfQogICAgICAgICBwcm94eS5wdXNo
TmV4dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVyKSk7CiAgICAgfTsKQEAgLTMyOTgsMTAgKzMy
OTgsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWMKICAgICAgICAgaWYgKCFtX2NvbG9yQ29u
dmVydElucHV0Q2FwcyB8fCAhZ3N0X2NhcHNfaXNfZXF1YWwobV9jb2xvckNvbnZlcnRJbnB1dENh
cHMuZ2V0KCksIGNhcHMpKSB7CiAgICAgICAgICAgICBtX2NvbG9yQ29udmVydElucHV0Q2FwcyA9
IGNhcHM7CiAgICAgICAgICAgICBtX2NvbG9yQ29udmVydE91dHB1dENhcHMgPSBhZG9wdEdSZWYo
Z3N0X2NhcHNfY29weShjYXBzKSk7CisKKyAgICAgICAgICAgIC8vIFRoZXNlIGNhcHMgbXVzdCBt
YXRjaCB0aGUgaW50ZXJuYWwgZm9ybWF0IG9mIGEgY2Fpcm8gc3VyZmFjZSB3aXRoIENBSVJPX0ZP
Uk1BVF9BUkdCMzIsCisgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0g
Y29sb3IgY29udmVyc2lvbnMgd2hlbiBwYWludGluZyB0aGUgdmlkZW8gZnJhbWUuCiAjaWYgR19C
WVRFX09SREVSID09IEdfTElUVExFX0VORElBTgotICAgICAgICAgICAgY29uc3QgY2hhciogZm9y
bWF0U3RyaW5nID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8pID8gIlJHQkEi
IDogIkJHUngiOworICAgICAgICAgICAgY29uc3QgY2hhciogZm9ybWF0U3RyaW5nID0gR1NUX1ZJ
REVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8pID8gIkJHUkEiIDogIkJHUngiOwogI2Vsc2UK
LSAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hB
U19BTFBIQSgmdmlkZW9JbmZvKSA/ICJSR0JBIiA6ICJSR0J4IjsKKyAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZv
KSA/ICJBUkdCIiA6ICJ4UkdCIjsKICNlbmRpZgogICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3Np
bXBsZShtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RS
SU5HLCBmb3JtYXRTdHJpbmcsCiAgICAgICAgICAgICAgICAgInRleHR1cmUtdGFyZ2V0IiwgR19U
WVBFX1NUUklORywgR1NUX0dMX1RFWFRVUkVfVEFSR0VUXzJEX1NUUiwgbnVsbHB0cik7CkBAIC0z
MzIzLDcgKzMzMjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlYwogICAgIGlmICghZ3N0SW1h
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnRleHQuZHJhd0ltYWdlKGdzdEltYWdlLT5p
bWFnZSgpLCByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5
LCBtX3Nob3VsZEhhbmRsZU9yaWVudGF0aW9uVGFncyA/IG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlv
biA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShnc3RJbWFn
ZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgeyBnc3RJbWFnZS0+aGFzQWxwaGEo
KSA/IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIDogQ29tcG9zaXRlT3BlcmF0b3I6OkNv
cHksIG1fc2hvdWxkSGFuZGxlT3JpZW50YXRpb25UYWdzID8gbV92aWRlb1NvdXJjZU9yaWVudGF0
aW9uIDogSW1hZ2VPcmllbnRhdGlvbigpIH0pOwogfQogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkK
QEAgLTMzMzQsOSArMzMzNyw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
b3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250CiAgICAgaWYgKG1f
aXNVc2luZ0ZhbGxiYWNrVmlkZW9TaW5rKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAocHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgTG9ja2Vy
IHNhbXBsZUxvY2tlciB7IG1fc2FtcGxlTXV0ZXggfTsKIAogICAgIGlmICghR1NUX0lTX1NBTVBM
RShtX3NhbXBsZS5nZXQoKSkpCkBAIC0zMzU3LDcgKzMzNTcsNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBo
aWNzQ29udAogCiAgICAgZnJhbWVIb2xkZXItPndhaXRGb3JDUFVTeW5jKCk7CiAKLSAgICByZXR1
cm4gbV92aWRlb1RleHR1cmVDb3BpZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZSgqbGF5ZXJCdWZmZXIuZ2V0KCksIHNpemUsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNl
T3JpZW50YXRpb24pOworICAgIHJldHVybiBtX3ZpZGVvVGV4dHVyZUNvcGllci0+Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKCpsYXllckJ1ZmZlci5nZXQoKSwgc2l6ZSwgb3V0cHV0
VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgZmxpcFksIG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiwgcHJlbXVsdGlwbHlBbHBoYSk7CiB9
CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXRp
dmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNv
cGllckdTdHJlYW1lci5jcHAKaW5kZXggYjg4YzgwMjgxZWZiMTllNThjY2VlMWNhOTFiOTc4Yjk3
ZGU5OGNmMC4uOTA1OGYwODE0ODY5ZmRmZWMyOTM2NzlkY2Q1MTkzZDhjZTA0OWU5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4
dHVyZUNvcGllckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAKQEAgLTEzNiw3
ICsxMzYsNyBAQCB2b2lkIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6dXBkYXRlVHJhbnNm
b3JtYXRpb25NYXRyaXgoKQogICAgICAgICAtMSwgMSwgLShmYXJWYWx1ZSArIG5lYXJWYWx1ZSkg
LyAoZmFyVmFsdWUgLSBuZWFyVmFsdWUpLCAxKTsKIH0KIAotYm9vbCBWaWRlb1RleHR1cmVDb3Bp
ZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllckJ1ZmZlciYgaW5wdXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUs
IEdMdWludCBvdXRwdXRUZXh0dXJlLCBHTGVudW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBm
bGlwWSwgSW1hZ2VPcmllbnRhdGlvbiBzb3VyY2VPcmllbnRhdGlvbikKK2Jvb2wgVmlkZW9UZXh0
dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXImIGlucHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJh
bWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwgR0xlbnVtIG91dHB1dFRhcmdldCwgR0xpbnQg
bGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
IGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24gc291cmNlT3JpZW50YXRpb24sIGJvb2wgcHJl
bXVsdGlwbHlBbHBoYSkKIHsKICAgICBpZiAoIW1fZnJhbWVidWZmZXIgfHwgIW1fdmJvIHx8IGZy
YW1lU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2MSw3ICsxNjEs
NyBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQogICAgIHVzaW5nIEJ1ZmZlciA9IFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOwogICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpPcHRpb25zIG9wdGlvbnM7CiAgICAgV1RGOjpzd2l0Y2hPbihpbnB1dFRleHR1cmUudGV4dHVy
ZVZhcmlhbnQoKSwKLSAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6UkdCVGV4dHVyZSYpIHsgb3B0
aW9ucyA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCOyB9LAorICAgICAg
ICBbJl0oY29uc3QgQnVmZmVyOjpSR0JUZXh0dXJlJikgeyBvcHRpb25zID0gVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06OlRleHR1cmVSR0IgfCAocHJlbXVsdGlwbHlBbHBoYSA/IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtOjpQcmVtdWx0aXBseSA6IDApOyB9LAogICAgICAgICBbJl0oY29u
c3QgQnVmZmVyOjpZVVZUZXh0dXJlJiB0ZXh0dXJlKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKHRl
eHR1cmUubnVtYmVyT2ZQbGFuZXMpIHsKICAgICAgICAgICAgIGNhc2UgMToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVD
b3BpZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaAppbmRleCA1NzliODdlMzNiNjA0Yzk2
NWI3ZTY1MmM5OTcxYjY0MDBmMWZiMGQ0Li5lYWJhOTViMjYxZjcwYWRlNjdkNjliNWE2NTU2NDNi
MDVkMzFiN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1l
ci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBWaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXIoQ29sb3JDb252ZXJzaW9uKTsKICAgICB+VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVy
KCk7CiAKLSAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlciYgaW5wdXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNp
emUsIEdMdWludCBvdXRwdXRUZXh0dXJlLCBHTGVudW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZl
bCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9v
bCBmbGlwWSwgSW1hZ2VPcmllbnRhdGlvbiBzb3VyY2VPcmllbnRhdGlvbik7CisgICAgYm9vbCBj
b3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJCdWZmZXImIGlucHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0
VGV4dHVyZSwgR0xlbnVtIG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3Jp
ZW50YXRpb24gc291cmNlT3JpZW50YXRpb24sIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSk7CiAgICAg
dm9pZCB1cGRhdGVDb2xvckNvbnZlcnNpb25NYXRyaXgoQ29sb3JDb252ZXJzaW9uKTsKICAgICB2
b2lkIHVwZGF0ZVRleHR1cmVTcGFjZU1hdHJpeCgpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMTg4OTllNTk4Zjc2Y2Yy
Y2MxMDkyOGRlYzVmYWY1ZTdlZmM3ODhmYy4uMDBjOGU4N2U5MTU2OWE1NjVmNWRhZmExNTVjNmNm
MTYxNmZkYzZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTUwNCw2ICs1MDQsOSBAQCB2
b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoR0x1aW50IHRleHR1cmUsIEZsYWdzIGZs
YWdzLCBjb25zdCBJbnRTaXplJiB0ZQogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAg
ICB9CiAKKyAgICBpZiAoZmxhZ3MgJiBTaG91bGRQcmVtdWx0aXBseSkKKyAgICAgICAgb3B0aW9u
cyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlwbHk7CisKICAgICBSZWY8
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IHByb2dyYW0gPSBkYXRhKCkuZ2V0U2hhZGVyUHJv
Z3JhbShvcHRpb25zKTsKIAogICAgIGlmIChmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXgg
Mzg3NGQ3ZWVjYjAxYjU5OTg1MDk1YTEyYjBhYTAwYmJiMDQ3ZDNjNy4uNGM3ZGRhYTZiMjM0YWZk
OGFkYzAwZTlhMjUyZDZjMDJhY2UyZTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNTcsNyAr
NTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQkdSQVRvUkdCQSA9
IDB4ODAsCiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQVJHQlRvUkdCQSA9IDB4MTAwLAog
ICAgICAgICBTaG91bGROb3RCbGVuZCA9IDB4MjAwLAotICAgICAgICBTaG91bGRVc2VFeHRlcm5h
bE9FU1RleHR1cmVSZWN0ID0gMHg0MDAKKyAgICAgICAgU2hvdWxkVXNlRXh0ZXJuYWxPRVNUZXh0
dXJlUmVjdCA9IDB4NDAwLAorICAgICAgICBTaG91bGRQcmVtdWx0aXBseSA9IDB4ODAwCiAgICAg
fTsKIAogICAgIHR5cGVkZWYgaW50IEZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5jcHAKaW5kZXggY2ZiNWI4YjBiYTQxOTYwYWI2NGM4ZmFjMGQ5NTIyZWE0NWJh
YzIwYS4uMjhiOTY4MzBkNWZjNDMwNzM0YWM3MTYzZmJmOWJlMjg5ZWE0Mzk0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0yNjQsNiArMjY0LDggQEAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxhdGVDb21tb24gPQogCiAgICAgICAgIHZv
aWQgYXBwbHlUZXh0dXJlUkdCKGlub3V0IHZlYzQgY29sb3IsIHZlYzIgdGV4Q29vcmQpIHsgY29s
b3IgPSB1X3RleHR1cmVDb2xvclNwYWNlTWF0cml4ICogU2FtcGxlckZ1bmN0aW9uKHNfc2FtcGxl
ciwgdGV4Q29vcmQpOyB9CiAKKyAgICAgICAgdm9pZCBhcHBseVByZW11bHRpcGx5KGlub3V0IHZl
YzQgY29sb3IpIHsgY29sb3IgPSB2ZWM0KGNvbG9yLnJnYiAqIGNvbG9yLmEsIGNvbG9yLmEpOyB9
CisKICAgICAgICAgdmVjMyB5dXZUb1JnYihmbG9hdCB5LCBmbG9hdCB1LCBmbG9hdCB2KQogICAg
ICAgICB7CiAgICAgICAgICAgICAvLyB5dXYgaXMgZWl0aGVyIGJ0NjAxIG9yIGJ0NzA5IHNvIHRo
ZSBvZmZzZXQgaXMgdGhlIHNhbWUKQEAgLTQ4Myw2ICs0ODUsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciogZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAgICAgICB2ZWMyIHRleENvb3JkID0g
dHJhbnNmb3JtVGV4Q29vcmQoKTsKICAgICAgICAgICAgIGFwcGx5TWFudWFsUmVwZWF0SWZOZWVk
ZWQodGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlUkdCSWZOZWVkZWQoY29sb3Is
IHRleENvb3JkKTsKKyAgICAgICAgICAgIGFwcGx5UHJlbXVsdGlwbHlJZk5lZWRlZChjb2xvcik7
CiAgICAgICAgICAgICBhcHBseVRleHR1cmVZVVZJZk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwog
ICAgICAgICAgICAgYXBwbHlUZXh0dXJlTlYxMklmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CiAg
ICAgICAgICAgICBhcHBseVRleHR1cmVOVjIxSWZOZWVkZWQoY29sb3IsIHRleENvb3JkKTsKQEAg
LTUzNyw2ICs1NDAsNyBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogICAgIFNFVF9BUFBMSUVS
X0ZST01fT1BUSU9OUyhNYW51YWxSZXBlYXQpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9O
UyhUZXh0dXJlRXh0ZXJuYWxPRVMpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhSb3Vu
ZGVkUmVjdENsaXApOworICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhQcmVtdWx0aXBseSk7
CiAKICAgICBTdHJpbmdCdWlsZGVyIHZlcnRleFNoYWRlckJ1aWxkZXI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggZDZhYzUwMTgyMTcyNjc3ZDYwMTEyYTAy
ZTRmOGQ3NWM1NzAwYjUxMy4uODI2YzViODE4YjE1MDJlZWY1NmI3YzlhNmI4ZTJlNWRmMzNlMzdh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTEwMyw2ICsx
MDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFRleHR1cmVQYWNrZWRZVVYgPSAxTCA8PCAyMSwKICAg
ICAgICAgVGV4dHVyZUV4dGVybmFsT0VTID0gMUwgPDwgMjIsCiAgICAgICAgIFJvdW5kZWRSZWN0
Q2xpcCAgPSAxTCA8PCAyMywKKyAgICAgICAgUHJlbXVsdGlwbHkgICAgICA9IDFMIDw8IDI0LAog
ICAgIH07CiAKICAgICBlbnVtIGNsYXNzIFZhcmlhYmxlSUQgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430019</attachid>
            <date>2021-05-28 09:29:31 -0700</date>
            <delta_ts>2021-05-28 10:21:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225961-20210528182929.patch</filename>
            <type>text/plain</type>
            <size>28642</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE0YzBiNzA2YjU3ZjIw
M2NkY2QzZTMyYjU4ZjE2ZDQ0YjNhZTM3Ni4uYTI2ZGUzZDgwNjUxMjIyYjI1MzgwODVkYjY3Yzdl
ZjE5YTU2MjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA1LTI4ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSW5j
b3JyZWN0IHJlbmRlcmluZyBvZiBWUDkgd2l0aCB0cmFuc3BhcmVuY3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcmVuZGVyaW5nIG9mIHZp
ZGVvcyB3aXRoIHRyYW5zcGFyZW5jeS4gVGhpcyBpcyBkb25lIGJvdGggQUMgYW5kIG5vbiBBQyBt
b2RlcyBhbmQKKyAgICAgICAgd2l0aCBhbmQgd2l0aG91dCBHU1RSRUFNRVJfR0wgZW5hYmxlZC4K
KworICAgICAgICBPbiBBQyBtb2RlIGFuZCB1c2luZyBHU1RSRUFNRVJfR0wsIGEgbmV3IG9wdGlv
biBpcyBhZGRlZCB0byBUZXh0dXJlTWFwcGVyR0wgYW5kIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtCisgICAgICAgIHRvIHN1cHBvcnQgcHJlbXVsdGlwbHlpbmcgdGhlIGNvbXBvbmVudHMgb2Yg
YSBwaXhlbC4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0
IGFscGhhLAorICAgICAgICBhbmQgd2UgbmVlZCBpdCBwcmVtdWx0aXBsaWVkIGluIG9yZGVyIHRv
IHBlcmZvcm0gdGhlIGNvcnJlY3QgYmxlbmRpbmcgYmxlbmRpbmcgb2YgdGhlIHZpZGVvIGZyYW1l
cy4gVGhlbiB3ZQorICAgICAgICB1c2UgdGhhdCBuZXcgb3B0aW9uIHRvIHJlbmRlciB2aWRlbyBm
cmFtZXMuIFRoaXMgbmV3IG9wdGlvbiBpcyBhbHNvIHVzZWQgd2hlbiBjb3B5aW5nIHRoZSB2aWRl
byBmcmFtZSBpbnRvCisgICAgICAgIGFuIGV4dGVybmFsIHRleHR1cmUgaWYgcHJlbXVsdGlwbHlB
bHBoYSBpcyByZXF1ZXN0ZWQuCisKKyAgICAgICAgT24gbm9uIEFDIG1vZGUsIG9yIHdoZW4gR1N0
cmVhbWVyLWdsIGlzIGRpc2FibGVkLCBhZGQgc3VwcG9ydCB0byBJbWFnZUdTdHJlYW1lckNhaXJv
IHRvIHByZW11bHRpcGx5IHRoZSBhbHBoYQorICAgICAgICBvZiB0aGUgdmlkZW8gZnJhbWUgYmVm
b3JlIGNyZWF0aW5nIHRoZSBjYWlybyBzdXJmYWNlIHRvIHBhaW50LCBhbmQgcGFzcyB0aGUgYXBw
cm9wcmlhdGUgY29tcG9zaXRlIG9wZXJhdG9yIHdoZW4KKyAgICAgICAgZHJhd2luZyB3aXRoIGFs
cGhhLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRlcjo6R3N0VmlkZW9G
cmFtZUhvbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VHU3RyZWFtZXI6Oklt
YWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6IHVwZGF0ZSB0aGUg
Y2FwcyBvZiB0aGUgY29udmVyc2lvbiB0byBtYWtlIHRoZW0gbWF0Y2ggdGhlIGZvcm1hdAorICAg
ICAgICBleHBlY3RlZCBieSBjYWlybywgc28gd2UgY2FuIGF2b2lkIGEgY29tcG9uZW50IHN3YXAK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
ZXh0dXJlQ29waWVyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
R0w6OmRyYXdUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oOgorCiAyMDIxLTA1LTI4ICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3JlIHJlYWRpbHkg
bGF5b3V0IHdoZW4gc2Nyb2xsLXNuYXAgcHJvcGVydGllcyBjaGFuZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Zy
YW1lSG9sZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJWaWRlb0ZyYW1lSG9sZGVyLmNwcAppbmRleCBlZWYxMjc0YmVkZjJjYTEwYTg0
MzU1NDZhYTI2MTIyYThjZGI1ZGI0Li44MTBlNmI4NDJkNGJlYzExMzk2OGFmMjIxYjdiNzk0YTNj
Y2MxYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUhvbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xkZXIuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIEdzdFZpZGVvRnJhbWVIb2xkZXI6OkdzdFZpZGVvRnJhbWVIb2xk
ZXIoR3N0U2FtcGxlKiBzYW1wbGUsIE9wdGlvbmFsPEdzdFZpZGVvRGVjCiAgICAgICAgIHJldHVy
bjsKIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCi0gICAgbV9mbGFncyA9IGZsYWdzIHwgKG1faGFz
QWxwaGFDaGFubmVsID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDApOworICAgIG1f
ZmxhZ3MgPSBmbGFncyB8IChtX2hhc0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hv
dWxkQmxlbmQgfCBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZFByZW11bHRpcGx5IDogMCk7CiAKICAg
ICBHc3RNZW1vcnkqIG1lbW9yeSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkobV9idWZmZXIuZ2V0
KCksIDApOwogICAgIGlmIChnc3RfaXNfZ2xfbWVtb3J5KG1lbW9yeSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJD
YWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1h
Z2VHU3RyZWFtZXJDYWlyby5jcHAKaW5kZXggYmM4MDY2NDQ5NmYzOTllOTZlY2I2ZGEzYzAwZDMy
OWIzZTRhM2E3OS4uODM5MTVjMTNkODQ4MjBlMmMwYWQ1MjQ4MDMwNmRlNWI5M2RlY2M3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcApAQCAtMzksMTAgKzM5LDggQEAgSW1h
Z2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSogc2FtcGxlKQogICAgIGlmICgh
Z3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZ2aWRlb0luZm8sIGNhcHMpKQogICAgICAgICByZXR1
cm47CiAKLSAgICAvLyBSaWdodCBub3cgdGhlIFRleHR1cmVNYXBwZXIgb25seSBzdXBwb3J0cyBj
aHJvbWFzIHdpdGggb25lIHBsYW5lCi0gICAgQVNTRVJUKEdTVF9WSURFT19JTkZPX05fUExBTkVT
KCZ2aWRlb0luZm8pID09IDEpOwotCi0gICAgbV9oYXNBbHBoYSA9IEdTVF9WSURFT19JTkZPX0hB
U19BTFBIQSgmdmlkZW9JbmZvKTsKKyAgICAvLyBUaGUgZnJhbWUgaGFzIHRvIFJHQiBzbyB3ZSBj
YW4gcGFpbnQgaXQuCisgICAgQVNTRVJUKEdTVF9WSURFT19JTkZPX0lTX1JHQigmdmlkZW9JbmZv
KSk7CiAKICAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1w
bGUpOwogICAgIGlmIChVTkxJS0VMWSghR1NUX0lTX0JVRkZFUihidWZmZXIpKSkKQEAgLTUyLDUw
ICs1MCwxMDkgQEAgSW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSogc2Ft
cGxlKQogICAgIGlmICghbV9mcmFtZU1hcHBlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8g
VGhlIHZpZGVvIGJ1ZmZlciBtYXkgaGF2ZSB0aGVzZSBmb3JtYXRzIGluIHRoZXNlIGNhc2VzOgor
ICAgIC8vIHsgQkdSeCwgQkdSQSB9OiBvbiBsaXR0bGUgZW5kaWFuOgorICAgIC8vICAgLSBXaGVu
IEdTdHJlYW1lci1nbCBpcyBkaXNhYmxlZCAoYmVpbmcgQUMgZW5hYmxlZCBvciBub3QpIGFzIFZp
ZGVvU2lua0dTdHJlYW1lciBpcyB1c2VkLgorICAgIC8vICAgLSBXaGVuIEdTdHJlYW1lci1nbCBp
cyBlbmFibGVkLCBidXQgdGhlIGNhcHMgdXNlZCBpbiB0aGUgc2luayBhcmUgbm90IFJHQiBhbmQg
aXQncyBjb252ZXJ0ZWQgYnkgdGhlIHBsYXllciB0byBwYWludCBpdC4KKyAgICAvLyB7IHhSR0Is
IEFSR0IgfTogb24gYmlnIGVuZGlhbjoKKyAgICAvLyAgIC0gV2hlbiBHU3RyZWFtZXItZ2wgaXMg
ZGlzYWJsZWQgKGJlaW5nIEFDIGVuYWJsZWQgb3Igbm90KSBhcyBWaWRlb1NpbmtHU3RyZWFtZXIg
aXMgdXNlZC4KKyAgICAvLyAgIC0gV2hlbiBHU3RyZWFtZXItZ2wgaXMgZW5hYmxlZCwgYnV0IHRo
ZSBjYXBzIHVzZWQgaW4gdGhlIHNpbmsgYXJlIG5vdCBSR0IgYW5kIGl0J3MgY29udmVydGVkIGJ5
IHRoZSBwbGF5ZXIgdG8gcGFpbnQgaXQuCisgICAgLy8geyBSR0J4LCBSR0JBIH0KKyAgICAvLyAg
IC0gV2hlbiBHU3RyZWFtZXItZ2wgaXMgZW5hYmxlZCBhbmQgdGhlIGNhcHMgdXNlZCBpbiB0aGUg
c2luayBhcmUgUkdCeC9SR0JBLgorICAgIC8vCisgICAgLy8gSW50ZXJuYWxseSBjYWlybyB1c2Vz
IEJHUkEgZm9yIENBSVJPX0ZPUk1BVF9BUkdCMzIgb24gbGl0dGxlIGVuZGlhbiBhbmQgQVJHQiBv
biBiaWcgZW5kaWFuLCBzbyBib3RoIHsgQkdSeCwgQkdSQSB9CisgICAgLy8gYW5kIHsgeFJHQiwg
QVJHQiB9IGNhbiBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gY2Fpcm8uIEJ1dCBmb3IgeyBSR0J4LCBS
R0JBIH0gd2UgbmVlZCB0byBzd2FwIHRoZSBSIGFuZCBCIGNvbXBvbmVudHMuCisgICAgLy8gQWxz
bywgR1N0cmVhbWVyIHVzZXMgc3RyYWlnaHQgYWxwaGEgd2hpbGUgY2Fpcm8gcmVxdWlyZXMgaXQg
dG8gYmUgcHJlbXVsdGlwbGllZCwgc28gaWYgdGhlIGZvcm1hdCBoYXMgYWxwaGEKKyAgICAvLyB3
ZSBuZWVkIHRvIHByZW11bHRpcGx5IHRoZSBjb2xvciBjb21wb25lbnRzLiBTbyBpbiB0aGVzZSBj
YXNlcyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIG9yaWdpbmFsCisg
ICAgLy8gYnVmZmVyLgorICAgIG1faGFzQWxwaGEgPSBHU1RfVklERU9fSU5GT19IQVNfQUxQSEEo
JnZpZGVvSW5mbyk7CisgICAgYm9vbCBjb21wb25lbnRTd2FwUmVxdWlyZWQgPSBHU1RfVklERU9f
RlJBTUVfRk9STUFUKCZtX3ZpZGVvRnJhbWUpID09IEdTVF9WSURFT19GT1JNQVRfUkdCQSB8fCBH
U1RfVklERU9fRlJBTUVfRk9STUFUKCZtX3ZpZGVvRnJhbWUpID09IEdTVF9WSURFT19GT1JNQVRf
UkdCeDsKICAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXJEYXRhID0gcmVpbnRlcnByZXRfY2FzdDx1
bnNpZ25lZCBjaGFyKj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RBVEEoJm1fdmlkZW9GcmFtZSwg
MCkpOwogICAgIGludCBzdHJpZGUgPSBHU1RfVklERU9fRlJBTUVfUExBTkVfU1RSSURFKCZtX3Zp
ZGVvRnJhbWUsIDApOwogICAgIGludCB3aWR0aCA9IEdTVF9WSURFT19GUkFNRV9XSURUSCgmbV92
aWRlb0ZyYW1lKTsKICAgICBpbnQgaGVpZ2h0ID0gR1NUX1ZJREVPX0ZSQU1FX0hFSUdIVCgmbV92
aWRlb0ZyYW1lKTsKLQogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2U7Ci0gICAg
Y2Fpcm9fZm9ybWF0X3QgY2Fpcm9Gb3JtYXQ7Ci0gICAgY2Fpcm9Gb3JtYXQgPSAoR1NUX1ZJREVP
X0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFUX1JHQkEpID8g
Q0FJUk9fRk9STUFUX0FSR0IzMiA6IENBSVJPX0ZPUk1BVF9SR0IyNDsKIAotICAgIC8vIEdTdHJl
YW1lciBkb2Vzbid0IHVzZSBwcmVtdWx0aXBsaWVkIGFscGhhLCBidXQgY2Fpcm8gZG9lcy4gU28g
aWYgdGhlIHZpZGVvIGZvcm1hdCBoYXMgYW4gYWxwaGEgY29tcG9uZW50Ci0gICAgLy8gd2UgbmVl
ZCB0byBwcmVtdWx0aXBseSBpdCBiZWZvcmUgcGFzc2luZyB0aGUgZGF0YSB0byBjYWlyby4gVGhp
cyBuZWVkcyB0byBiZSBib3RoIHVzaW5nIGdzdHJlYW1lci1nbCBhbmQgbm90Ci0gICAgLy8gdXNp
bmcgaXQuCi0gICAgLy8KLSAgICAvLyBUaGlzIG1ldGhvZCBjb3VsZCBiZSBjYWxsZWQgc2V2ZXJh
bCB0aW1lcyBmb3IgdGhlIHNhbWUgYnVmZmVyLCBmb3IgZXhhbXBsZSBpZiB3ZSBhcmUgcmVuZGVy
aW5nIHRoZSB2aWRlbyBmcmFtZXMKLSAgICAvLyBpbiBzZXZlcmFsIG5vbiBhY2NlbGVyYXRlZCBj
YW52YXNlcy4gRHVlIHRvIHRoaXMsIHdlIGNhbm5vdCBtb2RpZnkgdGhlIGJ1ZmZlciwgc28gd2Ug
bmVlZCB0byBjcmVhdGUgYSBjb3B5LgotICAgIGlmIChjYWlyb0Zvcm1hdCA9PSBDQUlST19GT1JN
QVRfQVJHQjMyKSB7CisgICAgaWYgKG1faGFzQWxwaGEgfHwgY29tcG9uZW50U3dhcFJlcXVpcmVk
KSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIqIHN1cmZhY2VEYXRhID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQgY2hhcio+KGZhc3RNYWxsb2MoaGVpZ2h0ICogc3RyaWRlKSk7CiAgICAgICAgIHVuc2ln
bmVkIGNoYXIqIHN1cmZhY2VQaXhlbCA9IHN1cmZhY2VEYXRhOwogCiAgICAgICAgIGZvciAoaW50
IHggPSAwOyB4IDwgd2lkdGg7IHgrKykgewogICAgICAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkg
PCBoZWlnaHQ7IHkrKykgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGFscGhhID0g
YnVmZmVyRGF0YVszXTsKKyAgICAgICAgICAgICAgICAvLyBUaGVzZSBzdG9yZSB0aGUgc291cmNl
IHBpeGVsIGNvbXBvbmVudHMuCisgICAgICAgICAgICAgICAgdWludDhfdCByZWQ7CisgICAgICAg
ICAgICAgICAgdWludDhfdCBncmVlbjsKKyAgICAgICAgICAgICAgICB1aW50OF90IGJsdWU7Cisg
ICAgICAgICAgICAgICAgdWludDhfdCBhbHBoYTsKKyAgICAgICAgICAgICAgICAvLyBUaGVzZSBz
dG9yZSB0aGUgY29tcG9uZW50IG9mZnNldCBpbnNpZGUgdGhlIHBpeGVsIGZvciB0aGUgZGVzdGlu
YXRpb24gc3VyZmFjZS4KKyAgICAgICAgICAgICAgICB1aW50OF90IHJlZEluZGV4OworICAgICAg
ICAgICAgICAgIHVpbnQ4X3QgZ3JlZW5JbmRleDsKKyAgICAgICAgICAgICAgICB1aW50OF90IGJs
dWVJbmRleDsKKyAgICAgICAgICAgICAgICB1aW50OF90IGFscGhhSW5kZXg7CisgICAgICAgICAg
ICAgICAgaWYgKGNvbXBvbmVudFN3YXBSZXF1aXJlZCkgeworICAgICAgICAgICAgICAgICAgICAv
LyBTb3VyY2UgaXMgUkdCQSBvciBSR0J4LgorICAgICAgICAgICAgICAgICAgICByZWQgPSBidWZm
ZXJEYXRhWzBdOworICAgICAgICAgICAgICAgICAgICBncmVlbiA9IGJ1ZmZlckRhdGFbMV07Cisg
ICAgICAgICAgICAgICAgICAgIGJsdWUgPSBidWZmZXJEYXRhWzJdOworICAgICAgICAgICAgICAg
ICAgICBhbHBoYSA9IGJ1ZmZlckRhdGFbM107CiAjaWYgR19CWVRFX09SREVSID09IEdfTElUVExF
X0VORElBTgotICAgICAgICAgICAgICAgIC8vIFZpZGVvIGZyYW1lcyB1c2UgUkdCQSBpbiBsaXR0
bGUgZW5kaWFuLgotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFswXSA9IChidWZmZXJEYXRh
WzJdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsx
XSA9IChidWZmZXJEYXRhWzFdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAg
IHN1cmZhY2VQaXhlbFsyXSA9IChidWZmZXJEYXRhWzBdICogYWxwaGEgKyAxMjgpIC8gMjU1Owot
ICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFszXSA9IGFscGhhOworICAgICAgICAgICAgICAg
ICAgICAvLyBEZXN0aW5hdGlvbiBpcyBCR1JBLgorICAgICAgICAgICAgICAgICAgICByZWRJbmRl
eCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGdyZWVuSW5kZXggPSAxOworICAgICAgICAgICAg
ICAgICAgICBibHVlSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICBhbHBoYUluZGV4ID0g
MzsKICNlbHNlCi0gICAgICAgICAgICAgICAgLy8gVmlkZW8gZnJhbWVzIHVzZSBSR0JBIGluIGJp
ZyBlbmRpYW4uCi0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzBdID0gYWxwaGE7Ci0gICAg
ICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzFdID0gKGJ1ZmZlckRhdGFbMF0gKiBhbHBoYSArIDEy
OCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzJdID0gKGJ1ZmZlckRhdGFb
MV0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzNd
ID0gKGJ1ZmZlckRhdGFbMl0gKiBhbHBoYSArIDEyOCkgLyAyNTU7CisgICAgICAgICAgICAgICAg
ICAgIC8vIERlc3RpbmF0aW9uIGlzIEFSR0IuCisgICAgICAgICAgICAgICAgICAgIHJlZEluZGV4
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW5JbmRleCA9IDI7CisgICAgICAgICAgICAg
ICAgICAgIGJsdWVJbmRleCA9IDM7CisgICAgICAgICAgICAgICAgICAgIGFscGhhSW5kZXggPSAw
OwogI2VuZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyNpZiBHX0JZVEVfT1JERVIgPT0g
R19MSVRUTEVfRU5ESUFOCisgICAgICAgICAgICAgICAgICAgIC8vIEJHUkEgb3IgQkdSeCBib3Ro
IHNvdXJjZSBhbmQgZGVzdGluYXRpb24uCisgICAgICAgICAgICAgICAgICAgIHJlZCA9IGJ1ZmZl
ckRhdGFbMl07CisgICAgICAgICAgICAgICAgICAgIGdyZWVuID0gYnVmZmVyRGF0YVsxXTsKKyAg
ICAgICAgICAgICAgICAgICAgYmx1ZSA9IGJ1ZmZlckRhdGFbMF07CisgICAgICAgICAgICAgICAg
ICAgIGFscGhhID0gYnVmZmVyRGF0YVszXTsKKyAgICAgICAgICAgICAgICAgICAgcmVkSW5kZXgg
PSAyOworICAgICAgICAgICAgICAgICAgICBncmVlbkluZGV4ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgYmx1ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYWxwaGFJbmRleCA9IDM7
CisjZWxzZQorICAgICAgICAgICAgICAgICAgICAvLyBBUkdCIG90IHhSR0IgYm90aCBzb3VyY2Ug
YW5kIGRlc3RpbmF0aW9uLgorICAgICAgICAgICAgICAgICAgICByZWQgPSBidWZmZXJEYXRhWzFd
OworICAgICAgICAgICAgICAgICAgICBncmVlbiA9IGJ1ZmZlckRhdGFbMl07CisgICAgICAgICAg
ICAgICAgICAgIGJsdWUgPSBidWZmZXJEYXRhWzNdOworICAgICAgICAgICAgICAgICAgICBhbHBo
YSA9IGJ1ZmZlckRhdGFbMF07CisgICAgICAgICAgICAgICAgICAgIHJlZEluZGV4ID0gMTsKKyAg
ICAgICAgICAgICAgICAgICAgZ3JlZW5JbmRleCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJs
dWVJbmRleCA9IDM7CisgICAgICAgICAgICAgICAgICAgIGFscGhhSW5kZXggPSAwOworI2VuZGlm
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG1faGFzQWxwaGEpIHsK
KyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW3JlZEluZGV4XSA9IHJlZCAqIGFscGhh
IC8gMjU1OworICAgICAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbZ3JlZW5JbmRleF0gPSBn
cmVlbiAqIGFscGhhIC8gMjU1OworICAgICAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbYmx1
ZUluZGV4XSA9IGJsdWUgKiBhbHBoYSAvIDI1NTsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFj
ZVBpeGVsW2FscGhhSW5kZXhdID0gYWxwaGE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW3JlZEluZGV4XSA9IHJlZDsKKyAgICAgICAg
ICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2dyZWVuSW5kZXhdID0gZ3JlZW47CisgICAgICAgICAg
ICAgICAgICAgIHN1cmZhY2VQaXhlbFtibHVlSW5kZXhdID0gYmx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgc3VyZmFjZVBpeGVsW2FscGhhSW5kZXhdID0gYWxwaGE7CisgICAgICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICAgICAgYnVmZmVyRGF0YSArPSA0OwogICAgICAgICAgICAgICAgIHN1
cmZhY2VQaXhlbCArPSA0OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHN1cmZh
Y2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShzdXJmYWNl
RGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkpOworICAgICAgICBzdXJm
YWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoc3VyZmFj
ZURhdGEsIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkpOwogICAg
ICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNfc3VyZmFjZURhdGFLZXk7CiAgICAg
ICAgIGNhaXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShzdXJmYWNlLmdldCgpLCAmc19zdXJmYWNl
RGF0YUtleSwgc3VyZmFjZURhdGEsIFtdKHZvaWQqIGRhdGEpIHsgZmFzdEZyZWUoZGF0YSk7IH0p
OwogICAgIH0gZWxzZQotICAgICAgICBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyRGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBoZWln
aHQsIHN0cmlkZSkpOworICAgICAgICBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyRGF0YSwgQ0FJUk9fRk9STUFUX0FSR0IzMiwgd2lk
dGgsIGhlaWdodCwgc3RyaWRlKSk7CiAKICAgICBBU1NFUlQoY2Fpcm9fc3VyZmFjZV9zdGF0dXMo
c3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpOwogICAgIG1faW1hZ2UgPSBC
aXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoc3VyZmFjZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyYmFlZjJhNGVkMjQ5MTc0Mzg2
MzgyODJlMTdmYzJkOGEyOWJhMTk3Li5iNDhjNjYyN2YyYTM5MWJkYjIyN2IyODZlYmI5Y2FlZTQ2
ZWU5MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMjk0Niw3ICsyOTQ2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkKICAgICAgICAgICAgICAgICBsYXllckJ1ZmZl
ciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUo
dGV4dHVyZSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZnJhbWVIb2xkZXItPnVwZGF0
ZVRleHR1cmUobGF5ZXJCdWZmZXItPnRleHR1cmVHTCgpKTsKLSAgICAgICAgICAgIGxheWVyQnVm
ZmVyLT5zZXRFeHRyYUZsYWdzKG1fdGV4dHVyZU1hcHBlckZsYWdzIHwgKGZyYW1lSG9sZGVyLT5o
YXNBbHBoYUNoYW5uZWwoKSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKSk7Cisg
ICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0RXh0cmFGbGFncyhtX3RleHR1cmVNYXBwZXJGbGFn
cyB8IChmcmFtZUhvbGRlci0+aGFzQWxwaGFDaGFubmVsKCkgPyBUZXh0dXJlTWFwcGVyR0w6OlNo
b3VsZEJsZW5kIHwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRQcmVtdWx0aXBseSA6IDApKTsKICAg
ICAgICAgfQogICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVy
KSk7CiAgICAgfTsKQEAgLTMyOTgsMTAgKzMyOTgsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWMKICAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydElucHV0Q2FwcyB8fCAhZ3N0X2NhcHNfaXNf
ZXF1YWwobV9jb2xvckNvbnZlcnRJbnB1dENhcHMuZ2V0KCksIGNhcHMpKSB7CiAgICAgICAgICAg
ICBtX2NvbG9yQ29udmVydElucHV0Q2FwcyA9IGNhcHM7CiAgICAgICAgICAgICBtX2NvbG9yQ29u
dmVydE91dHB1dENhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNfY29weShjYXBzKSk7CisKKyAgICAg
ICAgICAgIC8vIFRoZXNlIGNhcHMgbXVzdCBtYXRjaCB0aGUgaW50ZXJuYWwgZm9ybWF0IG9mIGEg
Y2Fpcm8gc3VyZmFjZSB3aXRoIENBSVJPX0ZPUk1BVF9BUkdCMzIsCisgICAgICAgICAgICAvLyBz
byB3ZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gY29sb3IgY29udmVyc2lvbnMgd2hlbiBwYWludGlu
ZyB0aGUgdmlkZW8gZnJhbWUuCiAjaWYgR19CWVRFX09SREVSID09IEdfTElUVExFX0VORElBTgot
ICAgICAgICAgICAgY29uc3QgY2hhciogZm9ybWF0U3RyaW5nID0gR1NUX1ZJREVPX0lORk9fSEFT
X0FMUEhBKCZ2aWRlb0luZm8pID8gIlJHQkEiIDogIkJHUngiOworICAgICAgICAgICAgY29uc3Qg
Y2hhciogZm9ybWF0U3RyaW5nID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8p
ID8gIkJHUkEiIDogIkJHUngiOwogI2Vsc2UKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1h
dFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/ICJSR0JBIiA6
ICJSR0J4IjsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURF
T19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/ICJBUkdCIiA6ICJ4UkdCIjsKICNlbmRpZgog
ICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9yQ29udmVydE91dHB1dENhcHMu
Z2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRTdHJpbmcsCiAgICAgICAgICAg
ICAgICAgInRleHR1cmUtdGFyZ2V0IiwgR19UWVBFX1NUUklORywgR1NUX0dMX1RFWFRVUkVfVEFS
R0VUXzJEX1NUUiwgbnVsbHB0cik7CkBAIC0zMzIzLDcgKzMzMjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlYwogICAgIGlmICghZ3N0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNv
bnRleHQuZHJhd0ltYWdlKGdzdEltYWdlLT5pbWFnZSgpLCByZWN0LCBnc3RJbWFnZS0+cmVjdCgp
LCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5LCBtX3Nob3VsZEhhbmRsZU9yaWVudGF0aW9uVGFn
cyA/IG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKKyAg
ICBjb250ZXh0LmRyYXdJbWFnZShnc3RJbWFnZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJl
Y3QoKSwgeyBnc3RJbWFnZS0+aGFzQWxwaGEoKSA/IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VP
dmVyIDogQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHksIG1fc2hvdWxkSGFuZGxlT3JpZW50YXRpb25U
YWdzID8gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uIDogSW1hZ2VPcmllbnRhdGlvbigpIH0pOwog
fQogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKQEAgLTMzMzQsOSArMzMzNyw2IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoR3JhcGhpY3NDb250CiAgICAgaWYgKG1faXNVc2luZ0ZhbGxiYWNrVmlkZW9TaW5rKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCiAgICAgTG9ja2VyIHNhbXBsZUxvY2tlciB7IG1fc2FtcGxlTXV0ZXgg
fTsKIAogICAgIGlmICghR1NUX0lTX1NBTVBMRShtX3NhbXBsZS5nZXQoKSkpCkBAIC0zMzU3LDcg
KzMzNTcsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udAogCiAgICAgZnJhbWVIb2xkZXItPndh
aXRGb3JDUFVTeW5jKCk7CiAKLSAgICByZXR1cm4gbV92aWRlb1RleHR1cmVDb3BpZXItPmNvcHlW
aWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgqbGF5ZXJCdWZmZXIuZ2V0KCksIHNpemUsIG91
dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNlT3JpZW50YXRpb24pOworICAgIHJldHVybiBtX3Zp
ZGVvVGV4dHVyZUNvcGllci0+Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKCpsYXll
ckJ1ZmZlci5nZXQoKSwgc2l6ZSwgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwg
aW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgZmxpcFksIG1fdmlkZW9Tb3VyY2VPcmllbnRh
dGlvbiwgcHJlbXVsdGlwbHlBbHBoYSk7CiB9CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Rl
eHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAKaW5kZXggYjg4Yzgw
MjgxZWZiMTllNThjY2VlMWNhOTFiOTc4Yjk3ZGU5OGNmMC4uOTA1OGYwODE0ODY5ZmRmZWMyOTM2
NzlkY2Q1MTkzZDhjZTA0OWU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNv
cGllckdTdHJlYW1lci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFZpZGVvVGV4dHVyZUNv
cGllckdTdHJlYW1lcjo6dXBkYXRlVHJhbnNmb3JtYXRpb25NYXRyaXgoKQogICAgICAgICAtMSwg
MSwgLShmYXJWYWx1ZSArIG5lYXJWYWx1ZSkgLyAoZmFyVmFsdWUgLSBuZWFyVmFsdWUpLCAxKTsK
IH0KIAotYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlciYgaW5wdXRU
ZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUsIEdMdWludCBvdXRwdXRUZXh0dXJlLCBHTGVudW0g
b3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBmbGlwWSwgSW1hZ2VPcmllbnRhdGlvbiBzb3VyY2VP
cmllbnRhdGlvbikKK2Jvb2wgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIm
IGlucHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwg
R0xlbnVtIG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24g
c291cmNlT3JpZW50YXRpb24sIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKIHsKICAgICBpZiAoIW1f
ZnJhbWVidWZmZXIgfHwgIW1fdmJvIHx8IGZyYW1lU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE2MSw3ICsxNjEsNyBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQog
ICAgIHVzaW5nIEJ1ZmZlciA9IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOwogICAg
IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnM7CiAgICAgV1RGOjpz
d2l0Y2hPbihpbnB1dFRleHR1cmUudGV4dHVyZVZhcmlhbnQoKSwKLSAgICAgICAgWyZdKGNvbnN0
IEJ1ZmZlcjo6UkdCVGV4dHVyZSYpIHsgb3B0aW9ucyA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtOjpUZXh0dXJlUkdCOyB9LAorICAgICAgICBbJl0oY29uc3QgQnVmZmVyOjpSR0JUZXh0dXJl
JikgeyBvcHRpb25zID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IgfCAo
cHJlbXVsdGlwbHlBbHBoYSA/IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpQcmVtdWx0aXBs
eSA6IDApOyB9LAogICAgICAgICBbJl0oY29uc3QgQnVmZmVyOjpZVVZUZXh0dXJlJiB0ZXh0dXJl
KSB7CiAgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUubnVtYmVyT2ZQbGFuZXMpIHsKICAgICAg
ICAgICAgIGNhc2UgMToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXIuaAppbmRleCA1NzliODdlMzNiNjA0Yzk2NWI3ZTY1MmM5OTcxYjY0MDBmMWZiMGQ0Li5lYWJh
OTViMjYxZjcwYWRlNjdkNjliNWE2NTU2NDNiMDVkMzFiN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIoQ29sb3JDb252ZXJzaW9uKTsKICAgICB+
VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyKCk7CiAKLSAgICBib29sIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlciYgaW5w
dXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUsIEdMdWludCBvdXRwdXRUZXh0dXJlLCBHTGVu
dW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGVu
dW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBmbGlwWSwgSW1hZ2VPcmllbnRhdGlvbiBzb3Vy
Y2VPcmllbnRhdGlvbik7CisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXImIGlucHV0VGV4dHVyZSwgSW50U2l6
ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwgR0xlbnVtIG91dHB1dFRhcmdldCwg
R0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24gc291cmNlT3JpZW50YXRpb24sIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgdm9pZCB1cGRhdGVDb2xvckNvbnZlcnNpb25NYXRy
aXgoQ29sb3JDb252ZXJzaW9uKTsKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVTcGFjZU1hdHJpeCgp
OwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3JtYXRpb25NYXRyaXgoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHAKaW5kZXggMTg4OTllNTk4Zjc2Y2YyY2MxMDkyOGRlYzVmYWY1ZTdlZmM3ODhmYy4uMDBj
OGU4N2U5MTU2OWE1NjVmNWRhZmExNTVjNmNmMTYxNmZkYzZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHAKQEAgLTUwNCw2ICs1MDQsOSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1
cmUoR0x1aW50IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZQogICAgICAg
ICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CiAKKyAgICBpZiAoZmxhZ3MgJiBTaG91bGRQ
cmVtdWx0aXBseSkKKyAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6UHJlbXVsdGlwbHk7CisKICAgICBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IHBy
b2dyYW0gPSBkYXRhKCkuZ2V0U2hhZGVyUHJvZ3JhbShvcHRpb25zKTsKIAogICAgIGlmIChmaWx0
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXggMzg3NGQ3ZWVjYjAxYjU5OTg1MDk1YTEyYjBhYTAw
YmJiMDQ3ZDNjNy4uNGM3ZGRhYTZiMjM0YWZkOGFkYzAwZTlhMjUyZDZjMDJhY2UyZTEzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuaApAQCAtNTcsNyArNTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNob3Vs
ZENvbnZlcnRUZXh0dXJlQkdSQVRvUkdCQSA9IDB4ODAsCiAgICAgICAgIFNob3VsZENvbnZlcnRU
ZXh0dXJlQVJHQlRvUkdCQSA9IDB4MTAwLAogICAgICAgICBTaG91bGROb3RCbGVuZCA9IDB4MjAw
LAotICAgICAgICBTaG91bGRVc2VFeHRlcm5hbE9FU1RleHR1cmVSZWN0ID0gMHg0MDAKKyAgICAg
ICAgU2hvdWxkVXNlRXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCA9IDB4NDAwLAorICAgICAgICBTaG91
bGRQcmVtdWx0aXBseSA9IDB4ODAwCiAgICAgfTsKIAogICAgIHR5cGVkZWYgaW50IEZsYWdzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggY2ZiNWI4YjBi
YTQxOTYwYWI2NGM4ZmFjMGQ5NTIyZWE0NWJhYzIwYS4uMjhiOTY4MzBkNWZjNDMwNzM0YWM3MTYz
ZmJmOWJlMjg5ZWE0Mzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0uY3BwCkBAIC0yNjQsNiArMjY0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVt
cGxhdGVDb21tb24gPQogCiAgICAgICAgIHZvaWQgYXBwbHlUZXh0dXJlUkdCKGlub3V0IHZlYzQg
Y29sb3IsIHZlYzIgdGV4Q29vcmQpIHsgY29sb3IgPSB1X3RleHR1cmVDb2xvclNwYWNlTWF0cml4
ICogU2FtcGxlckZ1bmN0aW9uKHNfc2FtcGxlciwgdGV4Q29vcmQpOyB9CiAKKyAgICAgICAgdm9p
ZCBhcHBseVByZW11bHRpcGx5KGlub3V0IHZlYzQgY29sb3IpIHsgY29sb3IgPSB2ZWM0KGNvbG9y
LnJnYiAqIGNvbG9yLmEsIGNvbG9yLmEpOyB9CisKICAgICAgICAgdmVjMyB5dXZUb1JnYihmbG9h
dCB5LCBmbG9hdCB1LCBmbG9hdCB2KQogICAgICAgICB7CiAgICAgICAgICAgICAvLyB5dXYgaXMg
ZWl0aGVyIGJ0NjAxIG9yIGJ0NzA5IHNvIHRoZSBvZmZzZXQgaXMgdGhlIHNhbWUKQEAgLTQ4Myw2
ICs0ODUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAg
ICAgICAgICAgICB2ZWMyIHRleENvb3JkID0gdHJhbnNmb3JtVGV4Q29vcmQoKTsKICAgICAgICAg
ICAgIGFwcGx5TWFudWFsUmVwZWF0SWZOZWVkZWQodGV4Q29vcmQpOwogICAgICAgICAgICAgYXBw
bHlUZXh0dXJlUkdCSWZOZWVkZWQoY29sb3IsIHRleENvb3JkKTsKKyAgICAgICAgICAgIGFwcGx5
UHJlbXVsdGlwbHlJZk5lZWRlZChjb2xvcik7CiAgICAgICAgICAgICBhcHBseVRleHR1cmVZVVZJ
Zk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlTlYxMklm
TmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CiAgICAgICAgICAgICBhcHBseVRleHR1cmVOVjIxSWZO
ZWVkZWQoY29sb3IsIHRleENvb3JkKTsKQEAgLTUzNyw2ICs1NDAsNyBAQCBSZWY8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUoVGV4
dHVyZU1hcHBlcgogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhNYW51YWxSZXBlYXQpOwog
ICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhUZXh0dXJlRXh0ZXJuYWxPRVMpOwogICAgIFNF
VF9BUFBMSUVSX0ZST01fT1BUSU9OUyhSb3VuZGVkUmVjdENsaXApOworICAgIFNFVF9BUFBMSUVS
X0ZST01fT1BUSU9OUyhQcmVtdWx0aXBseSk7CiAKICAgICBTdHJpbmdCdWlsZGVyIHZlcnRleFNo
YWRlckJ1aWxkZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5k
ZXggZDZhYzUwMTgyMTcyNjc3ZDYwMTEyYTAyZTRmOGQ3NWM1NzAwYjUxMy4uODI2YzViODE4YjE1
MDJlZWY1NmI3YzlhNmI4ZTJlNWRmMzNlMzdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFRleHR1
cmVQYWNrZWRZVVYgPSAxTCA8PCAyMSwKICAgICAgICAgVGV4dHVyZUV4dGVybmFsT0VTID0gMUwg
PDwgMjIsCiAgICAgICAgIFJvdW5kZWRSZWN0Q2xpcCAgPSAxTCA8PCAyMywKKyAgICAgICAgUHJl
bXVsdGlwbHkgICAgICA9IDFMIDw8IDI0LAogICAgIH07CiAKICAgICBlbnVtIGNsYXNzIFZhcmlh
YmxlSUQgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGMxNmVkZGY0NGI2ODE1YzRiMDRiZmZmODIwYTE5MjQyYjM1MmYxMjIu
LmM2YTgzZGY2Yzk2NWRkMTQ5N2NhNTYwNDM4YWJhYjkyYzM1NTgxMWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAyMS0wNS0yOCAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIEluY29ycmVjdCByZW5kZXJpbmcgb2YgVlA5IHdpdGggdHJh
bnNwYXJlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYSB0ZXN0IGZvciB0aGUgcGxheWJhY2sgb2YgdHJhbnNwYXJlbnQgdmlkZW9zLgorCisg
ICAgICAgICogbWVkaWEvY29udGVudC92aWRlby13aXRoLWFscGhhLWZyYW1lLnBuZzogQWRkZWQu
CisgICAgICAgICogbWVkaWEvY29udGVudC92aWRlby13aXRoLWFscGhhLndlYm06IEFkZGVkLgor
ICAgICAgICAqIG1lZGlhL3ZpZGVvLXdpdGgtYWxwaGEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogbWVkaWEvdmlkZW8td2l0aC1hbHBoYS5odG1sOiBBZGRlZC4KKwogMjAyMS0wNS0y
OCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9y
ZSByZWFkaWx5IGxheW91dCB3aGVuIHNjcm9sbC1zbmFwIHByb3BlcnRpZXMgY2hhbmdlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L3ZpZGVvLXdpdGgtYWxwaGEtZnJhbWUu
cG5nIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC92aWRlby13aXRoLWFscGhhLWZyYW1lLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OTJiZWU1YmZkNzczODcxZDhmMzFjMGRhYTY4N2VhZmM3NmViYTJmCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3MjkKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5DcVM1
azRNP3R5U1R+UD5mdzNqaSoqVTx8KjslMldDX2dQVEN6WExnCnpWYEErQFRhVXZJR0RxWDF5PEoh
Rmw/aUNoU1pFYX5BWDwxdU9KdCRiM2VsKWlnUG1XdlhQS3lJPmgoMmNBM1dIOQp6Ylg5WnI9NT43
UW5pUEk4SzY+X1MkcU9hYmZCS3FSSXpCJHdBXi1sSj9ZbiE3fEorKHZyZF92S2tUcT9ocElTPiEK
elVNUjwycjRFZj4zSkRRTyVrMCM8RyVOYm5TTzU0P0NIXzN9LXQmSmxkJWY8WkgyNXBiT1dsPHlt
QG5YO0E3JUJ0CnpfN1I3K0MpWT5JazI0Jl9ScUNHWGRoPCM4YEolJmheQ1MoOFVSRk5oKmNrOThW
UHx2WCQkLXd+OW0hcCowezdYIQp6LWdLejRkdm55dmpuYH57YXYhZURPYFpBTFdVKXQqcHRyekVX
bDdVMWZzTCZlWW8jPlJFXlYzcjtSQztBLU5ZRTkKem91Pzk+TF56MFFzVH1BMyRHKDVKRGZlWEl5
ZFZva21pVjBDJHQpYWluYT1MWXQoVSlEX0wrc2xoQi1YeWM2PV5fCnpAJSR5JVolNGkxY3lYVWla
ezYpI2QpUTslRipOKHtPN1o5dVNAMlJ7cX5Xe3F1VnBkQDE+OWZPP0EqS2NUajRLOwp6bG9oTTVA
RD56c15vVkl6LStnQGQ/JWNoOXRDd0I5JnRKYyFYcFF2ZylAV2R+dXFBb0J5RDxDKiEzQkdsUFg+
eGAKejdJO0ohR2NmMldnRF8qb1F1e0tYQWJXfFl1UGdnZ1J2QTc7P1Z8SC1gOUxBYjY0IV9sPWx0
QjwpVnZZfj1jM2ZhCnpsR0dIMV4zME05MSRSJjFmYmQyPmFpRjQmby1VM2Q2fVIzVldNbDtMbmlU
JTgmK344cUYkWEVBa3R9QDF6X19yeApRVD9GSm5QZ2cmZWJ4c0xRMEJWeCFnOCU+awoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC92
aWRlby13aXRoLWFscGhhLndlYm0gYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L3ZpZGVvLXdp
dGgtYWxwaGEud2VibQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWY5NGViYzA1ZDVmYjFmZDFhZThhYzE1ZjgzZDM3
YWRjNjRlNDdiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NDg3CnpjbWNKVFZNcjVFOUtoZSpI
Z300VTE9YlJ3cCsqKkZyenAlSUk/b045RyMjRnIyMnBQMTNAWmxhNjhmXllPfUEzZgp6IVZqYUFv
VElXRFZ1ZEJ7JVloe0tEZzM0JTB0YkNhRDhkUiN1bipuMj1ofVRKNSZqKzkqeUc7K19rUW54fE13
blQKem9ARilxa25oSjd8NU5eYyEmPzQzV19WeFY9NEhuPEs4Ul8pNTdQJDA+IU9meTwofVNhZHZJ
Z2s3OVM5djJYZGBYCnpKQUBkSEJ3UEVOcm59X1VpWS0xVS1gbSU7OzFYZyFzeGFCaTd2bDB3VSsm
UypOZSpoOyF1XmpRI3A+bTs8cm5Adgp6SlpKTGBvb1YtVVJHTGFGRG9leylfSDREZlpONDRpQ2RE
bGFNU3BSYypxdkkmUlFLQ1okJHtBSFV+QTZpNylBeE4KeldCIzcmbS1fbyFGMHxPSXtGb35JOzFB
R19iMHxTVnZTelJ9azBuOUdscm5kMnl0fHYrSXBQJChFe1FicUVZWUIpCnp6TlchIVgqMzdiR059
TkVReWcmcTg5Znp5STZYRWpQc31NI3RnMXx6bkRPY3Joc1dKfSt+Y2x0TnQyZG4kbFRtbQp6LURH
WDNId1E7cV9ONE1ERlJmdDdoMHZqeipGRDFkan5HbzV1ZGN7NUVhJDt6XzQ2cChvJFchVXFJXlJn
TGlZOV8KekVKQ2lsYCtAUUkmQU1gNztnX2B0XitaVGk8enc9djxPYC1BSnlBenpySl8lKS1qZFM3
eDV1PGIhV2IyIWUjRzR5CnpMdzFCVE11Z2Z2TWMpayVqY25xVClGMWBoZ0IoLV84QktQI3NKZzMm
YzAjT0E/MjJlTXJndjhuZCUremkyK191Kwp6NTR6KjVZZ0ZBO2p1Tj16SSY+Wj4xR0ZRPjVuYFJ7
O3E5MTVVZSFINGs1bmhQPEFfV1k8cUZAMHF0ZzghaiZ0Q1MKejJ8QCZgTjFCMGxxKisxKVRpMHxl
eFRCWDRjayEmMSZGfUJlbnd8bzhUbXNNSTJER0RtNSYqOW1PKWE+aTgjPDRnCnpGdTA+Z2greUBv
UyVZQGU9ME45QllYV3o/TlFod2pxYyNOWUkzcDg1JmwmOXN3NCk5WUIzTTFAaW9xVDJnYX4lZAp6
PXo3NSZDa1BSJjkoNUE5PDJyTzZHWXJzPDhKdFc2VHs5Vi07RXA1VWQ3Sn14T2J7WWlKP2FAfk0/
RExqTXx+QH0KenFuOGxEX0RCNWB4WnsjYzFZSS13NFFOTmtOUWh3ZCRrYyo2eChOfk5vTUZQP2p2
XnN+KWchWTg/VTxQWm95U1pRCmFncm9BeF5LTnxqNi1JQ0YkZ2Z0dmBsIVdxdG9hVDlQKEglfAoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8td2l0aC1hbHBoYS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2l0
aC1hbHBoYS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZWVjOWFiMjBmOTY1ZGQ5ZGE5MjMz
YmQyZGNlYTVmY2Q1MTQzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby13aXRoLWFscGhhLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+dmlkZW8td2l0aC1hbHBoYTwvdGl0bGU+
CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CisgICAg
fQorCisgICAgI2xlZnQgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxl
ZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorICAgICNzcGFjZXIgeworICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDIwMHB4OworICAgICAgICB0b3A6
IDBweDsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgfQorICAgICNyaWdodCB7CisgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogNDAwcHg7CisgICAgICAgIHRvcDog
MHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyA8L2hlYWQ+Cis8Ym9keT4KKyAgPGltZyBpZD0ibGVm
dCIgc3JjPSJjb250ZW50L3ZpZGVvLXdpdGgtYWxwaGEtZnJhbWUucG5nIj4KKyAgPGRpdiBpZD0i
c3BhY2VyIj48L2Rpdj4KKyAgPGltZyBpZD0icmlnaHQiIHNyYz0iY29udGVudC92aWRlby13aXRo
LWFscGhhLWZyYW1lLnBuZyI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2l0aC1hbHBoYS5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2l0aC1hbHBoYS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIyNGFjMTQ1Yjk0ZTM5NjQ2MDIxZWJjMTNmOTc2ZDVkODU2ZDg0Y2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13aXRoLWFscGhhLmh0bWwKQEAgLTAsMCArMSw3
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+dmlkZW8td2l0
aC1hbHBoYTwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgICAgYmFja2dyb3Vu
ZDogd2hpdGU7CisgICAgfQorCisgICAgI3ZpZGVvIHsKKyAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKyAgICAj
c3BhY2VyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAyMDBw
eDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAg
ICB9CisgICAgI2NhbnZhcyB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
bGVmdDogNDAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNj
cmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICAvLyBQdXQg
YSB2aWRlbyBlbGVtZW50IHRvIHRoZSBsZWZ0LCBhIHNwYWNlciBpbiB0aGUgbWlkZGxlIGFuZCBh
IGNhbnZhcyB0byB0aGUgcmlnaHQuIFRoZSB2aWRlbyBlbGVtZW50IHdpbGwKKyAgICAvLyBwbGF5
IGEgdHJhbnNwYXJlbnQgdmlkZW8sIGFuZCBhIHZpZGVvIGZyYW1lIHdpbGwgYmUgY29waWVkIGlu
dG8gdGhlIGNhbnZhcy4KKyAgICAvLyBBcyB0aGUgdmlkZW8gYW5kIHRoZSBjYW52YXMgYXJlIGlu
dmlzaWJsZSwgdG8gdmlzdWFsbHkgY2hlY2sgdGhhdCB0aGUgdmlkZW8gZWxlbWVudCBpcyByZWFs
bHkgcGxheWluZyBzb21ldGhpbmcsCisgICAgLy8gc2V0IHRoZSBzaXplIG9mIHRoZSBzcGFjZXIg
dG8gdGhlIHNpemUgb2YgdGhlIHZpZGVvIGZyYW1lcyAoMjAweDIwMCkuCisKKyAgICB2YXIgcmVx
dWlyZVBpeGVsRHVtcCA9IHRydWU7CisKKyAgICBmdW5jdGlvbiBzZWVrZWQoKSB7CisgICAgICAg
IGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgICAg
IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2UodmlkZW8sIDAsIDApOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDApOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGJ1ZmZlcmVkKCkgeworICAgICAgICB2aWRlby53aWR0aCA9IHZpZGVv
LnZpZGVvV2lkdGg7CisgICAgICAgIHZpZGVvLmhlaWdodCA9IHZpZGVvLnZpZGVvSGVpZ2h0Owor
ICAgICAgICAKKyAgICAgICAgbGV0IHNwYWNlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
cGFjZXIiKTsKKyAgICAgICAgc3BhY2VyLnN0eWxlLndpZHRoID0gdmlkZW8ud2lkdGggKyAicHgi
OworICAgICAgICBzcGFjZXIuc3R5bGUuaGVpZ2h0ID0gdmlkZW8uaGVpZ2h0ICsgInB4IjsKKyAg
ICAgICAgCisgICAgICAgIGNhbnZhcy53aWR0aCA9IHZpZGVvLndpZHRoOworICAgICAgICBjYW52
YXMuaGVpZ2h0ID0gdmlkZW8uaGVpZ2h0OworICAgICAgICAKKyAgICAgICAgdmlkZW8uY3VycmVu
dFRpbWUgPSAuNTsKKyAgICB9CisgICAgICAKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAg
ICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICB2aWRlby5zcmMgPSAiY29udGVudC92aWRl
by13aXRoLWFscGhhLndlYm0iOworICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCJzZWVr
ZWQiLCBzZWVrZWQpOworICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCJjYW5wbGF5dGhy
b3VnaCIsIGJ1ZmZlcmVkLCBmYWxzZSk7CisgICAgfQorICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJzdGFy
dCgpIj4KKyAgPHZpZGVvIGlkPSJ2aWRlbyI+PC92aWRlbz4KKyAgPGRpdiBpZD0ic3BhY2VyIj48
L2Rpdj4KKyAgPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430025</attachid>
            <date>2021-05-28 10:21:24 -0700</date>
            <delta_ts>2021-05-31 02:41:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225961-20210528192123.patch</filename>
            <type>text/plain</type>
            <size>28206</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE0YzBiNzA2YjU3ZjIw
M2NkY2QzZTMyYjU4ZjE2ZDQ0YjNhZTM3Ni4uYjljZGNmYzRjZDE5MzZiYTc3MTkyYmU4MDFlMTg5
NmZiMmFjZTg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA1LTI4ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSW5j
b3JyZWN0IHJlbmRlcmluZyBvZiBWUDkgd2l0aCB0cmFuc3BhcmVuY3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcmVuZGVyaW5nIG9mIHZp
ZGVvcyB3aXRoIHRyYW5zcGFyZW5jeS4gVGhpcyBpcyBkb25lIGJvdGggQUMgYW5kIG5vbiBBQyBt
b2RlcyBhbmQKKyAgICAgICAgd2l0aCBhbmQgd2l0aG91dCBHU1RSRUFNRVJfR0wgZW5hYmxlZC4K
KworICAgICAgICBPbiBBQyBtb2RlIGFuZCB1c2luZyBHU1RSRUFNRVJfR0wsIGEgbmV3IG9wdGlv
biBpcyBhZGRlZCB0byBUZXh0dXJlTWFwcGVyR0wgYW5kIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtCisgICAgICAgIHRvIHN1cHBvcnQgcHJlbXVsdGlwbHlpbmcgdGhlIGNvbXBvbmVudHMgb2Yg
YSBwaXhlbC4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0
IGFscGhhLAorICAgICAgICBhbmQgd2UgbmVlZCBpdCBwcmVtdWx0aXBsaWVkIGluIG9yZGVyIHRv
IHBlcmZvcm0gdGhlIGNvcnJlY3QgYmxlbmRpbmcgYmxlbmRpbmcgb2YgdGhlIHZpZGVvIGZyYW1l
cy4gVGhlbiB3ZQorICAgICAgICB1c2UgdGhhdCBuZXcgb3B0aW9uIHRvIHJlbmRlciB2aWRlbyBm
cmFtZXMuIFRoaXMgbmV3IG9wdGlvbiBpcyBhbHNvIHVzZWQgd2hlbiBjb3B5aW5nIHRoZSB2aWRl
byBmcmFtZSBpbnRvCisgICAgICAgIGFuIGV4dGVybmFsIHRleHR1cmUgaWYgcHJlbXVsdGlwbHlB
bHBoYSBpcyByZXF1ZXN0ZWQuCisKKyAgICAgICAgT24gbm9uIEFDIG1vZGUsIG9yIHdoZW4gR1N0
cmVhbWVyLWdsIGlzIGRpc2FibGVkLCBhZGQgc3VwcG9ydCB0byBJbWFnZUdTdHJlYW1lckNhaXJv
IHRvIHByZW11bHRpcGx5IHRoZSBhbHBoYQorICAgICAgICBvZiB0aGUgdmlkZW8gZnJhbWUgYmVm
b3JlIGNyZWF0aW5nIHRoZSBjYWlybyBzdXJmYWNlIHRvIHBhaW50LCBhbmQgcGFzcyB0aGUgYXBw
cm9wcmlhdGUgY29tcG9zaXRlIG9wZXJhdG9yIHdoZW4KKyAgICAgICAgZHJhd2luZyB3aXRoIGFs
cGhhLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRlcjo6R3N0VmlkZW9G
cmFtZUhvbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VHU3RyZWFtZXI6Oklt
YWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6IHVwZGF0ZSB0aGUg
Y2FwcyBvZiB0aGUgY29udmVyc2lvbiB0byBtYWtlIHRoZW0gbWF0Y2ggdGhlIGZvcm1hdAorICAg
ICAgICBleHBlY3RlZCBieSBjYWlybywgc28gd2UgY2FuIGF2b2lkIGEgY29tcG9uZW50IHN3YXAu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRl
b1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
VGV4dHVyZUNvcGllckdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMS0wNS0yOCAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSByZWFkaWx5
IGxheW91dCB3aGVuIHNjcm9sbC1zbmFwIHByb3BlcnRpZXMgY2hhbmdlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUhvbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUhvbGRlci5jcHAKaW5kZXggZWVmMTI3NGJlZGYyY2ExMGE4
NDM1NTQ2YWEyNjEyMmE4Y2RiNWRiNC4uODEwZTZiODQyZDRiZWMxMTM5NjhhZjIyMWI3Yjc5NGEz
Y2NjMWJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lSG9sZGVyLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBHc3RWaWRlb0ZyYW1lSG9sZGVyOjpHc3RWaWRlb0ZyYW1lSG9s
ZGVyKEdzdFNhbXBsZSogc2FtcGxlLCBPcHRpb25hbDxHc3RWaWRlb0RlYwogICAgICAgICByZXR1
cm47CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQotICAgIG1fZmxhZ3MgPSBmbGFncyB8IChtX2hh
c0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKKyAgICBt
X2ZsYWdzID0gZmxhZ3MgfCAobV9oYXNBbHBoYUNoYW5uZWwgPyBUZXh0dXJlTWFwcGVyR0w6OlNo
b3VsZEJsZW5kIHwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRQcmVtdWx0aXBseSA6IDApOwogCiAg
ICAgR3N0TWVtb3J5KiBtZW1vcnkgPSBnc3RfYnVmZmVyX3BlZWtfbWVtb3J5KG1fYnVmZmVyLmdl
dCgpLCAwKTsKICAgICBpZiAoZ3N0X2lzX2dsX21lbW9yeShtZW1vcnkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IGJjODA2NjQ0OTZmMzk5ZTk2ZWNiNmRhM2MwMGQz
MjliM2U0YTNhNzkuLjgzOTE1YzEzZDg0ODIwZTJjMGFkNTI0ODAzMDZkZTViOTNkZWNjN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTM5LDEwICszOSw4IEBAIElt
YWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKICAgICBpZiAo
IWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmdmlkZW9JbmZvLCBjYXBzKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gUmlnaHQgbm93IHRoZSBUZXh0dXJlTWFwcGVyIG9ubHkgc3VwcG9ydHMg
Y2hyb21hcyB3aXRoIG9uZSBwbGFuZQotICAgIEFTU0VSVChHU1RfVklERU9fSU5GT19OX1BMQU5F
UygmdmlkZW9JbmZvKSA9PSAxKTsKLQotICAgIG1faGFzQWxwaGEgPSBHU1RfVklERU9fSU5GT19I
QVNfQUxQSEEoJnZpZGVvSW5mbyk7CisgICAgLy8gVGhlIGZyYW1lIGhhcyB0byBSR0Igc28gd2Ug
Y2FuIHBhaW50IGl0LgorICAgIEFTU0VSVChHU1RfVklERU9fSU5GT19JU19SR0IoJnZpZGVvSW5m
bykpOwogCiAgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2Ft
cGxlKTsKICAgICBpZiAoVU5MSUtFTFkoIUdTVF9JU19CVUZGRVIoYnVmZmVyKSkpCkBAIC01Miw1
MCArNTAsMTA5IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1lcihHc3RTYW1wbGUqIHNh
bXBsZSkKICAgICBpZiAoIW1fZnJhbWVNYXBwZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8v
IFRoZSB2aWRlbyBidWZmZXIgbWF5IGhhdmUgdGhlc2UgZm9ybWF0cyBpbiB0aGVzZSBjYXNlczoK
KyAgICAvLyB7IEJHUngsIEJHUkEgfTogb24gbGl0dGxlIGVuZGlhbjoKKyAgICAvLyAgIC0gV2hl
biBHU3RyZWFtZXItZ2wgaXMgZGlzYWJsZWQgKGJlaW5nIEFDIGVuYWJsZWQgb3Igbm90KSBhcyBW
aWRlb1NpbmtHU3RyZWFtZXIgaXMgdXNlZC4KKyAgICAvLyAgIC0gV2hlbiBHU3RyZWFtZXItZ2wg
aXMgZW5hYmxlZCwgYnV0IHRoZSBjYXBzIHVzZWQgaW4gdGhlIHNpbmsgYXJlIG5vdCBSR0IgYW5k
IGl0J3MgY29udmVydGVkIGJ5IHRoZSBwbGF5ZXIgdG8gcGFpbnQgaXQuCisgICAgLy8geyB4UkdC
LCBBUkdCIH06IG9uIGJpZyBlbmRpYW46CisgICAgLy8gICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlz
IGRpc2FibGVkIChiZWluZyBBQyBlbmFibGVkIG9yIG5vdCkgYXMgVmlkZW9TaW5rR1N0cmVhbWVy
IGlzIHVzZWQuCisgICAgLy8gICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlzIGVuYWJsZWQsIGJ1dCB0
aGUgY2FwcyB1c2VkIGluIHRoZSBzaW5rIGFyZSBub3QgUkdCIGFuZCBpdCdzIGNvbnZlcnRlZCBi
eSB0aGUgcGxheWVyIHRvIHBhaW50IGl0LgorICAgIC8vIHsgUkdCeCwgUkdCQSB9CisgICAgLy8g
ICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlzIGVuYWJsZWQgYW5kIHRoZSBjYXBzIHVzZWQgaW4gdGhl
IHNpbmsgYXJlIFJHQngvUkdCQS4KKyAgICAvLworICAgIC8vIEludGVybmFsbHkgY2Fpcm8gdXNl
cyBCR1JBIGZvciBDQUlST19GT1JNQVRfQVJHQjMyIG9uIGxpdHRsZSBlbmRpYW4gYW5kIEFSR0Ig
b24gYmlnIGVuZGlhbiwgc28gYm90aCB7IEJHUngsIEJHUkEgfQorICAgIC8vIGFuZCB7IHhSR0Is
IEFSR0IgfSBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5IHRvIGNhaXJvLiBCdXQgZm9yIHsgUkdCeCwg
UkdCQSB9IHdlIG5lZWQgdG8gc3dhcCB0aGUgUiBhbmQgQiBjb21wb25lbnRzLgorICAgIC8vIEFs
c28sIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0IGFscGhhIHdoaWxlIGNhaXJvIHJlcXVpcmVzIGl0
IHRvIGJlIHByZW11bHRpcGxpZWQsIHNvIGlmIHRoZSBmb3JtYXQgaGFzIGFscGhhCisgICAgLy8g
d2UgbmVlZCB0byBwcmVtdWx0aXBseSB0aGUgY29sb3IgY29tcG9uZW50cy4gU28gaW4gdGhlc2Ug
Y2FzZXMgd2UgbmVlZCB0byBjcmVhdGUgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBvcmlnaW5hbAor
ICAgIC8vIGJ1ZmZlci4KKyAgICBtX2hhc0FscGhhID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhB
KCZ2aWRlb0luZm8pOworICAgIGJvb2wgY29tcG9uZW50U3dhcFJlcXVpcmVkID0gR1NUX1ZJREVP
X0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFUX1JHQkEgfHwg
R1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFU
X1JHQng7CiAgICAgdW5zaWduZWQgY2hhciogYnVmZmVyRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dW5zaWduZWQgY2hhcio+KEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZtX3ZpZGVvRnJhbWUs
IDApKTsKICAgICBpbnQgc3RyaWRlID0gR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmbV92
aWRlb0ZyYW1lLCAwKTsKICAgICBpbnQgd2lkdGggPSBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1f
dmlkZW9GcmFtZSk7CiAgICAgaW50IGhlaWdodCA9IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1f
dmlkZW9GcmFtZSk7Ci0KICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlOwotICAg
IGNhaXJvX2Zvcm1hdF90IGNhaXJvRm9ybWF0OwotICAgIGNhaXJvRm9ybWF0ID0gKEdTVF9WSURF
T19GUkFNRV9GT1JNQVQoJm1fdmlkZW9GcmFtZSkgPT0gR1NUX1ZJREVPX0ZPUk1BVF9SR0JBKSA/
IENBSVJPX0ZPUk1BVF9BUkdCMzIgOiBDQUlST19GT1JNQVRfUkdCMjQ7CiAKLSAgICAvLyBHU3Ry
ZWFtZXIgZG9lc24ndCB1c2UgcHJlbXVsdGlwbGllZCBhbHBoYSwgYnV0IGNhaXJvIGRvZXMuIFNv
IGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGFuIGFscGhhIGNvbXBvbmVudAotICAgIC8vIHdlIG5l
ZWQgdG8gcHJlbXVsdGlwbHkgaXQgYmVmb3JlIHBhc3NpbmcgdGhlIGRhdGEgdG8gY2Fpcm8uIFRo
aXMgbmVlZHMgdG8gYmUgYm90aCB1c2luZyBnc3RyZWFtZXItZ2wgYW5kIG5vdAotICAgIC8vIHVz
aW5nIGl0LgotICAgIC8vCi0gICAgLy8gVGhpcyBtZXRob2QgY291bGQgYmUgY2FsbGVkIHNldmVy
YWwgdGltZXMgZm9yIHRoZSBzYW1lIGJ1ZmZlciwgZm9yIGV4YW1wbGUgaWYgd2UgYXJlIHJlbmRl
cmluZyB0aGUgdmlkZW8gZnJhbWVzCi0gICAgLy8gaW4gc2V2ZXJhbCBub24gYWNjZWxlcmF0ZWQg
Y2FudmFzZXMuIER1ZSB0byB0aGlzLCB3ZSBjYW5ub3QgbW9kaWZ5IHRoZSBidWZmZXIsIHNvIHdl
IG5lZWQgdG8gY3JlYXRlIGEgY29weS4KLSAgICBpZiAoY2Fpcm9Gb3JtYXQgPT0gQ0FJUk9fRk9S
TUFUX0FSR0IzMikgeworICAgIGlmIChtX2hhc0FscGhhIHx8IGNvbXBvbmVudFN3YXBSZXF1aXJl
ZCkgewogICAgICAgICB1bnNpZ25lZCBjaGFyKiBzdXJmYWNlRGF0YSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkIGNoYXIqPihmYXN0TWFsbG9jKGhlaWdodCAqIHN0cmlkZSkpOwogICAgICAgICB1bnNp
Z25lZCBjaGFyKiBzdXJmYWNlUGl4ZWwgPSBzdXJmYWNlRGF0YTsKIAogICAgICAgICBmb3IgKGlu
dCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKICAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgaGVpZ2h0OyB5KyspIHsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBhbHBoYSA9
IGJ1ZmZlckRhdGFbM107CisgICAgICAgICAgICAgICAgLy8gVGhlc2Ugc3RvcmUgdGhlIHNvdXJj
ZSBwaXhlbCBjb21wb25lbnRzLgorICAgICAgICAgICAgICAgIHVpbnQ4X3QgcmVkOworICAgICAg
ICAgICAgICAgIHVpbnQ4X3QgZ3JlZW47CisgICAgICAgICAgICAgICAgdWludDhfdCBibHVlOwor
ICAgICAgICAgICAgICAgIHVpbnQ4X3QgYWxwaGE7CisgICAgICAgICAgICAgICAgLy8gVGhlc2Ug
c3RvcmUgdGhlIGNvbXBvbmVudCBvZmZzZXQgaW5zaWRlIHRoZSBwaXhlbCBmb3IgdGhlIGRlc3Rp
bmF0aW9uIHN1cmZhY2UuCisgICAgICAgICAgICAgICAgdWludDhfdCByZWRJbmRleDsKKyAgICAg
ICAgICAgICAgICB1aW50OF90IGdyZWVuSW5kZXg7CisgICAgICAgICAgICAgICAgdWludDhfdCBi
bHVlSW5kZXg7CisgICAgICAgICAgICAgICAgdWludDhfdCBhbHBoYUluZGV4OworICAgICAgICAg
ICAgICAgIGlmIChjb21wb25lbnRTd2FwUmVxdWlyZWQpIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gU291cmNlIGlzIFJHQkEgb3IgUkdCeC4KKyAgICAgICAgICAgICAgICAgICAgcmVkID0gYnVm
ZmVyRGF0YVswXTsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW4gPSBidWZmZXJEYXRhWzFdOwor
ICAgICAgICAgICAgICAgICAgICBibHVlID0gYnVmZmVyRGF0YVsyXTsKKyAgICAgICAgICAgICAg
ICAgICAgYWxwaGEgPSBidWZmZXJEYXRhWzNdOwogI2lmIEdfQllURV9PUkRFUiA9PSBHX0xJVFRM
RV9FTkRJQU4KLSAgICAgICAgICAgICAgICAvLyBWaWRlbyBmcmFtZXMgdXNlIFJHQkEgaW4gbGl0
dGxlIGVuZGlhbi4KLSAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbMF0gPSAoYnVmZmVyRGF0
YVsyXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKLSAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxb
MV0gPSAoYnVmZmVyRGF0YVsxXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKLSAgICAgICAgICAgICAg
ICBzdXJmYWNlUGl4ZWxbMl0gPSAoYnVmZmVyRGF0YVswXSAqIGFscGhhICsgMTI4KSAvIDI1NTsK
LSAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbM10gPSBhbHBoYTsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gRGVzdGluYXRpb24gaXMgQkdSQS4KKyAgICAgICAgICAgICAgICAgICAgcmVkSW5k
ZXggPSAyOworICAgICAgICAgICAgICAgICAgICBncmVlbkluZGV4ID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgYmx1ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYWxwaGFJbmRleCA9
IDM7CiAjZWxzZQotICAgICAgICAgICAgICAgIC8vIFZpZGVvIGZyYW1lcyB1c2UgUkdCQSBpbiBi
aWcgZW5kaWFuLgotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFswXSA9IGFscGhhOwotICAg
ICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsxXSA9IChidWZmZXJEYXRhWzBdICogYWxwaGEgKyAx
MjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsyXSA9IChidWZmZXJEYXRh
WzFdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsz
XSA9IChidWZmZXJEYXRhWzJdICogYWxwaGEgKyAxMjgpIC8gMjU1OworICAgICAgICAgICAgICAg
ICAgICAvLyBEZXN0aW5hdGlvbiBpcyBBUkdCLgorICAgICAgICAgICAgICAgICAgICByZWRJbmRl
eCA9IDE7CisgICAgICAgICAgICAgICAgICAgIGdyZWVuSW5kZXggPSAyOworICAgICAgICAgICAg
ICAgICAgICBibHVlSW5kZXggPSAzOworICAgICAgICAgICAgICAgICAgICBhbHBoYUluZGV4ID0g
MDsKICNlbmRpZgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisjaWYgR19CWVRFX09SREVSID09
IEdfTElUVExFX0VORElBTgorICAgICAgICAgICAgICAgICAgICAvLyBCR1JBIG9yIEJHUnggYm90
aCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uLgorICAgICAgICAgICAgICAgICAgICByZWQgPSBidWZm
ZXJEYXRhWzJdOworICAgICAgICAgICAgICAgICAgICBncmVlbiA9IGJ1ZmZlckRhdGFbMV07Cisg
ICAgICAgICAgICAgICAgICAgIGJsdWUgPSBidWZmZXJEYXRhWzBdOworICAgICAgICAgICAgICAg
ICAgICBhbHBoYSA9IGJ1ZmZlckRhdGFbM107CisgICAgICAgICAgICAgICAgICAgIHJlZEluZGV4
ID0gMjsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW5JbmRleCA9IDE7CisgICAgICAgICAgICAg
ICAgICAgIGJsdWVJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGFscGhhSW5kZXggPSAz
OworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgLy8gQVJHQiBvdCB4UkdCIGJvdGggc291cmNl
IGFuZCBkZXN0aW5hdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgcmVkID0gYnVmZmVyRGF0YVsx
XTsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW4gPSBidWZmZXJEYXRhWzJdOworICAgICAgICAg
ICAgICAgICAgICBibHVlID0gYnVmZmVyRGF0YVszXTsKKyAgICAgICAgICAgICAgICAgICAgYWxw
aGEgPSBidWZmZXJEYXRhWzBdOworICAgICAgICAgICAgICAgICAgICByZWRJbmRleCA9IDE7Cisg
ICAgICAgICAgICAgICAgICAgIGdyZWVuSW5kZXggPSAyOworICAgICAgICAgICAgICAgICAgICBi
bHVlSW5kZXggPSAzOworICAgICAgICAgICAgICAgICAgICBhbHBoYUluZGV4ID0gMDsKKyNlbmRp
ZgorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtX2hhc0FscGhhKSB7
CisgICAgICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFtyZWRJbmRleF0gPSByZWQgKiBhbHBo
YSAvIDI1NTsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2dyZWVuSW5kZXhdID0g
Z3JlZW4gKiBhbHBoYSAvIDI1NTsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2Js
dWVJbmRleF0gPSBibHVlICogYWxwaGEgLyAyNTU7CisgICAgICAgICAgICAgICAgICAgIHN1cmZh
Y2VQaXhlbFthbHBoYUluZGV4XSA9IGFscGhhOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFtyZWRJbmRleF0gPSByZWQ7CisgICAgICAg
ICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFtncmVlbkluZGV4XSA9IGdyZWVuOworICAgICAgICAg
ICAgICAgICAgICBzdXJmYWNlUGl4ZWxbYmx1ZUluZGV4XSA9IGJsdWU7CisgICAgICAgICAgICAg
ICAgICAgIHN1cmZhY2VQaXhlbFthbHBoYUluZGV4XSA9IGFscGhhOworICAgICAgICAgICAgICAg
IH0KKwogICAgICAgICAgICAgICAgIGJ1ZmZlckRhdGEgKz0gNDsKICAgICAgICAgICAgICAgICBz
dXJmYWNlUGl4ZWwgKz0gNDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBzdXJm
YWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoc3VyZmFj
ZURhdGEsIGNhaXJvRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKKyAgICAgICAgc3Vy
ZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKHN1cmZh
Y2VEYXRhLCBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKICAg
ICAgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBzX3N1cmZhY2VEYXRhS2V5OwogICAg
ICAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoc3VyZmFjZS5nZXQoKSwgJnNfc3VyZmFj
ZURhdGFLZXksIHN1cmZhY2VEYXRhLCBbXSh2b2lkKiBkYXRhKSB7IGZhc3RGcmVlKGRhdGEpOyB9
KTsKICAgICB9IGVsc2UKLSAgICAgICAgc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1
cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlckRhdGEsIGNhaXJvRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBzdHJpZGUpKTsKKyAgICAgICAgc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1
cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlckRhdGEsIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdp
ZHRoLCBoZWlnaHQsIHN0cmlkZSkpOwogCiAgICAgQVNTRVJUKGNhaXJvX3N1cmZhY2Vfc3RhdHVz
KHN1cmZhY2UuZ2V0KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTKTsKICAgICBtX2ltYWdlID0g
Qml0bWFwSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKHN1cmZhY2UpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMmJhZWYyYTRlZDI0OTE3NDM4
NjM4MjgyZTE3ZmMyZDhhMjliYTE5Ny4uYjQ4YzY2MjdmMmEzOTFiZGIyMjdiMjg2ZWJiOWNhZWU0
NmVlOTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTI5NDYsNyArMjk0Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgICAgICAgICAgICAgbGF5ZXJCdWZm
ZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihXVEZNb3Zl
KHRleHR1cmUpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZyYW1lSG9sZGVyLT51cGRh
dGVUZXh0dXJlKGxheWVyQnVmZmVyLT50ZXh0dXJlR0woKSk7Ci0gICAgICAgICAgICBsYXllckJ1
ZmZlci0+c2V0RXh0cmFGbGFncyhtX3RleHR1cmVNYXBwZXJGbGFncyB8IChmcmFtZUhvbGRlci0+
aGFzQWxwaGFDaGFubmVsKCkgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMCkpOwor
ICAgICAgICAgICAgbGF5ZXJCdWZmZXItPnNldEV4dHJhRmxhZ3MobV90ZXh0dXJlTWFwcGVyRmxh
Z3MgfCAoZnJhbWVIb2xkZXItPmhhc0FscGhhQ2hhbm5lbCgpID8gVGV4dHVyZU1hcHBlckdMOjpT
aG91bGRCbGVuZCB8IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkUHJlbXVsdGlwbHkgOiAwKSk7CiAg
ICAgICAgIH0KICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZl
cikpOwogICAgIH07CkBAIC0zMjk4LDEwICszMjk4LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjCiAgICAgICAgIGlmICghbV9jb2xvckNvbnZlcnRJbnB1dENhcHMgfHwgIWdzdF9jYXBzX2lz
X2VxdWFsKG1fY29sb3JDb252ZXJ0SW5wdXRDYXBzLmdldCgpLCBjYXBzKSkgewogICAgICAgICAg
ICAgbV9jb2xvckNvbnZlcnRJbnB1dENhcHMgPSBjYXBzOwogICAgICAgICAgICAgbV9jb2xvckNv
bnZlcnRPdXRwdXRDYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBzX2NvcHkoY2FwcykpOworCisgICAg
ICAgICAgICAvLyBUaGVzZSBjYXBzIG11c3QgbWF0Y2ggdGhlIGludGVybmFsIGZvcm1hdCBvZiBh
IGNhaXJvIHN1cmZhY2Ugd2l0aCBDQUlST19GT1JNQVRfQVJHQjMyLAorICAgICAgICAgICAgLy8g
c28gd2UgZG9uJ3QgbmVlZCB0byBwZXJmb3JtIGNvbG9yIGNvbnZlcnNpb25zIHdoZW4gcGFpbnRp
bmcgdGhlIHZpZGVvIGZyYW1lLgogI2lmIEdfQllURV9PUkRFUiA9PSBHX0xJVFRMRV9FTkRJQU4K
LSAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hB
U19BTFBIQSgmdmlkZW9JbmZvKSA/ICJSR0JBIiA6ICJCR1J4IjsKKyAgICAgICAgICAgIGNvbnN0
IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZv
KSA/ICJCR1JBIiA6ICJCR1J4IjsKICNlbHNlCi0gICAgICAgICAgICBjb25zdCBjaGFyKiBmb3Jt
YXRTdHJpbmcgPSBHU1RfVklERU9fSU5GT19IQVNfQUxQSEEoJnZpZGVvSW5mbykgPyAiUkdCQSIg
OiAiUkdCeCI7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBmb3JtYXRTdHJpbmcgPSBHU1RfVklE
RU9fSU5GT19IQVNfQUxQSEEoJnZpZGVvSW5mbykgPyAiQVJHQiIgOiAieFJHQiI7CiAjZW5kaWYK
ICAgICAgICAgICAgIGdzdF9jYXBzX3NldF9zaW1wbGUobV9jb2xvckNvbnZlcnRPdXRwdXRDYXBz
LmdldCgpLCAiZm9ybWF0IiwgR19UWVBFX1NUUklORywgZm9ybWF0U3RyaW5nLAogICAgICAgICAg
ICAgICAgICJ0ZXh0dXJlLXRhcmdldCIsIEdfVFlQRV9TVFJJTkcsIEdTVF9HTF9URVhUVVJFX1RB
UkdFVF8yRF9TVFIsIG51bGxwdHIpOwpAQCAtMzMyMyw3ICszMzI2LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWMKICAgICBpZiAoIWdzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBj
b250ZXh0LmRyYXdJbWFnZShnc3RJbWFnZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3Qo
KSwgeyBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSwgbV9zaG91bGRIYW5kbGVPcmllbnRhdGlvblRh
Z3MgPyBtX3ZpZGVvU291cmNlT3JpZW50YXRpb24gOiBJbWFnZU9yaWVudGF0aW9uKCkgfSk7Cisg
ICAgY29udGV4dC5kcmF3SW1hZ2UoZ3N0SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdEltYWdlLT5y
ZWN0KCksIHsgZ3N0SW1hZ2UtPmhhc0FscGhhKCkgPyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNl
T3ZlciA6IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5LCBtX3Nob3VsZEhhbmRsZU9yaWVudGF0aW9u
VGFncyA/IG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsK
IH0KIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCkBAIC0zMzM0LDkgKzMzMzcsNiBAQCBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoaWNzQ29udAogICAgIGlmIChtX2lzVXNpbmdGYWxsYmFja1ZpZGVvU2luaykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHByZW11bHRpcGx5QWxwaGEpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQogICAgIExvY2tlciBzYW1wbGVMb2NrZXIgeyBtX3NhbXBsZU11dGV4
IH07CiAKICAgICBpZiAoIUdTVF9JU19TQU1QTEUobV9zYW1wbGUuZ2V0KCkpKQpAQCAtMzM1Nyw3
ICszMzU3LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnQKIAogICAgIGZyYW1lSG9sZGVyLT53
YWl0Rm9yQ1BVU3luYygpOwogCi0gICAgcmV0dXJuIG1fdmlkZW9UZXh0dXJlQ29waWVyLT5jb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoKmxheWVyQnVmZmVyLmdldCgpLCBzaXplLCBv
dXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBmbGlwWSwgbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uKTsKKyAgICByZXR1cm4gbV92
aWRlb1RleHR1cmVDb3BpZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgqbGF5
ZXJCdWZmZXIuZ2V0KCksIHNpemUsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWws
IGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNlT3JpZW50
YXRpb24sIHByZW11bHRpcGx5QWxwaGEpOwogfQogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
ZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwCmluZGV4IGI4OGM4
MDI4MWVmYjE5ZTU4Y2NlZTFjYTkxYjk3OGI5N2RlOThjZjAuLjkwNThmMDgxNDg2OWZkZmVjMjkz
Njc5ZGNkNTE5M2Q4Y2UwNDllOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVD
b3BpZXJHU3RyZWFtZXIuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBWaWRlb1RleHR1cmVD
b3BpZXJHU3RyZWFtZXI6OnVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCkKICAgICAgICAgLTEs
IDEsIC0oZmFyVmFsdWUgKyBuZWFyVmFsdWUpIC8gKGZhclZhbHVlIC0gbmVhclZhbHVlKSwgMSk7
CiB9CiAKLWJvb2wgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXImIGlucHV0
VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwgR0xlbnVt
IG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVt
IGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24gc291cmNl
T3JpZW50YXRpb24pCitib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
JiBpbnB1dFRleHR1cmUsIEludFNpemUmIGZyYW1lU2l6ZSwgR0x1aW50IG91dHB1dFRleHR1cmUs
IEdMZW51bSBvdXRwdXRUYXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBib29sIGZsaXBZLCBJbWFnZU9yaWVudGF0aW9u
IHNvdXJjZU9yaWVudGF0aW9uLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAgICAgaWYgKCFt
X2ZyYW1lYnVmZmVyIHx8ICFtX3ZibyB8fCBmcmFtZVNpemUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xNjEsNyArMTYxLDcgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJH
U3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGUK
ICAgICB1c2luZyBCdWZmZXIgPSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjsKICAg
ICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9ucyBvcHRpb25zOwogICAgIFdURjo6
c3dpdGNoT24oaW5wdXRUZXh0dXJlLnRleHR1cmVWYXJpYW50KCksCi0gICAgICAgIFsmXShjb25z
dCBCdWZmZXI6OlJHQlRleHR1cmUmKSB7IG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6VGV4dHVyZVJHQjsgfSwKKyAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6UkdCVGV4dHVy
ZSYpIHsgb3B0aW9ucyA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCIHwg
KHByZW11bHRpcGx5QWxwaGEgPyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlw
bHkgOiAwKTsgfSwKICAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6WVVWVGV4dHVyZSYgdGV4dHVy
ZSkgewogICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLm51bWJlck9mUGxhbmVzKSB7CiAgICAg
ICAgICAgICBjYXNlIDE6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVh
bWVyLmgKaW5kZXggNTc5Yjg3ZTMzYjYwNGM5NjViN2U2NTJjOTk3MWI2NDAwZjFmYjBkNC4uZWFi
YTk1YjI2MWY3MGFkZTY3ZDY5YjVhNjU1NjQzYjA1ZDMxYjdhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6
CiAgICAgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyKENvbG9yQ29udmVyc2lvbik7CiAgICAg
flZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcigpOwogCi0gICAgYm9vbCBjb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXImIGlu
cHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwgR0xl
bnVtIG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24gc291
cmNlT3JpZW50YXRpb24pOworICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyJiBpbnB1dFRleHR1cmUsIEludFNp
emUmIGZyYW1lU2l6ZSwgR0x1aW50IG91dHB1dFRleHR1cmUsIEdMZW51bSBvdXRwdXRUYXJnZXQs
IEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLCBib29sIGZsaXBZLCBJbWFnZU9yaWVudGF0aW9uIHNvdXJjZU9yaWVudGF0aW9uLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpOwogICAgIHZvaWQgdXBkYXRlQ29sb3JDb252ZXJzaW9uTWF0
cml4KENvbG9yQ29udmVyc2lvbik7CiAgICAgdm9pZCB1cGRhdGVUZXh0dXJlU3BhY2VNYXRyaXgo
KTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwCmluZGV4IDE4ODk5ZTU5OGY3NmNmMmNjMTA5MjhkZWM1ZmFmNWU3ZWZjNzg4ZmMuLjAw
YzhlODdlOTE1NjlhNTY1ZjVkYWZhMTU1YzZjZjE2MTZmZGM2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwCkBAIC01MDQsNiArNTA0LDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0
dXJlKEdMdWludCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgdGUKICAgICAg
ICAgZmxhZ3MgfD0gU2hvdWxkQmxlbmQ7CiAgICAgfQogCisgICAgaWYgKGZsYWdzICYgU2hvdWxk
UHJlbXVsdGlwbHkpCisgICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OlByZW11bHRpcGx5OworCiAgICAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBw
cm9ncmFtID0gZGF0YSgpLmdldFNoYWRlclByb2dyYW0ob3B0aW9ucyk7CiAKICAgICBpZiAoZmls
dGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4IDM4NzRkN2VlY2IwMWI1OTk4NTA5NWExMmIwYWEw
MGJiYjA0N2QzYzcuLjRjN2RkYWE2YjIzNGFmZDhhZGMwMGU5YTI1MmQ2YzAyYWNlMmUxMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmgKQEAgLTU3LDcgKzU3LDggQEAgcHVibGljOgogICAgICAgICBTaG91
bGRDb252ZXJ0VGV4dHVyZUJHUkFUb1JHQkEgPSAweDgwLAogICAgICAgICBTaG91bGRDb252ZXJ0
VGV4dHVyZUFSR0JUb1JHQkEgPSAweDEwMCwKICAgICAgICAgU2hvdWxkTm90QmxlbmQgPSAweDIw
MCwKLSAgICAgICAgU2hvdWxkVXNlRXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCA9IDB4NDAwCisgICAg
ICAgIFNob3VsZFVzZUV4dGVybmFsT0VTVGV4dHVyZVJlY3QgPSAweDQwMCwKKyAgICAgICAgU2hv
dWxkUHJlbXVsdGlwbHkgPSAweDgwMAogICAgIH07CiAKICAgICB0eXBlZGVmIGludCBGbGFnczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmluZGV4IGNmYjViOGIw
YmE0MTk2MGFiNjRjOGZhYzBkOTUyMmVhNDViYWMyMGEuLjI4Yjk2ODMwZDVmYzQzMDczNGFjNzE2
M2ZiZjliZTI4OWVhNDM5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmNwcApAQCAtMjY0LDYgKzI2NCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRl
bXBsYXRlQ29tbW9uID0KIAogICAgICAgICB2b2lkIGFwcGx5VGV4dHVyZVJHQihpbm91dCB2ZWM0
IGNvbG9yLCB2ZWMyIHRleENvb3JkKSB7IGNvbG9yID0gdV90ZXh0dXJlQ29sb3JTcGFjZU1hdHJp
eCAqIFNhbXBsZXJGdW5jdGlvbihzX3NhbXBsZXIsIHRleENvb3JkKTsgfQogCisgICAgICAgIHZv
aWQgYXBwbHlQcmVtdWx0aXBseShpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yID0gdmVjNChjb2xv
ci5yZ2IgKiBjb2xvci5hLCBjb2xvci5hKTsgfQorCiAgICAgICAgIHZlYzMgeXV2VG9SZ2IoZmxv
YXQgeSwgZmxvYXQgdSwgZmxvYXQgdikKICAgICAgICAgewogICAgICAgICAgICAgLy8geXV2IGlz
IGVpdGhlciBidDYwMSBvciBidDcwOSBzbyB0aGUgb2Zmc2V0IGlzIHRoZSBzYW1lCkBAIC00ODMs
NiArNDg1LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxhdGVDb21tb24gPQog
ICAgICAgICAgICAgdmVjMiB0ZXhDb29yZCA9IHRyYW5zZm9ybVRleENvb3JkKCk7CiAgICAgICAg
ICAgICBhcHBseU1hbnVhbFJlcGVhdElmTmVlZGVkKHRleENvb3JkKTsKICAgICAgICAgICAgIGFw
cGx5VGV4dHVyZVJHQklmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CisgICAgICAgICAgICBhcHBs
eVByZW11bHRpcGx5SWZOZWVkZWQoY29sb3IpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlWVVW
SWZOZWVkZWQoY29sb3IsIHRleENvb3JkKTsKICAgICAgICAgICAgIGFwcGx5VGV4dHVyZU5WMTJJ
Zk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlTlYyMUlm
TmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CkBAIC01MzcsNiArNTQwLDcgQEAgUmVmPFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRl
eHR1cmVNYXBwZXIKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoTWFudWFsUmVwZWF0KTsK
ICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoVGV4dHVyZUV4dGVybmFsT0VTKTsKICAgICBT
RVRfQVBQTElFUl9GUk9NX09QVElPTlMoUm91bmRlZFJlY3RDbGlwKTsKKyAgICBTRVRfQVBQTElF
Ul9GUk9NX09QVElPTlMoUHJlbXVsdGlwbHkpOwogCiAgICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhT
aGFkZXJCdWlsZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCmlu
ZGV4IGQ2YWM1MDE4MjE3MjY3N2Q2MDExMmEwMmU0ZjhkNzVjNTcwMGI1MTMuLjgyNmM1YjgxOGIx
NTAyZWVmNTZiN2M5YTZiOGUyZTVkZjMzZTM3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgICAgICBUZXh0
dXJlUGFja2VkWVVWID0gMUwgPDwgMjEsCiAgICAgICAgIFRleHR1cmVFeHRlcm5hbE9FUyA9IDFM
IDw8IDIyLAogICAgICAgICBSb3VuZGVkUmVjdENsaXAgID0gMUwgPDwgMjMsCisgICAgICAgIFBy
ZW11bHRpcGx5ICAgICAgPSAxTCA8PCAyNCwKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBWYXJp
YWJsZUlEIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBjMTZlZGRmNDRiNjgxNWM0YjA0YmZmZjgyMGExOTI0MmIzNTJmMTIy
Li45ZDc0ODM1YmZhNDlkYmQ0NjQxNTFiNzA1MzUxMTg2Yjk1ZTgzZmQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMjEtMDUtMjggIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1N0cmVhbWVyXSBJbmNvcnJlY3QgcmVuZGVyaW5nIG9mIFZQOSB3aXRoIHRy
YW5zcGFyZW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI1OTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgdGVzdCBmb3IgdGhlIHBsYXliYWNrIG9mIHRyYW5zcGFyZW50IHZpZGVvcy4gVGhp
cyBpcyBpbml0aWFsbHkgc2tpcHBlZCBiZWNhdXNlIGl0J3Mgbm90IHN1cHBvcnRlZAorICAgICAg
ICBvbiBBcHBsZSBwb3J0cyBhbmQgd29uJ3QgYmUgd29ya2luZyBvbiBHVEsgYW5kIFdQRSB1bnRp
bCBHU3RyZWFtZXIgaXMgYnVtcGVkIHRvIDEuMjAuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIG1lZGlhL2NvbnRlbnQvdmlkZW8td2l0aC1hbHBoYS53ZWJtOiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby13aXRoLWFscGhhLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRtbDogQWRkZWQuCisKIDIwMjEt
MDUtMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IE1vcmUgcmVhZGlseSBsYXlvdXQgd2hlbiBzY3JvbGwtc25hcCBwcm9wZXJ0aWVzIGNoYW5nZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZWUyZmMxZTEwNWRhNzQxZjYwM2ZjZWM1MzIyNmVhOGU4MGFi
M2ViNS4uMzc3NzJmYjc3YjYzNmZhYzdiMThlYjVlNzUyOTY3Y2FmZTY1MjRkNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xMDM0LDYgKzEwMzQsOSBAQCB3ZWJraXQub3JnL2IvMjAzMTQ2IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuIFsgU2tpcAog
IyBUZXN0cyBhIHNldHRpbmcgYmVoaW5kIHRoZSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkgZmxhZywg
d2hpY2ggaXMgV0syLW9ubHkKIG1lZGlhL3ZpZGVvLXN1cHBvcnRzLWZ1bGxzY3JlZW4uaHRtbCBb
IFNraXAgXQogCisjIFN1cHBvcnQgZm9yIFZQOSBlbmNvZGVkIHZpZGVvcyB3aXRoIHRyYW5zcGFy
ZW5jeSBpcyBvbmx5IGF2YWlsYWJsZSBvbiBwb3J0cyB0aGF0IHVzZSBHU3RyZWFtZXIuCittZWRp
YS92aWRlby13aXRoLWFscGhhLmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgdGVzdHMuCiAjLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9j
b250ZW50L3ZpZGVvLXdpdGgtYWxwaGEud2VibSBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRlbnQv
dmlkZW8td2l0aC1hbHBoYS53ZWJtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZjk0ZWJjMDVkNWZiMWZkMWFlOGFj
MTVmODNkMzdhZGM2NGU0N2IKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU0ODcKemNtY0pUVk1y
NUU5S2hlKkhnfTRVMT1iUndwKyoqRnJ6cCVJST9vTjlHIyNGcjIycFAxM0BabGE2OGZeWU99QTNm
CnohVmphQW9USVdEVnVkQnslWWh7S0RnMzQlMHRiQ2FEOGRSI3VuKm4yPWh9VEo1JmorOSp5Rzsr
X2tRbnh8TXduVAp6b0BGKXFrbmhKN3w1Tl5jISY/NDNXX1Z4Vj00SG48SzhSXyk1N1AkMD4hT2Z5
PCh9U2Fkdklnazc5Uzl2MlhkYFgKekpBQGRIQndQRU5ybn1fVWlZLTFVLWBtJTs7MVhnIXN4YUJp
N3ZsMHdVKyZTKk5lKmg7IXVealEjcD5tOzxybkB2CnpKWkpMYG9vVi1VUkdMYUZEb2V7KV9INERm
Wk40NGlDZERsYU1TcFJjKnF2SSZSUUtDWiQke0FIVX5BNmk3KUF4Tgp6V0IjNyZtLV9vIUYwfE9J
e0Zvfkk7MUFHX2IwfFNWdlN6Un1rMG45R2xybmQyeXR8ditJcFAkKEV7UWJxRVlZQikKenpOVyEh
WCozN2JHTn1ORVF5ZyZxODlmenlJNlhFalBzfU0jdGcxfHpuRE9jcmhzV0p9K35jbHROdDJkbiRs
VG1tCnotREdYM0h3UTtxX040TURGUmZ0N2gwdmp6KkZEMWRqfkdvNXVkY3s1RWEkO3pfNDZwKG8k
VyFVcUleUmdMaVk5Xwp6RUpDaWxgK0BRSSZBTWA3O2dfYHReK1pUaTx6dz12PE9gLUFKeUF6enJK
XyUpLWpkUzd4NXU8YiFXYjIhZSNHNHkKekx3MUJUTXVnZnZNYylrJWpjbnFUKUYxYGhnQigtXzhC
S1Ajc0pnMyZjMCNPQT8yMmVNcmd2OG5kJSt6aTIrX3UrCno1NHoqNVlnRkE7anVOPXpJJj5aPjFH
RlE+NW5gUns7cTkxNVVlIUg0azVuaFA8QV9XWTxxRkAwcXRnOCFqJnRDUwp6MnxAJmBOMUIwbHEq
KzEpVGkwfGV4VEJYNGNrISYxJkZ9QmVud3xvOFRtc01JMkRHRG01Jio5bU8pYT5pOCM8NGcKekZ1
MD5naCt5QG9TJVlAZT0wTjlCWVhXej9OUWh3anFjI05ZSTNwODUmbCY5c3c0KTlZQjNNMUBpb3FU
MmdhfiVkCno9ejc1JkNrUFImOSg1QTk8MnJPNkdZcnM8OEp0VzZUezlWLTtFcDVVZDdKfXhPYntZ
aUo/YUB+TT9ETGpNfH5AfQp6cW44bERfREI1YHhaeyNjMVlJLXc0UU5Oa05RaHdkJGtjKjZ4KE5+
Tm9NRlA/anZec34pZyFZOD9VPFBab3lTWlEKYWdyb0F4XktOfGo2LUlDRiRnZnR2YGwhV3F0b2FU
OVAoSCV8CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby13aXRoLWFscGhhLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby13aXRoLWFscGhhLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY0YTAzZmRmMTFlMmU0
MzRiYTg1NjJjYmNiNzUxZGRkNWFjMDQ1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXdpdGgtYWxwaGEtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT52aWRlby13aXRoLWFscGhh
PC90aXRsZT4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0
ZTsKKyAgICB9CisKKyAgICAjc3BhY2VyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICBsZWZ0OiAyMDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIHdpZHRoOiAy
MDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworICAgIH0KKyAgPC9zdHlsZT4KKyA8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0ic3Bh
Y2VyIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13aXRoLWFscGhhLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby13aXRoLWFscGhhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ2YzI1
MjQ1MDE3MmQ1MDE2ZjFkZDZkZmZiNjBmZTYyMTM2NWVlZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRtbApAQCAtMCwwICsxLDczIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT52aWRlby13aXRoLWFscGhh
PC90aXRsZT4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0
ZTsKKyAgICB9CisKKyAgICAjdmlkZW8geworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorICAgICNzcGFjZXIg
eworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDIwMHB4OworICAg
ICAgICB0b3A6IDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgIH0KKyAg
ICAjY2FudmFzIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiA0
MDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNy
Yz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICA8c2NyaXB0PgorICAgIC8vIFB1dCBhIHZpZGVv
IGVsZW1lbnQgdG8gdGhlIGxlZnQsIGEgc3BhY2VyIGluIHRoZSBtaWRkbGUgYW5kIGEgY2FudmFz
IHRvIHRoZSByaWdodC4gVGhlIHZpZGVvIGVsZW1lbnQgd2lsbAorICAgIC8vIHBsYXkgYSB0cmFu
c3BhcmVudCB2aWRlbywgYW5kIGEgdmlkZW8gZnJhbWUgd2lsbCBiZSBjb3BpZWQgaW50byB0aGUg
Y2FudmFzLgorICAgIC8vIEFzIHRoZSB2aWRlbyBhbmQgdGhlIGNhbnZhcyBhcmUgaW52aXNpYmxl
LCB0byB2aXN1YWxseSBjaGVjayB0aGF0IHRoZSB2aWRlbyBlbGVtZW50IGlzIHJlYWxseSBwbGF5
aW5nIHNvbWV0aGluZywKKyAgICAvLyBzZXQgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB0byB0aGUg
c2l6ZSBvZiB0aGUgdmlkZW8gZnJhbWVzICgyMDB4MjAwKS4KKworICAgIHZhciByZXF1aXJlUGl4
ZWxEdW1wID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHNlZWtlZCgpIHsKKyAgICAgICAgbGV0IGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAgICAgY29udGV4
dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICBjb250ZXh0LmRyYXdJbWFnZSh2
aWRlbywgMCwgMCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gYnVmZmVyZWQoKSB7CisgICAgICAgIHZpZGVvLndpZHRoID0gdmlkZW8udmlkZW9X
aWR0aDsKKyAgICAgICAgdmlkZW8uaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisKKyAgICAg
ICAgbGV0IHNwYWNlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFjZXIiKTsKKyAgICAg
ICAgc3BhY2VyLnN0eWxlLndpZHRoID0gdmlkZW8ud2lkdGggKyAicHgiOworICAgICAgICBzcGFj
ZXIuc3R5bGUuaGVpZ2h0ID0gdmlkZW8uaGVpZ2h0ICsgInB4IjsKKworICAgICAgICBjYW52YXMu
d2lkdGggPSB2aWRlby53aWR0aDsKKyAgICAgICAgY2FudmFzLmhlaWdodCA9IHZpZGVvLmhlaWdo
dDsKKworICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IC41OworICAgIH0KKworICAgIGZ1bmN0
aW9uIHN0YXJ0KCkgeworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgIHZpZGVv
LnNyYyA9ICJjb250ZW50L3ZpZGVvLXdpdGgtYWxwaGEud2VibSI7CisgICAgICAgIHZpZGVvLmFk
ZEV2ZW50TGlzdGVuZXIoInNlZWtlZCIsIHNlZWtlZCk7CisgICAgICAgIHZpZGVvLmFkZEV2ZW50
TGlzdGVuZXIoImNhbnBsYXl0aHJvdWdoIiwgYnVmZmVyZWQsIGZhbHNlKTsKKyAgICB9CisgIDwv
c2NyaXB0PgorICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICA8dmlkZW8gaWQ9InZpZGVvIj48L3ZpZGVvPgor
ICA8ZGl2IGlkPSJzcGFjZXIiPjwvZGl2PgorICA8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFz
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430189</attachid>
            <date>2021-05-31 02:41:59 -0700</date>
            <delta_ts>2021-05-31 06:33:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225961-20210531114157.patch</filename>
            <type>text/plain</type>
            <size>28340</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE0YzBiNzA2YjU3ZjIw
M2NkY2QzZTMyYjU4ZjE2ZDQ0YjNhZTM3Ni4uYjljZGNmYzRjZDE5MzZiYTc3MTkyYmU4MDFlMTg5
NmZiMmFjZTg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA1LTI4ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gSW5j
b3JyZWN0IHJlbmRlcmluZyBvZiBWUDkgd2l0aCB0cmFuc3BhcmVuY3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcmVuZGVyaW5nIG9mIHZp
ZGVvcyB3aXRoIHRyYW5zcGFyZW5jeS4gVGhpcyBpcyBkb25lIGJvdGggQUMgYW5kIG5vbiBBQyBt
b2RlcyBhbmQKKyAgICAgICAgd2l0aCBhbmQgd2l0aG91dCBHU1RSRUFNRVJfR0wgZW5hYmxlZC4K
KworICAgICAgICBPbiBBQyBtb2RlIGFuZCB1c2luZyBHU1RSRUFNRVJfR0wsIGEgbmV3IG9wdGlv
biBpcyBhZGRlZCB0byBUZXh0dXJlTWFwcGVyR0wgYW5kIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtCisgICAgICAgIHRvIHN1cHBvcnQgcHJlbXVsdGlwbHlpbmcgdGhlIGNvbXBvbmVudHMgb2Yg
YSBwaXhlbC4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0
IGFscGhhLAorICAgICAgICBhbmQgd2UgbmVlZCBpdCBwcmVtdWx0aXBsaWVkIGluIG9yZGVyIHRv
IHBlcmZvcm0gdGhlIGNvcnJlY3QgYmxlbmRpbmcgYmxlbmRpbmcgb2YgdGhlIHZpZGVvIGZyYW1l
cy4gVGhlbiB3ZQorICAgICAgICB1c2UgdGhhdCBuZXcgb3B0aW9uIHRvIHJlbmRlciB2aWRlbyBm
cmFtZXMuIFRoaXMgbmV3IG9wdGlvbiBpcyBhbHNvIHVzZWQgd2hlbiBjb3B5aW5nIHRoZSB2aWRl
byBmcmFtZSBpbnRvCisgICAgICAgIGFuIGV4dGVybmFsIHRleHR1cmUgaWYgcHJlbXVsdGlwbHlB
bHBoYSBpcyByZXF1ZXN0ZWQuCisKKyAgICAgICAgT24gbm9uIEFDIG1vZGUsIG9yIHdoZW4gR1N0
cmVhbWVyLWdsIGlzIGRpc2FibGVkLCBhZGQgc3VwcG9ydCB0byBJbWFnZUdTdHJlYW1lckNhaXJv
IHRvIHByZW11bHRpcGx5IHRoZSBhbHBoYQorICAgICAgICBvZiB0aGUgdmlkZW8gZnJhbWUgYmVm
b3JlIGNyZWF0aW5nIHRoZSBjYWlybyBzdXJmYWNlIHRvIHBhaW50LCBhbmQgcGFzcyB0aGUgYXBw
cm9wcmlhdGUgY29tcG9zaXRlIG9wZXJhdG9yIHdoZW4KKyAgICAgICAgZHJhd2luZyB3aXRoIGFs
cGhhLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRlcjo6R3N0VmlkZW9G
cmFtZUhvbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VHU3RyZWFtZXI6Oklt
YWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6IHVwZGF0ZSB0aGUg
Y2FwcyBvZiB0aGUgY29udmVyc2lvbiB0byBtYWtlIHRoZW0gbWF0Y2ggdGhlIGZvcm1hdAorICAg
ICAgICBleHBlY3RlZCBieSBjYWlybywgc28gd2UgY2FuIGF2b2lkIGEgY29tcG9uZW50IHN3YXAu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvcHlWaWRl
b1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
VGV4dHVyZUNvcGllckdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMS0wNS0yOCAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSByZWFkaWx5
IGxheW91dCB3aGVuIHNjcm9sbC1zbmFwIHByb3BlcnRpZXMgY2hhbmdlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUhvbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUhvbGRlci5jcHAKaW5kZXggZWVmMTI3NGJlZGYyY2ExMGE4
NDM1NTQ2YWEyNjEyMmE4Y2RiNWRiNC4uODEwZTZiODQyZDRiZWMxMTM5NjhhZjIyMWI3Yjc5NGEz
Y2NjMWJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVIb2xkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lSG9sZGVyLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBHc3RWaWRlb0ZyYW1lSG9sZGVyOjpHc3RWaWRlb0ZyYW1lSG9s
ZGVyKEdzdFNhbXBsZSogc2FtcGxlLCBPcHRpb25hbDxHc3RWaWRlb0RlYwogICAgICAgICByZXR1
cm47CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQotICAgIG1fZmxhZ3MgPSBmbGFncyB8IChtX2hh
c0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKKyAgICBt
X2ZsYWdzID0gZmxhZ3MgfCAobV9oYXNBbHBoYUNoYW5uZWwgPyBUZXh0dXJlTWFwcGVyR0w6OlNo
b3VsZEJsZW5kIHwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRQcmVtdWx0aXBseSA6IDApOwogCiAg
ICAgR3N0TWVtb3J5KiBtZW1vcnkgPSBnc3RfYnVmZmVyX3BlZWtfbWVtb3J5KG1fYnVmZmVyLmdl
dCgpLCAwKTsKICAgICBpZiAoZ3N0X2lzX2dsX21lbW9yeShtZW1vcnkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IGJjODA2NjQ0OTZmMzk5ZTk2ZWNiNmRhM2MwMGQz
MjliM2U0YTNhNzkuLmViYjkwOTAyZDY2ODQyZTJmNWMwNDVmY2FmZTU4MTQ0MzA3YzEyOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTM5LDEwICszOSw4IEBAIElt
YWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKICAgICBpZiAo
IWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmdmlkZW9JbmZvLCBjYXBzKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gUmlnaHQgbm93IHRoZSBUZXh0dXJlTWFwcGVyIG9ubHkgc3VwcG9ydHMg
Y2hyb21hcyB3aXRoIG9uZSBwbGFuZQotICAgIEFTU0VSVChHU1RfVklERU9fSU5GT19OX1BMQU5F
UygmdmlkZW9JbmZvKSA9PSAxKTsKLQotICAgIG1faGFzQWxwaGEgPSBHU1RfVklERU9fSU5GT19I
QVNfQUxQSEEoJnZpZGVvSW5mbyk7CisgICAgLy8gVGhlIGZyYW1lIGhhcyB0byBSR0Igc28gd2Ug
Y2FuIHBhaW50IGl0LgorICAgIEFTU0VSVChHU1RfVklERU9fSU5GT19JU19SR0IoJnZpZGVvSW5m
bykpOwogCiAgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2Ft
cGxlKTsKICAgICBpZiAoVU5MSUtFTFkoIUdTVF9JU19CVUZGRVIoYnVmZmVyKSkpCkBAIC01Miw1
MCArNTAsMTA5IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1lcihHc3RTYW1wbGUqIHNh
bXBsZSkKICAgICBpZiAoIW1fZnJhbWVNYXBwZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8v
IFRoZSB2aWRlbyBidWZmZXIgbWF5IGhhdmUgdGhlc2UgZm9ybWF0cyBpbiB0aGVzZSBjYXNlczoK
KyAgICAvLyB7IEJHUngsIEJHUkEgfTogb24gbGl0dGxlIGVuZGlhbjoKKyAgICAvLyAgIC0gV2hl
biBHU3RyZWFtZXItZ2wgaXMgZGlzYWJsZWQgKGJlaW5nIEFDIGVuYWJsZWQgb3Igbm90KSBhcyBW
aWRlb1NpbmtHU3RyZWFtZXIgaXMgdXNlZC4KKyAgICAvLyAgIC0gV2hlbiBHU3RyZWFtZXItZ2wg
aXMgZW5hYmxlZCwgYnV0IHRoZSBjYXBzIHVzZWQgaW4gdGhlIHNpbmsgYXJlIG5vdCBSR0IgYW5k
IGl0J3MgY29udmVydGVkIGJ5IHRoZSBwbGF5ZXIgdG8gcGFpbnQgaXQuCisgICAgLy8geyB4UkdC
LCBBUkdCIH06IG9uIGJpZyBlbmRpYW46CisgICAgLy8gICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlz
IGRpc2FibGVkIChiZWluZyBBQyBlbmFibGVkIG9yIG5vdCkgYXMgVmlkZW9TaW5rR1N0cmVhbWVy
IGlzIHVzZWQuCisgICAgLy8gICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlzIGVuYWJsZWQsIGJ1dCB0
aGUgY2FwcyB1c2VkIGluIHRoZSBzaW5rIGFyZSBub3QgUkdCIGFuZCBpdCdzIGNvbnZlcnRlZCBi
eSB0aGUgcGxheWVyIHRvIHBhaW50IGl0LgorICAgIC8vIHsgUkdCeCwgUkdCQSB9CisgICAgLy8g
ICAtIFdoZW4gR1N0cmVhbWVyLWdsIGlzIGVuYWJsZWQgYW5kIHRoZSBjYXBzIHVzZWQgaW4gdGhl
IHNpbmsgYXJlIFJHQngvUkdCQS4KKyAgICAvLworICAgIC8vIEludGVybmFsbHkgY2Fpcm8gdXNl
cyBCR1JBIGZvciBDQUlST19GT1JNQVRfQVJHQjMyIG9uIGxpdHRsZSBlbmRpYW4gYW5kIEFSR0Ig
b24gYmlnIGVuZGlhbiwgc28gYm90aCB7IEJHUngsIEJHUkEgfQorICAgIC8vIGFuZCB7IHhSR0Is
IEFSR0IgfSBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5IHRvIGNhaXJvLiBCdXQgZm9yIHsgUkdCeCwg
UkdCQSB9IHdlIG5lZWQgdG8gc3dhcCB0aGUgUiBhbmQgQiBjb21wb25lbnRzLgorICAgIC8vIEFs
c28sIEdTdHJlYW1lciB1c2VzIHN0cmFpZ2h0IGFscGhhIHdoaWxlIGNhaXJvIHJlcXVpcmVzIGl0
IHRvIGJlIHByZW11bHRpcGxpZWQsIHNvIGlmIHRoZSBmb3JtYXQgaGFzIGFscGhhCisgICAgLy8g
d2UgbmVlZCB0byBwcmVtdWx0aXBseSB0aGUgY29sb3IgY29tcG9uZW50cy4gU28gaW4gdGhlc2Ug
Y2FzZXMgd2UgbmVlZCB0byBjcmVhdGUgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBvcmlnaW5hbAor
ICAgIC8vIGJ1ZmZlci4KKyAgICBtX2hhc0FscGhhID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhB
KCZ2aWRlb0luZm8pOworICAgIGJvb2wgY29tcG9uZW50U3dhcFJlcXVpcmVkID0gR1NUX1ZJREVP
X0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFUX1JHQkEgfHwg
R1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFU
X1JHQng7CiAgICAgdW5zaWduZWQgY2hhciogYnVmZmVyRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dW5zaWduZWQgY2hhcio+KEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZtX3ZpZGVvRnJhbWUs
IDApKTsKICAgICBpbnQgc3RyaWRlID0gR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmbV92
aWRlb0ZyYW1lLCAwKTsKICAgICBpbnQgd2lkdGggPSBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1f
dmlkZW9GcmFtZSk7CiAgICAgaW50IGhlaWdodCA9IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1f
dmlkZW9GcmFtZSk7Ci0KICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlOwotICAg
IGNhaXJvX2Zvcm1hdF90IGNhaXJvRm9ybWF0OwotICAgIGNhaXJvRm9ybWF0ID0gKEdTVF9WSURF
T19GUkFNRV9GT1JNQVQoJm1fdmlkZW9GcmFtZSkgPT0gR1NUX1ZJREVPX0ZPUk1BVF9SR0JBKSA/
IENBSVJPX0ZPUk1BVF9BUkdCMzIgOiBDQUlST19GT1JNQVRfUkdCMjQ7CiAKLSAgICAvLyBHU3Ry
ZWFtZXIgZG9lc24ndCB1c2UgcHJlbXVsdGlwbGllZCBhbHBoYSwgYnV0IGNhaXJvIGRvZXMuIFNv
IGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGFuIGFscGhhIGNvbXBvbmVudAotICAgIC8vIHdlIG5l
ZWQgdG8gcHJlbXVsdGlwbHkgaXQgYmVmb3JlIHBhc3NpbmcgdGhlIGRhdGEgdG8gY2Fpcm8uIFRo
aXMgbmVlZHMgdG8gYmUgYm90aCB1c2luZyBnc3RyZWFtZXItZ2wgYW5kIG5vdAotICAgIC8vIHVz
aW5nIGl0LgotICAgIC8vCi0gICAgLy8gVGhpcyBtZXRob2QgY291bGQgYmUgY2FsbGVkIHNldmVy
YWwgdGltZXMgZm9yIHRoZSBzYW1lIGJ1ZmZlciwgZm9yIGV4YW1wbGUgaWYgd2UgYXJlIHJlbmRl
cmluZyB0aGUgdmlkZW8gZnJhbWVzCi0gICAgLy8gaW4gc2V2ZXJhbCBub24gYWNjZWxlcmF0ZWQg
Y2FudmFzZXMuIER1ZSB0byB0aGlzLCB3ZSBjYW5ub3QgbW9kaWZ5IHRoZSBidWZmZXIsIHNvIHdl
IG5lZWQgdG8gY3JlYXRlIGEgY29weS4KLSAgICBpZiAoY2Fpcm9Gb3JtYXQgPT0gQ0FJUk9fRk9S
TUFUX0FSR0IzMikgewotICAgICAgICB1bnNpZ25lZCBjaGFyKiBzdXJmYWNlRGF0YSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGNoYXIqPihmYXN0TWFsbG9jKGhlaWdodCAqIHN0cmlkZSkpOwotICAg
ICAgICB1bnNpZ25lZCBjaGFyKiBzdXJmYWNlUGl4ZWwgPSBzdXJmYWNlRGF0YTsKKyAgICBpZiAo
bV9oYXNBbHBoYSB8fCBjb21wb25lbnRTd2FwUmVxdWlyZWQpIHsKKyAgICAgICAgdWludDhfdCog
c3VyZmFjZURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhoZWlnaHQgKiBz
dHJpZGUpKTsKKyAgICAgICAgdWludDhfdCogc3VyZmFjZVBpeGVsID0gc3VyZmFjZURhdGE7CiAK
ICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7CiAgICAgICAgICAgICBm
b3IgKGludCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWdu
ZWQgc2hvcnQgYWxwaGEgPSBidWZmZXJEYXRhWzNdOworICAgICAgICAgICAgICAgIC8vIFRoZXNl
IHN0b3JlIHRoZSBzb3VyY2UgcGl4ZWwgY29tcG9uZW50cy4KKyAgICAgICAgICAgICAgICB1aW50
MTZfdCByZWQ7CisgICAgICAgICAgICAgICAgdWludDE2X3QgZ3JlZW47CisgICAgICAgICAgICAg
ICAgdWludDE2X3QgYmx1ZTsKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBhbHBoYTsKKyAgICAg
ICAgICAgICAgICAvLyBUaGVzZSBzdG9yZSB0aGUgY29tcG9uZW50IG9mZnNldCBpbnNpZGUgdGhl
IHBpeGVsIGZvciB0aGUgZGVzdGluYXRpb24gc3VyZmFjZS4KKyAgICAgICAgICAgICAgICB1aW50
OF90IHJlZEluZGV4OworICAgICAgICAgICAgICAgIHVpbnQ4X3QgZ3JlZW5JbmRleDsKKyAgICAg
ICAgICAgICAgICB1aW50OF90IGJsdWVJbmRleDsKKyAgICAgICAgICAgICAgICB1aW50OF90IGFs
cGhhSW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudFN3YXBSZXF1aXJlZCkgewor
ICAgICAgICAgICAgICAgICAgICAvLyBTb3VyY2UgaXMgUkdCQSBvciBSR0J4LgorICAgICAgICAg
ICAgICAgICAgICByZWQgPSBidWZmZXJEYXRhWzBdOworICAgICAgICAgICAgICAgICAgICBncmVl
biA9IGJ1ZmZlckRhdGFbMV07CisgICAgICAgICAgICAgICAgICAgIGJsdWUgPSBidWZmZXJEYXRh
WzJdOworICAgICAgICAgICAgICAgICAgICBhbHBoYSA9IGJ1ZmZlckRhdGFbM107CiAjaWYgR19C
WVRFX09SREVSID09IEdfTElUVExFX0VORElBTgotICAgICAgICAgICAgICAgIC8vIFZpZGVvIGZy
YW1lcyB1c2UgUkdCQSBpbiBsaXR0bGUgZW5kaWFuLgotICAgICAgICAgICAgICAgIHN1cmZhY2VQ
aXhlbFswXSA9IChidWZmZXJEYXRhWzJdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAg
ICAgICAgIHN1cmZhY2VQaXhlbFsxXSA9IChidWZmZXJEYXRhWzFdICogYWxwaGEgKyAxMjgpIC8g
MjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFsyXSA9IChidWZmZXJEYXRhWzBdICog
YWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFszXSA9IGFs
cGhhOworICAgICAgICAgICAgICAgICAgICAvLyBEZXN0aW5hdGlvbiBpcyBCR1JBLgorICAgICAg
ICAgICAgICAgICAgICByZWRJbmRleCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGdyZWVuSW5k
ZXggPSAxOworICAgICAgICAgICAgICAgICAgICBibHVlSW5kZXggPSAwOworICAgICAgICAgICAg
ICAgICAgICBhbHBoYUluZGV4ID0gMzsKICNlbHNlCi0gICAgICAgICAgICAgICAgLy8gVmlkZW8g
ZnJhbWVzIHVzZSBSR0JBIGluIGJpZyBlbmRpYW4uCi0gICAgICAgICAgICAgICAgc3VyZmFjZVBp
eGVsWzBdID0gYWxwaGE7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsWzFdID0gKGJ1ZmZl
ckRhdGFbMF0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgc3VyZmFjZVBp
eGVsWzJdID0gKGJ1ZmZlckRhdGFbMV0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAg
ICAgICAgc3VyZmFjZVBpeGVsWzNdID0gKGJ1ZmZlckRhdGFbMl0gKiBhbHBoYSArIDEyOCkgLyAy
NTU7CisgICAgICAgICAgICAgICAgICAgIC8vIERlc3RpbmF0aW9uIGlzIEFSR0IuCisgICAgICAg
ICAgICAgICAgICAgIHJlZEluZGV4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW5JbmRl
eCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJsdWVJbmRleCA9IDM7CisgICAgICAgICAgICAg
ICAgICAgIGFscGhhSW5kZXggPSAwOwogI2VuZGlmCisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCisgICAgICAgICAgICAgICAgICAg
IC8vIEJHUkEgb3IgQkdSeCBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24uCisgICAgICAgICAg
ICAgICAgICAgIHJlZCA9IGJ1ZmZlckRhdGFbMl07CisgICAgICAgICAgICAgICAgICAgIGdyZWVu
ID0gYnVmZmVyRGF0YVsxXTsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZSA9IGJ1ZmZlckRhdGFb
MF07CisgICAgICAgICAgICAgICAgICAgIGFscGhhID0gYnVmZmVyRGF0YVszXTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVkSW5kZXggPSAyOworICAgICAgICAgICAgICAgICAgICBncmVlbkluZGV4
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgYmx1ZUluZGV4ID0gMDsKKyAgICAgICAgICAgICAg
ICAgICAgYWxwaGFJbmRleCA9IDM7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICAvLyBBUkdC
IG90IHhSR0IgYm90aCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uLgorICAgICAgICAgICAgICAgICAg
ICByZWQgPSBidWZmZXJEYXRhWzFdOworICAgICAgICAgICAgICAgICAgICBncmVlbiA9IGJ1ZmZl
ckRhdGFbMl07CisgICAgICAgICAgICAgICAgICAgIGJsdWUgPSBidWZmZXJEYXRhWzNdOworICAg
ICAgICAgICAgICAgICAgICBhbHBoYSA9IGJ1ZmZlckRhdGFbMF07CisgICAgICAgICAgICAgICAg
ICAgIHJlZEluZGV4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW5JbmRleCA9IDI7Cisg
ICAgICAgICAgICAgICAgICAgIGJsdWVJbmRleCA9IDM7CisgICAgICAgICAgICAgICAgICAgIGFs
cGhhSW5kZXggPSAwOworI2VuZGlmCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgaWYgKG1faGFzQWxwaGEpIHsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW3Jl
ZEluZGV4XSA9IHJlZCAqIGFscGhhIC8gMjU1OworICAgICAgICAgICAgICAgICAgICBzdXJmYWNl
UGl4ZWxbZ3JlZW5JbmRleF0gPSBncmVlbiAqIGFscGhhIC8gMjU1OworICAgICAgICAgICAgICAg
ICAgICBzdXJmYWNlUGl4ZWxbYmx1ZUluZGV4XSA9IGJsdWUgKiBhbHBoYSAvIDI1NTsKKyAgICAg
ICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2FscGhhSW5kZXhdID0gYWxwaGE7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW3JlZElu
ZGV4XSA9IHJlZDsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2dyZWVuSW5kZXhd
ID0gZ3JlZW47CisgICAgICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFtibHVlSW5kZXhdID0g
Ymx1ZTsKKyAgICAgICAgICAgICAgICAgICAgc3VyZmFjZVBpeGVsW2FscGhhSW5kZXhdID0gYWxw
aGE7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgYnVmZmVyRGF0YSArPSA0
OwogICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbCArPSA0OwogICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0gICAgICAgIHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2Ny
ZWF0ZV9mb3JfZGF0YShzdXJmYWNlRGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHN0
cmlkZSkpOworICAgICAgICBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9j
cmVhdGVfZm9yX2RhdGEoc3VyZmFjZURhdGEsIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdpZHRoLCBo
ZWlnaHQsIHN0cmlkZSkpOwogICAgICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNf
c3VyZmFjZURhdGFLZXk7CiAgICAgICAgIGNhaXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShzdXJm
YWNlLmdldCgpLCAmc19zdXJmYWNlRGF0YUtleSwgc3VyZmFjZURhdGEsIFtdKHZvaWQqIGRhdGEp
IHsgZmFzdEZyZWUoZGF0YSk7IH0pOwogICAgIH0gZWxzZQotICAgICAgICBzdXJmYWNlID0gYWRv
cHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyRGF0YSwgY2Fp
cm9Gb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkpOworICAgICAgICBzdXJmYWNlID0gYWRv
cHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyRGF0YSwgQ0FJ
Uk9fRk9STUFUX0FSR0IzMiwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSk7CiAKICAgICBBU1NFUlQo
Y2Fpcm9fc3VyZmFjZV9zdGF0dXMoc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NF
U1MpOwogICAgIG1faW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoc3VyZmFjZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCAyYmFlZjJhNGVkMjQ5MTc0Mzg2MzgyODJlMTdmYzJkOGEyOWJhMTk3Li5iNDhjNjYyN2YyYTM5
MWJkYjIyN2IyODZlYmI5Y2FlZTQ2ZWU5MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk0Niw3ICsyOTQ2LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkKICAgICAg
ICAgICAgICAgICBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSkpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZnJhbWVIb2xkZXItPnVwZGF0ZVRleHR1cmUobGF5ZXJCdWZmZXItPnRleHR1cmVHTCgpKTsK
LSAgICAgICAgICAgIGxheWVyQnVmZmVyLT5zZXRFeHRyYUZsYWdzKG1fdGV4dHVyZU1hcHBlckZs
YWdzIHwgKGZyYW1lSG9sZGVyLT5oYXNBbHBoYUNoYW5uZWwoKSA/IFRleHR1cmVNYXBwZXJHTDo6
U2hvdWxkQmxlbmQgOiAwKSk7CisgICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0RXh0cmFGbGFn
cyhtX3RleHR1cmVNYXBwZXJGbGFncyB8IChmcmFtZUhvbGRlci0+aGFzQWxwaGFDaGFubmVsKCkg
PyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIHwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRQ
cmVtdWx0aXBseSA6IDApKTsKICAgICAgICAgfQogICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZl
cihXVEZNb3ZlKGxheWVyQnVmZmVyKSk7CiAgICAgfTsKQEAgLTMyOTgsMTAgKzMyOTgsMTMgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWMKICAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydElucHV0
Q2FwcyB8fCAhZ3N0X2NhcHNfaXNfZXF1YWwobV9jb2xvckNvbnZlcnRJbnB1dENhcHMuZ2V0KCks
IGNhcHMpKSB7CiAgICAgICAgICAgICBtX2NvbG9yQ29udmVydElucHV0Q2FwcyA9IGNhcHM7CiAg
ICAgICAgICAgICBtX2NvbG9yQ29udmVydE91dHB1dENhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNf
Y29weShjYXBzKSk7CisKKyAgICAgICAgICAgIC8vIFRoZXNlIGNhcHMgbXVzdCBtYXRjaCB0aGUg
aW50ZXJuYWwgZm9ybWF0IG9mIGEgY2Fpcm8gc3VyZmFjZSB3aXRoIENBSVJPX0ZPUk1BVF9BUkdC
MzIsCisgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gY29sb3IgY29u
dmVyc2lvbnMgd2hlbiBwYWludGluZyB0aGUgdmlkZW8gZnJhbWUuCiAjaWYgR19CWVRFX09SREVS
ID09IEdfTElUVExFX0VORElBTgotICAgICAgICAgICAgY29uc3QgY2hhciogZm9ybWF0U3RyaW5n
ID0gR1NUX1ZJREVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8pID8gIlJHQkEiIDogIkJHUngi
OworICAgICAgICAgICAgY29uc3QgY2hhciogZm9ybWF0U3RyaW5nID0gR1NUX1ZJREVPX0lORk9f
SEFTX0FMUEhBKCZ2aWRlb0luZm8pID8gIkJHUkEiIDogIkJHUngiOwogI2Vsc2UKLSAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgm
dmlkZW9JbmZvKSA/ICJSR0JBIiA6ICJSR0J4IjsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZv
cm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/ICJBUkdC
IiA6ICJ4UkdCIjsKICNlbmRpZgogICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBsZShtX2Nv
bG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBmb3Jt
YXRTdHJpbmcsCiAgICAgICAgICAgICAgICAgInRleHR1cmUtdGFyZ2V0IiwgR19UWVBFX1NUUklO
RywgR1NUX0dMX1RFWFRVUkVfVEFSR0VUXzJEX1NUUiwgbnVsbHB0cik7CkBAIC0zMzIzLDcgKzMz
MjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlYwogICAgIGlmICghZ3N0SW1hZ2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGNvbnRleHQuZHJhd0ltYWdlKGdzdEltYWdlLT5pbWFnZSgpLCBy
ZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5LCBtX3Nob3Vs
ZEhhbmRsZU9yaWVudGF0aW9uVGFncyA/IG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiA6IEltYWdl
T3JpZW50YXRpb24oKSB9KTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShnc3RJbWFnZS0+aW1hZ2Uo
KSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgeyBnc3RJbWFnZS0+aGFzQWxwaGEoKSA/IENvbXBv
c2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIDogQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHksIG1fc2hv
dWxkSGFuZGxlT3JpZW50YXRpb25UYWdzID8gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uIDogSW1h
Z2VPcmllbnRhdGlvbigpIH0pOwogfQogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKQEAgLTMzMzQs
OSArMzMzNyw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250CiAgICAgaWYgKG1faXNVc2luZ0Zh
bGxiYWNrVmlkZW9TaW5rKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocHJlbXVs
dGlwbHlBbHBoYSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgTG9ja2VyIHNhbXBsZUxv
Y2tlciB7IG1fc2FtcGxlTXV0ZXggfTsKIAogICAgIGlmICghR1NUX0lTX1NBTVBMRShtX3NhbXBs
ZS5nZXQoKSkpCkBAIC0zMzU3LDcgKzMzNTcsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udAog
CiAgICAgZnJhbWVIb2xkZXItPndhaXRGb3JDUFVTeW5jKCk7CiAKLSAgICByZXR1cm4gbV92aWRl
b1RleHR1cmVDb3BpZXItPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgqbGF5ZXJC
dWZmZXIuZ2V0KCksIHNpemUsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIGZsaXBZLCBtX3ZpZGVvU291cmNlT3JpZW50YXRp
b24pOworICAgIHJldHVybiBtX3ZpZGVvVGV4dHVyZUNvcGllci0+Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKCpsYXllckJ1ZmZlci5nZXQoKSwgc2l6ZSwgb3V0cHV0VGV4dHVyZSwg
b3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgZmxpcFks
IG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiwgcHJlbXVsdGlwbHlBbHBoYSk7CiB9CiAKIFJlZlB0
cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXRpdmVJbWFnZUZv
ckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJl
YW1lci5jcHAKaW5kZXggYjg4YzgwMjgxZWZiMTllNThjY2VlMWNhOTFiOTc4Yjk3ZGU5OGNmMC4u
OTA1OGYwODE0ODY5ZmRmZWMyOTM2NzlkY2Q1MTkzZDhjZTA0OWU5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGll
ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBA
QCB2b2lkIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6dXBkYXRlVHJhbnNmb3JtYXRpb25N
YXRyaXgoKQogICAgICAgICAtMSwgMSwgLShmYXJWYWx1ZSArIG5lYXJWYWx1ZSkgLyAoZmFyVmFs
dWUgLSBuZWFyVmFsdWUpLCAxKTsKIH0KIAotYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlciYgaW5wdXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUsIEdMdWludCBv
dXRwdXRUZXh0dXJlLCBHTGVudW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGlu
dGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBmbGlwWSwgSW1h
Z2VPcmllbnRhdGlvbiBzb3VyY2VPcmllbnRhdGlvbikKK2Jvb2wgVmlkZW9UZXh0dXJlQ29waWVy
R1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXImIGlucHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBH
THVpbnQgb3V0cHV0VGV4dHVyZSwgR0xlbnVtIG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdM
ZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxp
cFksIEltYWdlT3JpZW50YXRpb24gc291cmNlT3JpZW50YXRpb24sIGJvb2wgcHJlbXVsdGlwbHlB
bHBoYSkKIHsKICAgICBpZiAoIW1fZnJhbWVidWZmZXIgfHwgIW1fdmJvIHx8IGZyYW1lU2l6ZS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2MSw3ICsxNjEsNyBAQCBib29s
IFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1U
ZXh0dXJlKFRleHR1cmVNYXBwZQogICAgIHVzaW5nIEJ1ZmZlciA9IFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyQnVmZmVyOwogICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25z
IG9wdGlvbnM7CiAgICAgV1RGOjpzd2l0Y2hPbihpbnB1dFRleHR1cmUudGV4dHVyZVZhcmlhbnQo
KSwKLSAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6UkdCVGV4dHVyZSYpIHsgb3B0aW9ucyA9IFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCOyB9LAorICAgICAgICBbJl0oY29u
c3QgQnVmZmVyOjpSR0JUZXh0dXJlJikgeyBvcHRpb25zID0gVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OlRleHR1cmVSR0IgfCAocHJlbXVsdGlwbHlBbHBoYSA/IFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpQcmVtdWx0aXBseSA6IDApOyB9LAogICAgICAgICBbJl0oY29uc3QgQnVmZmVy
OjpZVVZUZXh0dXJlJiB0ZXh0dXJlKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUubnVt
YmVyT2ZQbGFuZXMpIHsKICAgICAgICAgICAgIGNhc2UgMToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3Ry
ZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaAppbmRleCA1NzliODdlMzNiNjA0Yzk2NWI3ZTY1MmM5
OTcxYjY0MDBmMWZiMGQ0Li5lYWJhOTViMjYxZjcwYWRlNjdkNjliNWE2NTU2NDNiMDVkMzFiN2E2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5oCkBAIC00
NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIoQ29s
b3JDb252ZXJzaW9uKTsKICAgICB+VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyKCk7CiAKLSAg
ICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllckJ1ZmZlciYgaW5wdXRUZXh0dXJlLCBJbnRTaXplJiBmcmFtZVNpemUsIEdMdWlu
dCBvdXRwdXRUZXh0dXJlLCBHTGVudW0gb3V0cHV0VGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVt
IGludGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgYm9vbCBmbGlwWSwg
SW1hZ2VPcmllbnRhdGlvbiBzb3VyY2VPcmllbnRhdGlvbik7CisgICAgYm9vbCBjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIm
IGlucHV0VGV4dHVyZSwgSW50U2l6ZSYgZnJhbWVTaXplLCBHTHVpbnQgb3V0cHV0VGV4dHVyZSwg
R0xlbnVtIG91dHB1dFRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIGJvb2wgZmxpcFksIEltYWdlT3JpZW50YXRpb24g
c291cmNlT3JpZW50YXRpb24sIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgdm9pZCB1cGRh
dGVDb2xvckNvbnZlcnNpb25NYXRyaXgoQ29sb3JDb252ZXJzaW9uKTsKICAgICB2b2lkIHVwZGF0
ZVRleHR1cmVTcGFjZU1hdHJpeCgpOwogICAgIHZvaWQgdXBkYXRlVHJhbnNmb3JtYXRpb25NYXRy
aXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMTg4OTllNTk4Zjc2Y2YyY2MxMDkyOGRl
YzVmYWY1ZTdlZmM3ODhmYy4uMDBjOGU4N2U5MTU2OWE1NjVmNWRhZmExNTVjNmNmMTYxNmZkYzZk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTUwNCw2ICs1MDQsOSBAQCB2b2lkIFRleHR1
cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoR0x1aW50IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25z
dCBJbnRTaXplJiB0ZQogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CiAKKyAg
ICBpZiAoZmxhZ3MgJiBTaG91bGRQcmVtdWx0aXBseSkKKyAgICAgICAgb3B0aW9ucyB8PSBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlwbHk7CisKICAgICBSZWY8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+IHByb2dyYW0gPSBkYXRhKCkuZ2V0U2hhZGVyUHJvZ3JhbShvcHRp
b25zKTsKIAogICAgIGlmIChmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXggMzg3NGQ3ZWVj
YjAxYjU5OTg1MDk1YTEyYjBhYTAwYmJiMDQ3ZDNjNy4uNGM3ZGRhYTZiMjM0YWZkOGFkYzAwZTlh
MjUyZDZjMDJhY2UyZTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNTcsNyArNTcsOCBAQCBw
dWJsaWM6CiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQkdSQVRvUkdCQSA9IDB4ODAsCiAg
ICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQVJHQlRvUkdCQSA9IDB4MTAwLAogICAgICAgICBT
aG91bGROb3RCbGVuZCA9IDB4MjAwLAotICAgICAgICBTaG91bGRVc2VFeHRlcm5hbE9FU1RleHR1
cmVSZWN0ID0gMHg0MDAKKyAgICAgICAgU2hvdWxkVXNlRXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCA9
IDB4NDAwLAorICAgICAgICBTaG91bGRQcmVtdWx0aXBseSA9IDB4ODAwCiAgICAgfTsKIAogICAg
IHR5cGVkZWYgaW50IEZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5jcHAKaW5kZXggY2ZiNWI4YjBiYTQxOTYwYWI2NGM4ZmFjMGQ5NTIyZWE0NWJhYzIwYS4uMjhi
OTY4MzBkNWZjNDMwNzM0YWM3MTYzZmJmOWJlMjg5ZWE0Mzk0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0yNjQsNiArMjY0LDggQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGZyYWdtZW50VGVtcGxhdGVDb21tb24gPQogCiAgICAgICAgIHZvaWQgYXBwbHlU
ZXh0dXJlUkdCKGlub3V0IHZlYzQgY29sb3IsIHZlYzIgdGV4Q29vcmQpIHsgY29sb3IgPSB1X3Rl
eHR1cmVDb2xvclNwYWNlTWF0cml4ICogU2FtcGxlckZ1bmN0aW9uKHNfc2FtcGxlciwgdGV4Q29v
cmQpOyB9CiAKKyAgICAgICAgdm9pZCBhcHBseVByZW11bHRpcGx5KGlub3V0IHZlYzQgY29sb3Ip
IHsgY29sb3IgPSB2ZWM0KGNvbG9yLnJnYiAqIGNvbG9yLmEsIGNvbG9yLmEpOyB9CisKICAgICAg
ICAgdmVjMyB5dXZUb1JnYihmbG9hdCB5LCBmbG9hdCB1LCBmbG9hdCB2KQogICAgICAgICB7CiAg
ICAgICAgICAgICAvLyB5dXYgaXMgZWl0aGVyIGJ0NjAxIG9yIGJ0NzA5IHNvIHRoZSBvZmZzZXQg
aXMgdGhlIHNhbWUKQEAgLTQ4Myw2ICs0ODUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21l
bnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAgICAgICB2ZWMyIHRleENvb3JkID0gdHJhbnNmb3Jt
VGV4Q29vcmQoKTsKICAgICAgICAgICAgIGFwcGx5TWFudWFsUmVwZWF0SWZOZWVkZWQodGV4Q29v
cmQpOwogICAgICAgICAgICAgYXBwbHlUZXh0dXJlUkdCSWZOZWVkZWQoY29sb3IsIHRleENvb3Jk
KTsKKyAgICAgICAgICAgIGFwcGx5UHJlbXVsdGlwbHlJZk5lZWRlZChjb2xvcik7CiAgICAgICAg
ICAgICBhcHBseVRleHR1cmVZVVZJZk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAg
ICAgYXBwbHlUZXh0dXJlTlYxMklmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CiAgICAgICAgICAg
ICBhcHBseVRleHR1cmVOVjIxSWZOZWVkZWQoY29sb3IsIHRleENvb3JkKTsKQEAgLTUzNyw2ICs1
NDAsNyBAQCBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpjcmVhdGUoVGV4dHVyZU1hcHBlcgogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BU
SU9OUyhNYW51YWxSZXBlYXQpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhUZXh0dXJl
RXh0ZXJuYWxPRVMpOwogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhSb3VuZGVkUmVjdENs
aXApOworICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhQcmVtdWx0aXBseSk7CiAKICAgICBT
dHJpbmdCdWlsZGVyIHZlcnRleFNoYWRlckJ1aWxkZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggZDZhYzUwMTgyMTcyNjc3ZDYwMTEyYTAyZTRmOGQ3NWM1
NzAwYjUxMy4uODI2YzViODE4YjE1MDJlZWY1NmI3YzlhNmI4ZTJlNWRmMzNlMzdhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFRleHR1cmVQYWNrZWRZVVYgPSAxTCA8PCAyMSwKICAgICAgICAgVGV4
dHVyZUV4dGVybmFsT0VTID0gMUwgPDwgMjIsCiAgICAgICAgIFJvdW5kZWRSZWN0Q2xpcCAgPSAx
TCA8PCAyMywKKyAgICAgICAgUHJlbXVsdGlwbHkgICAgICA9IDFMIDw8IDI0LAogICAgIH07CiAK
ICAgICBlbnVtIGNsYXNzIFZhcmlhYmxlSUQgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMxNmVkZGY0NGI2ODE1YzRiMDRi
ZmZmODIwYTE5MjQyYjM1MmYxMjIuLjlkNzQ4MzViZmE0OWRiZDQ2NDE1MWI3MDUzNTExODZiOTVl
ODNmZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNS0yOCAgTWlndWVsIEdvbWV6ICA8
bWFnb21lekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIEluY29ycmVjdCByZW5k
ZXJpbmcgb2YgVlA5IHdpdGggdHJhbnNwYXJlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGZvciB0aGUgcGxheWJhY2sgb2YgdHJh
bnNwYXJlbnQgdmlkZW9zLiBUaGlzIGlzIGluaXRpYWxseSBza2lwcGVkIGJlY2F1c2UgaXQncyBu
b3Qgc3VwcG9ydGVkCisgICAgICAgIG9uIEFwcGxlIHBvcnRzIGFuZCB3b24ndCBiZSB3b3JraW5n
IG9uIEdUSyBhbmQgV1BFIHVudGlsIEdTdHJlYW1lciBpcyBidW1wZWQgdG8gMS4yMC4KKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogbWVkaWEvY29udGVudC92aWRlby13
aXRoLWFscGhhLndlYm06IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXdpdGgtYWxwaGEt
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8td2l0aC1hbHBoYS5o
dG1sOiBBZGRlZC4KKwogMjAyMS0wNS0yOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSByZWFkaWx5IGxheW91dCB3aGVuIHNjcm9sbC1zbmFw
IHByb3BlcnRpZXMgY2hhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZTJmYzFlMTA1ZGE3NDFm
NjAzZmNlYzUzMjI2ZWE4ZTgwYWIzZWI1Li4zNzc3MmZiNzdiNjM2ZmFjN2IxOGViNWU3NTI5Njdj
YWZlNjUyNGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMzQsNiArMTAzNCw5IEBAIHdlYmtp
dC5vcmcvYi8yMDMxNDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4gWyBTa2lwCiAjIFRlc3RzIGEgc2V0dGluZyBiZWhpbmQgdGhlIEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSBmbGFnLCB3aGljaCBpcyBXSzItb25seQogbWVkaWEvdmlkZW8tc3VwcG9y
dHMtZnVsbHNjcmVlbi5odG1sIFsgU2tpcCBdCiAKKyMgU3VwcG9ydCBmb3IgVlA5IGVuY29kZWQg
dmlkZW9zIHdpdGggdHJhbnNwYXJlbmN5IGlzIG9ubHkgYXZhaWxhYmxlIG9uIHBvcnRzIHRoYXQg
dXNlIEdTdHJlYW1lci4KK21lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRtbCBbIFNraXAgXQorCiAj
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZp
YyB0ZXN0cy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL2NvbnRlbnQvdmlkZW8td2l0aC1hbHBoYS53ZWJtIGIvTGF5b3V0
VGVzdHMvbWVkaWEvY29udGVudC92aWRlby13aXRoLWFscGhhLndlYm0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFm
OTRlYmMwNWQ1ZmIxZmQxYWU4YWMxNWY4M2QzN2FkYzY0ZTQ3YgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgNTQ4Nwp6Y21jSlRWTXI1RTlLaGUqSGd9NFUxPWJSd3ArKipGcnpwJUlJP29OOUcjI0Zy
MjJwUDEzQFpsYTY4Zl5ZT31BM2YKeiFWamFBb1RJV0RWdWRCeyVZaHtLRGczNCUwdGJDYUQ4ZFIj
dW4qbjI9aH1USjUmais5KnlHOytfa1FueHxNd25UCnpvQEYpcWtuaEo3fDVOXmMhJj80M1dfVnhW
PTRIbjxLOFJfKTU3UCQwPiFPZnk8KH1TYWR2SWdrNzlTOXYyWGRgWAp6SkFAZEhCd1BFTnJufV9V
aVktMVUtYG0lOzsxWGchc3hhQmk3dmwwd1UrJlMqTmUqaDshdV5qUSNwPm07PHJuQHYKekpaSkxg
b29WLVVSR0xhRkRvZXspX0g0RGZaTjQ0aUNkRGxhTVNwUmMqcXZJJlJRS0NaJCR7QUhVfkE2aTcp
QXhOCnpXQiM3Jm0tX28hRjB8T0l7Rm9+STsxQUdfYjB8U1Z2U3pSfWswbjlHbHJuZDJ5dHx2K0lw
UCQoRXtRYnFFWVlCKQp6ek5XISFYKjM3YkdOfU5FUXlnJnE4OWZ6eUk2WEVqUHN9TSN0ZzF8em5E
T2NyaHNXSn0rfmNsdE50MmRuJGxUbW0Kei1ER1gzSHdRO3FfTjRNREZSZnQ3aDB2anoqRkQxZGp+
R281dWRjezVFYSQ7el80NnAobyRXIVVxSV5SZ0xpWTlfCnpFSkNpbGArQFFJJkFNYDc7Z19gdF4r
WlRpPHp3PXY8T2AtQUp5QXp6ckpfJSktamRTN3g1dTxiIVdiMiFlI0c0eQp6THcxQlRNdWdmdk1j
KWslamNucVQpRjFgaGdCKC1fOEJLUCNzSmczJmMwI09BPzIyZU1yZ3Y4bmQlK3ppMitfdSsKejU0
eio1WWdGQTtqdU49ekkmPlo+MUdGUT41bmBSeztxOTE1VWUhSDRrNW5oUDxBX1dZPHFGQDBxdGc4
IWomdENTCnoyfEAmYE4xQjBscSorMSlUaTB8ZXhUQlg0Y2shJjEmRn1CZW53fG84VG1zTUkyREdE
bTUmKjltTylhPmk4Izw0Zwp6RnUwPmdoK3lAb1MlWUBlPTBOOUJZWFd6P05RaHdqcWMjTllJM3A4
NSZsJjlzdzQpOVlCM00xQGlvcVQyZ2F+JWQKej16NzUmQ2tQUiY5KDVBOTwyck82R1lyczw4SnRX
NlR7OVYtO0VwNVVkN0p9eE9ie1lpSj9hQH5NP0RMak18fkB9CnpxbjhsRF9EQjVgeFp7I2MxWUkt
dzRRTk5rTlFod2Qka2MqNngoTn5Ob01GUD9qdl5zfilnIVk4P1U8UFpveVNaUQphZ3JvQXheS058
ajYtSUNGJGdmdHZgbCFXcXRvYVQ5UChIJXwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdpdGgtYWxwaGEtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdpdGgtYWxwaGEtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNjRhMDNmZGYxMWUyZTQzNGJhODU2MmNiY2I3NTFkZGQ1YWMwNDVhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2l0aC1hbHBoYS1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRp
dGxlPnZpZGVvLXdpdGgtYWxwaGE8L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAg
ICAgIGJhY2tncm91bmQ6IHdoaXRlOworICAgIH0KKworICAgICNzcGFjZXIgeworICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDIwMHB4OworICAgICAgICB0b3A6IDBw
eDsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgfQorICA8L3N0eWxlPgorIDwvaGVhZD4KKzxi
b2R5PgorICA8ZGl2IGlkPSJzcGFjZXIiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LXdpdGgtYWxwaGEuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdpdGgtYWxwaGEuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZDZjMjUyNDUwMTcyZDUwMTZmMWRkNmRmZmI2MGZlNjIxMzY1ZWVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2l0aC1hbHBoYS5odG1s
CkBAIC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRp
dGxlPnZpZGVvLXdpdGgtYWxwaGE8L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAg
ICAgIGJhY2tncm91bmQ6IHdoaXRlOworICAgIH0KKworICAgICN2aWRlbyB7CisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsK
KyAgICB9CisgICAgI3NwYWNlciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgbGVmdDogMjAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7CisgICAgfQorICAgICNjYW52YXMgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgIGxlZnQ6IDQwMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9CisgIDwv
c3R5bGU+CisgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgIDxzY3JpcHQ+
CisgICAgLy8gUHV0IGEgdmlkZW8gZWxlbWVudCB0byB0aGUgbGVmdCwgYSBzcGFjZXIgaW4gdGhl
IG1pZGRsZSBhbmQgYSBjYW52YXMgdG8gdGhlIHJpZ2h0LiBUaGUgdmlkZW8gZWxlbWVudCB3aWxs
CisgICAgLy8gcGxheSBhIHRyYW5zcGFyZW50IHZpZGVvLCBhbmQgYSB2aWRlbyBmcmFtZSB3aWxs
IGJlIGNvcGllZCBpbnRvIHRoZSBjYW52YXMuCisgICAgLy8gQXMgdGhlIHZpZGVvIGFuZCB0aGUg
Y2FudmFzIGFyZSBpbnZpc2libGUsIHRvIHZpc3VhbGx5IGNoZWNrIHRoYXQgdGhlIHZpZGVvIGVs
ZW1lbnQgaXMgcmVhbGx5IHBsYXlpbmcgc29tZXRoaW5nLAorICAgIC8vIHNldCB0aGUgc2l6ZSBv
ZiB0aGUgc3BhY2VyIHRvIHRoZSBzaXplIG9mIHRoZSB2aWRlbyBmcmFtZXMgKDIwMHgyMDApLgor
CisgICAgdmFyIHJlcXVpcmVQaXhlbER1bXAgPSB0cnVlOworCisgICAgZnVuY3Rpb24gc2Vla2Vk
KCkgeworICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZh
cyIpOworICAgICAgICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgICAg
IGNvbnRleHQuZHJhd0ltYWdlKHZpZGVvLCAwLCAwKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCki
LCAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBidWZmZXJlZCgpIHsKKyAgICAgICAgdmlkZW8u
d2lkdGggPSB2aWRlby52aWRlb1dpZHRoOworICAgICAgICB2aWRlby5oZWlnaHQgPSB2aWRlby52
aWRlb0hlaWdodDsKKworICAgICAgICBsZXQgc3BhY2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNwYWNlciIpOworICAgICAgICBzcGFjZXIuc3R5bGUud2lkdGggPSB2aWRlby53aWR0aCAr
ICJweCI7CisgICAgICAgIHNwYWNlci5zdHlsZS5oZWlnaHQgPSB2aWRlby5oZWlnaHQgKyAicHgi
OworCisgICAgICAgIGNhbnZhcy53aWR0aCA9IHZpZGVvLndpZHRoOworICAgICAgICBjYW52YXMu
aGVpZ2h0ID0gdmlkZW8uaGVpZ2h0OworCisgICAgICAgIHZpZGVvLmN1cnJlbnRUaW1lID0gLjU7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1l
bnQoKTsKKyAgICAgICAgdmlkZW8uc3JjID0gImNvbnRlbnQvdmlkZW8td2l0aC1hbHBoYS53ZWJt
IjsKKyAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigic2Vla2VkIiwgc2Vla2VkKTsKKyAg
ICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigiY2FucGxheXRocm91Z2giLCBidWZmZXJlZCwg
ZmFsc2UpOworICAgIH0KKyAgPC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+
PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgIDx2aWRlbyBp
ZD0idmlkZW8iPjwvdmlkZW8+CisgIDxkaXYgaWQ9InNwYWNlciI+PC9kaXY+CisgIDxjYW52YXMg
aWQ9ImNhbnZhcyI+PC9jYW52YXM+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>