<?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>225286</bug_id>
          
          <creation_ts>2021-05-02 17:58:20 -0700</creation_ts>
          <short_desc>Add preliminary support for specifying a color space for 2D canvas</short_desc>
          <delta_ts>2021-05-05 11:12:46 -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>Canvas</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225140</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756081</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-02 17:58:20 -0700</bug_when>
    <thetext>As a first step toward implementing https://github.com/WICG/canvas-color-space/blob/main/CanvasColorSpaceProposal.md, let&apos;s start with adding support for specifying a color space via the settings object and rendering using that color space. To keep things small, we will leave out ImageData access from this first change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756191</commentid>
    <comment_count>1</comment_count>
      <attachid>427564</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-03 08:48:15 -0700</bug_when>
    <thetext>Created attachment 427564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756360</commentid>
    <comment_count>2</comment_count>
      <attachid>427614</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-03 16:38:47 -0700</bug_when>
    <thetext>Created attachment 427614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756364</commentid>
    <comment_count>3</comment_count>
      <attachid>427615</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-03 16:43:38 -0700</bug_when>
    <thetext>Created attachment 427615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756368</commentid>
    <comment_count>4</comment_count>
      <attachid>427617</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-03 16:45:12 -0700</bug_when>
    <thetext>Created attachment 427617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756403</commentid>
    <comment_count>5</comment_count>
      <attachid>427628</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-03 18:29:36 -0700</bug_when>
    <thetext>Created attachment 427628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756549</commentid>
    <comment_count>6</comment_count>
      <attachid>427674</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-04 09:06:17 -0700</bug_when>
    <thetext>Created attachment 427674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756553</commentid>
    <comment_count>7</comment_count>
      <attachid>427674</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-05-04 09:16:02 -0700</bug_when>
    <thetext>Comment on attachment 427674
Patch

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

&gt; LayoutTests/fast/canvas/CanvasRenderingContext2DSettings-colorSpace-disabled.html:11
&gt; +        let canvas = document.createElement(&quot;canvas&quot;);
&gt; +        let context = canvas.getContext(&quot;2d&quot;, settings);

Nit: const
(and elsewhere)

&gt; LayoutTests/fast/canvas/canvas-color-space-display-p3.html:5
&gt; +    &lt;p&gt;This test passes if the square below looks to be all one color&lt;/p&gt;

Nice test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756563</commentid>
    <comment_count>8</comment_count>
      <attachid>427674</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-04 09:42:48 -0700</bug_when>
    <thetext>Comment on attachment 427674
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:951
&gt; +        else
&gt; +            return std::pair { DestinationColorSpace::SRGB, PixelFormat::BGRA8 };

No else after return.

&gt; Source/WebCore/html/canvas/PredefinedColorSpace.h:34
&gt; +enum class PredefinedColorSpace {

Maybe this should be CanvasPredefinedColorSpace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756946</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-05 08:46:01 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Comment on attachment 427674 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427674&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLCanvasElement.cpp:951
&gt; &gt; +        else
&gt; &gt; +            return std::pair { DestinationColorSpace::SRGB, PixelFormat::BGRA8 };
&gt; 
&gt; No else after return.

Yeah. (I kind of hate this rule. The symmetry seems so much nicer in cases like this, but if I want to change this rule I will bring it up separately). Fixed.

&gt; 
&gt; &gt; Source/WebCore/html/canvas/PredefinedColorSpace.h:34
&gt; &gt; +enum class PredefinedColorSpace {
&gt; 
&gt; Maybe this should be CanvasPredefinedColorSpace?

I&apos;d like to stick to the spec name if I can. Perhaps we should suggest changing it HTML?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756950</commentid>
    <comment_count>10</comment_count>
      <attachid>427770</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-05 08:53:47 -0700</bug_when>
    <thetext>Created attachment 427770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756960</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-05 09:37:03 -0700</bug_when>
    <thetext>Committed r277024 (237338@main): &lt;https://commits.webkit.org/237338@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427770.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756962</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-05 09:38:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/77561169&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427564</attachid>
            <date>2021-05-03 08:48:15 -0700</date>
            <delta_ts>2021-05-03 16:38:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210503084814.patch</filename>
            <type>text/plain</type>
            <size>39844</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY4ODgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIENh
bnZhc0NvbG9yU3BhY2VFbmFibGVkLCB3aGljaCBibG9ja3MKKyAgICAgICAgYWNjZXNzIHRvIHRo
ZSBuZXcgYWJpbGl0eSB0byBzcGVjaWZ5IGNvbG9yIHNwYWNlcyBmb3IgMkQgY2FudmFzLgorCisg
ICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sOgorCiAyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgRGVzdGluYXRpb25Db2xvclNwYWNlOjpEaXNwbGF5UDMgaW4g
cHJlcGFyYXRpb24gZm9yIERpc3BsYXlQMyBjYW52YXMKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCShyZXZpc2lvbiAyNzY4ODgpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAt
MjQ1LDYgKzI0NSwxOCBAQCBDU1NUeXBlZE9NRW5hYmxlZDoKICAgICAgICJFTkFCTEUoRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSI6IHRy
dWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK0NhbnZhc0NvbG9yU3BhY2VFbmFibGVkOgorICB0
eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FudmFzIENvbG9yIFNwYWNlcyIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHVzZSBvZiBwcmVkZWZpbmVkIGNhbnZh
cyBjb2xvciBzcGFjZXMiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAg
ICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2Vz
czogVmlkZW8gQ2FwdHVyZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3Njg5OSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkxIEBACisy
MDIxLTA1LTAzICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
cHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNw
YWNlLWRpc2FibGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQg
bmV3IGZpbGVzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MrQ29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmg6CisgICAgICAgIEFkZCBhIG5ldyBz
ZXR0aW5nIGJsb2NrZWQgbWVtYmVyIHRvIHRoZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0
aW5ncworICAgICAgICBkaWN0aW9uYXJ5IGZvciBzcGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UuIAor
CisgICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAg
ICAgICBBZGQgYSBuZXcgSURMIGVudW1lcmF0aW9uIHRvIHJlcHJlc2VudCB0aGUgcG9zc2libGUg
Y29sb3Igc3BhY2VzIHN1cHBvcnRlZC4KKyAgICAgICAgRm9yIHBvcnRzIHRoYXQgZG9uJ3Qgc3Vw
cG9ydCBEaXNwbGF5UDMsIHRyeWluZyB0byB1c2UgaXQgd2lsbCByZXN1bHQgaW4gCisgICAgICAg
IHR5cGUgZXJyb3IgZnJvbSBKUy4KKworICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHQy
ZCk6CisgICAgICAgIENsZWFudXAgYWN0aXZlIG1lbW9yeSBzaXplIGNoZWNrcyB0byB1c2UgY2hl
Y2tlZCBhcml0aG1ldGljCisgICAgICAgIGFuZCBtYWtlU3RyaW5nIGNvbnNpc3RlbnRseS4KKyAK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBj
b25zdCk6CisgICAgICAgIENsZWFudXAgYWN0aXZlIG1lbW9yeSBzaXplIGNoZWNrcyB0byB1c2Ug
Y2hlY2tlZCBhcml0aG1ldGljCisgICAgICAgIGFuZCBtYWtlU3RyaW5nIGNvbnNpc3RlbnRseS4g
U2ltcGxpZnkgaG9zdCB3aW5kb3cgYWNjZXNzIHRvCisgICAgICAgIGdvIHRocm91Z2ggdGhlIFBh
Z2UgZGlyZWN0bHkuIEJhaWwgZWFybHkgaWYgd2UgaGF2ZSBubyBjb250ZXh0LgorICAgICAgICBU
aGVyZSBpcyBubyB2YWx1ZSBpbiBoYXZpbmcgYSBidWZmZXIgaWYgdGhlcmUgaXMgbm8gY29udGV4
dAorICAgICAgICB0byBkcmF3IHVzaW5nIGl0LCBhbmQgd2Ugbm93IG5lZWQgdG8gdGhlIGNvbnRl
eHQgdG8gdGVsbCB1cworICAgICAgICB0aGUgY29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdC4g
VGhpcyBzaG91bGQgbGlrZWx5IGJlIAorICAgICAgICByZWZhY3RvcmVkIHNvIHRoYXQgdGhlIElt
YWdlQnVmZmVyIGlzIG93bmVkIGFuZCBjcmVhdGVkIGJ5CisgICAgICAgIHRoZSBjb250ZXh0IChh
cyBpcyBkb25lIGZvciB0aGUgbm9uLTJkIGNhbnZhc2VzKS4KKyAgICAgICAgRmluYWxseSwgcGFz
cyB0aGUgY29ycmVjdCBjb2xvciBzcGFjZSBhbmQgcGl4ZWwgZm9ybWF0ICh0aG91Z2gKKyAgICAg
ICAgdGhlIGxhdGVyIGlzIGFsd2F5cyBCR1JBOCBhdCB0aGUgbW9tZW50KSB0byB0aGUgSW1hZ2VC
dWZmZXIKKyAgICAgICAgY3JlYXRlIGZ1bmN0aW9uIHRvIG1ha2UgYSBiYWNraW5nIHN0b3JlIGlu
IHRoZSByaWdodCBmb3JtYXQuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlQnVmZmVyRm9yUGFp
bnRpbmcgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAg
ICBQYXNzIGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3JtYXQgdGhyb3VnaCB0byBlbnN1cmUgdGhl
IGhlbHBlcgorICAgICAgICBidWZmZXIgbWF0Y2hlcyB0aGUgY29ycmVjdCBjb2xvciBzcGFjZS4K
KworICAgICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VCaXRtYXA6OmNyZWF0ZVByb21pc2UpOgorICAgICAgICBQYXNzIHRoZSBleGlzdGluZyBkZWZh
dWx0cyB0byBIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWludGluZy4KKyAgICAg
ICAgSW4gdGhlIGZ1dHVyZSwgSW1hZ2VCaXRtYXAgd2lsbCBhbHNvIGdhaW4gY29sb3Igc3BhY2Ug
YW5kIHBpeGVsCisgICAgICAgIGZvcm1hdCBzcGVjaWZpY2l0eSBhbmQgdGhpcyB3aWxsIGJlIHVw
ZGF0ZWQuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnBpeGVsRm9ybWF0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OmNvbG9y
U3BhY2UgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaDoKKyAgICAgICAgQWRkIHZpcnR1YWwgYmFzZSBpbXBsZW1lbnRhdGlvbnMgb2YgY29sb3JT
cGFjZSBhbmQgcGl4ZWxGb3JtYXQKKyAgICAgICAgd2hpY2ggQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEIGNhbiBvdmVycmlkZSB0byByZXR1cm4gdGhlCisgICAgICAgIHZhbHVlcyBzcGVjaWZpZWQg
aW4gdGhlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLgorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udFByb3h5IGNvbnN0KToKKyAgICAgICAgRml4IGluY29y
cmVjdCBmb3JtYXR0aW5nLgorCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnBpeGVsRm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIEFkZCBvdmVycmlkZXMs
IHJldHVybiBtX3NldHRpbmdzLmNvbG9yU3BhY2UgZm9yIGNvbG9yU3BhY2UuCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVDb21wb3Np
dGluZ0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlOjpjcmVhdGVQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2U6OmRyYXdUZXh0VW5jaGVja2VkKToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUg
Y29sb3JTcGFjZSBhbmQgcGl4ZWxGb3JtYXQgd2hlbiBjcmVhdGluZyBidWZmZXJzLgorCisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHA6CisgICAg
ICAgIEFkZCBtaXNzaW5nIGluY2x1ZGVzIHRoYXQgYXJlIG5vdyBuZWVkZWQuCisKIDIwMjEtMDUt
MDMgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkZWZh
dWx0IHBhcmFtZXRlciB2YWx1ZXMgZm9yIGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3JtYXQgZnJv
bSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlIHRvIG1ha2UgaXQgY2xlYXIgZXZlcndoZXJlIHdlIGFyZSBl
eHBsaWNpdGx5IHJlcXVlc3RpbmcgU1JHQi9CR1JBOCBidWZmZXJzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMjc2ODk5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNTIsNiArMTA1Miw3IEBAIHNldChXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5pZGwKICAgICBodG1s
L2NhbnZhcy9DYW52YXNSZWN0LmlkbAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwKKyAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0
aW5ncytDb2xvclNwYWNlLmlkbAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzLmlkbAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1NoYWRvd1N0eWxlcy5pZGwK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNTdGF0ZS5pZGwKQEAgLTEwNjcsNiArMTA2OCw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5n
Q29udGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyAgICBodG1sL2NhbnZh
cy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwKIAogICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5p
ZGwKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApJbmRleDogU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNzY4OTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDY1LDYgKzEwNjUsNyBAQCAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZh
cy9DYW52YXNQYXRoRHJhCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJu
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQ2FudmFzUmVjdC5pZGwKICQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKKyQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9y
U3BhY2UuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRTZXR0aW5ncy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL0NhbnZhc1NoYWRv
d1N0eWxlcy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL0NhbnZhc1N0YXRlLmlkbApA
QCAtMTA5OCw2ICsxMDk5LDcgQEAgJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYQogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvUGFpbnRSZW5kZXJpbmdD
b250ZXh0MkQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QYXRoMkQuaWRsCiskKFBS
T0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwKICQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCiAkKFBST0pFQ1RfRElSKS9odG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNzY4OTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpA
QCAtMzYxLDYgKzM2MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFz
UmVjdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MrQ29sb3JTcGFjZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MrQ29sb3JT
cGFjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5n
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NhbnZh
c1NoYWRvd1N0eWxlcy5jcHAKQEAgLTE2NDIsNiArMTY0NCw4IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUG9zaXRpb25PcHRpb25zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUG9zdE1lc3NhZ2VPcHRpb25zLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQb3N0TWVzc2FnZU9wdGlvbnMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcmVkZWZp
bmVkQ29sb3JTcGFjZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1By
b2dyZXNzRXZlbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlz
aW9uIDI3Njg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTkyNiw2ICs5MjYsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvQ2FudmFzUmVjdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncytDb2xvclNwYWNlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFzU2hhZG93U3R5bGVzLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNTdGF0ZS5pZGwgXApAQCAtOTU5LDYg
Kzk2MCw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9QYXRoMkQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1By
ZWRlZmluZWRDb2xvclNwYWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJH
TEFjdGl2ZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVy
LmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjc2ODk5KQorKysgU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzNDQsNiArMTM0NCw3IEBAIGh0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnQKIGh0bWwvY2FudmFzL1BhaW50
UmVuZGVyaW5nQ29udGV4dDJELmNwcAogaHRtbC9jYW52YXMvUGF0aDJELmNwcAogaHRtbC9jYW52
YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAoraHRtbC9jYW52YXMvUHJlZGVmaW5l
ZENvbG9yU3BhY2UuY3BwCiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAog
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiBodG1sL2NhbnZhcy9XZWJHTENvbG9yQnVmZmVy
RmxvYXQuY3BwCkBAIC0zMzY3LDYgKzMzNjgsNyBAQCBKU1Bvc2l0aW9uQ2FsbGJhY2suY3BwCiBK
U1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAKIEpTUG9zaXRpb25PcHRpb25zLmNwcAogSlNQb3N0
TWVzc2FnZU9wdGlvbnMuY3BwCitKU1ByZWRlZmluZWRDb2xvclNwYWNlLmNwcAogSlNQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCiBKU1Byb2dyZXNzRXZlbnQuY3BwCiBKU1Byb21pc2VSZWplY3Rp
b25FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3Njg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQzMTQs
NiArMTQzMTQsMTAgQEAKIAkJQkNBMzc4QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY2hlZHVsZWRB
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0EzNzhCQjBEMTVGNjQy
MDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjaGVkdWxlZEFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0E1NTkxMjI2M0RCRDc5MDA3RjE5QjMgLyogUGl4ZWxGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGl4ZWxGb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkNBNTU5MUEyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDQTU1OTFDMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JT
cGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQ0E1NTkxRDI2M0YxMEI5MDA3RjE5QjMgLyogUHJlZGVmaW5lZENvbG9y
U3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E1NTkxRjI2M0YxMEYxMDA3RjE5QjMgLyog
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MrQ29sb3JTcGFjZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9yU3BhY2UuaWRsIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFUcmFu
c2Zlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0
YVRyYW5zZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0
YVRyYW5zZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEUwRDdD
RTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDA5OCw2ICsyMDEwMiw3IEBACiAJCQkJMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCAqLywKIAkJCQlCQ0UwNDkwQzI2M0EyRjFDMDA5
RENCQjggLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaCAqLywKIAkJCQlCQ0Uw
NDkwRTI2M0EyRjFDMDA5RENCQjggLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mu
aWRsICovLAorCQkJCUJDQTU1OTFGMjYzRjEwRjEwMDdGMTlCMyAvKiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRTZXR0aW5ncytDb2xvclNwYWNlLmlkbCAqLywKIAkJCQk3QzE5M0JBRDFGNUUwRUIz
MDA4OEYzRTYgLyogQ2FudmFzU2hhZG93U3R5bGVzLmlkbCAqLywKIAkJCQk3QzE5M0JCMjFGNUUw
RUI2MDA4OEYzRTYgLyogQ2FudmFzU3RhdGUuaWRsICovLAogCQkJCTQ5NDg0RkJGMTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNTdHlsZS5jcHAgKi8sCkBAIC0yMDE4NCw2ICsyMDE4OSw5IEBACiAJ
CQkJN0MxOTNCQjQxRjVFMEVCNzAwODhGM0U2IC8qIFBhdGgyRC5pZGwgKi8sCiAJCQkJN0M3OTAz
QkExRjg2RkYzMzAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8s
CiAJCQkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dC5oICovLAorCQkJCUJDQTU1OTFEMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29s
b3JTcGFjZS5jcHAgKi8sCisJCQkJQkNBNTU5MUEyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmlu
ZWRDb2xvclNwYWNlLmggKi8sCisJCQkJQkNBNTU5MUMyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRl
ZmluZWRDb2xvclNwYWNlLmlkbCAqLywKIAkJCQlEM0YzRDM1QjFBNjlBNTA2MDA1OUZDMkIgLyog
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlG
QzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2
MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwgKi8sCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMjc2ODk5KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiCiAjaW5jbHVkZSAi
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJEaXNwbGF5
TGlzdERyYXdpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCkBAIC0zNjUsMTMgKzM2NiwxMCBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQqIEhUTUxDYW52YXNFbGVtCiAgICAgQVNTRVJUKCFtX2NvbnRleHQpOwogCiAgICAgLy8gTWFr
ZSBzdXJlIHdlIGRvbid0IHVzZSBtb3JlIHBpeGVsIG1lbW9yeSB0aGFuIHRoZSBzeXN0ZW0gY2Fu
IHN1cHBvcnQuCi0gICAgc2l6ZV90IHJlcXVlc3RlZFBpeGVsTWVtb3J5ID0gNCAqIHdpZHRoKCkg
KiBoZWlnaHQoKTsKLSAgICBpZiAoYWN0aXZlUGl4ZWxNZW1vcnkoKSArIHJlcXVlc3RlZFBpeGVs
TWVtb3J5ID4gbWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSkgewotICAgICAgICBTdHJpbmdCdWlsZGVy
IHN0cmluZ0J1aWxkZXI7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVG90
YWwgY2FudmFzIG1lbW9yeSB1c2UgZXhjZWVkcyB0aGUgbWF4aW11bSBsaW1pdCAoIik7Ci0gICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAx
MDI0IC8gMTAyNCk7Ci0gICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIE1CKS4i
KTsKLSAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAg
IGF1dG8gYXJlYSA9IHNpemUoKS5hcmVhPFJlY29yZE92ZXJmbG93PigpOworICAgIGF1dG8gdG90
YWxQaXhlbE1lbW9yeSA9IChhcmVhICogNCkgKyBhY3RpdmVQaXhlbE1lbW9yeSgpOworICAgIGlm
ICh0b3RhbFBpeGVsTWVtb3J5Lmhhc092ZXJmbG93ZWQoKSB8fCB0b3RhbFBpeGVsTWVtb3J5ID4g
bWF4QWN0aXZlUGl4ZWxNZW1vcnkoKSkgeworICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJp
bmcoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKCIs
IG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkgLyAxMDI0IC8gMTAyNCwgIiBNQikuIikpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAgLTkxMSwzOSArOTA5LDQwIEBAIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmUKIHsKICAgICBBU1NFUlQoIWhhc0NyZWF0
ZWRJbWFnZUJ1ZmZlcigpKTsKIAorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47
CisKKyAgICBBU1NFUlQobV9jb250ZXh0LT5pczJkKCkpOworCiAgICAgbV9oYXNDcmVhdGVkSW1h
Z2VCdWZmZXIgPSB0cnVlOwogICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IHRydWU7CiAKLSAg
ICAvLyBQZXJmb3JtIG11bHRpcGxpY2F0aW9uIGFzIGZsb2F0aW5nIHBvaW50IHRvIGF2b2lkIG92
ZXJmbG93Ci0gICAgaWYgKGZsb2F0KHdpZHRoKCkpICogaGVpZ2h0KCkgPiBtYXhDYW52YXNBcmVh
KSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKLSAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDYW52YXMgYXJlYSBleGNlZWRzIHRoZSBtYXhpbXVtIGxp
bWl0ICh3aWR0aCAqIGhlaWdodCA+ICIpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51
bWJlcihtYXhDYW52YXNBcmVhKTsKLSAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIpLiIpOwotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
YXJlYSA9IHNpemUoKS5hcmVhPFJlY29yZE92ZXJmbG93PigpOworICAgIGlmIChhcmVhLmhhc092
ZXJmbG93ZWQoKSB8fCBhcmVhID4gbWF4Q2FudmFzQXJlYSkgeworICAgICAgICBkb2N1bWVudCgp
LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5p
bmcsIG1ha2VTdHJpbmcoIkNhbnZhcyBhcmVhIGV4Y2VlZHMgdGhlIG1heGltdW0gbGltaXQgKHdp
ZHRoICogaGVpZ2h0ID4gIiwgbWF4Q2FudmFzQXJlYSwgIikuIikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbW9yZSBwaXhlbCBt
ZW1vcnkgdGhhbiB0aGUgc3lzdGVtIGNhbiBzdXBwb3J0LgotICAgIHNpemVfdCByZXF1ZXN0ZWRQ
aXhlbE1lbW9yeSA9IDQgKiB3aWR0aCgpICogaGVpZ2h0KCk7Ci0gICAgaWYgKGFjdGl2ZVBpeGVs
TWVtb3J5KCkgKyByZXF1ZXN0ZWRQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkp
IHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwotICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlRvdGFsIGNhbnZhcyBtZW1vcnkgdXNlIGV4Y2VlZHMgdGhl
IG1heGltdW0gbGltaXQgKCIpOwotICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZE51bWJlciht
YXhBY3RpdmVQaXhlbE1lbW9yeSgpIC8gMTAyNCAvIDEwMjQpOwotICAgICAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBNQikuIik7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgc3RyaW5n
QnVpbGRlci50b1N0cmluZygpKTsKKyAgICBhdXRvIHRvdGFsUGl4ZWxNZW1vcnkgPSAoYXJlYSAq
IDQpICsgYWN0aXZlUGl4ZWxNZW1vcnkoKTsKKyAgICBpZiAodG90YWxQaXhlbE1lbW9yeS5oYXNP
dmVyZmxvd2VkKCkgfHwgdG90YWxQaXhlbE1lbW9yeSA+IG1heEFjdGl2ZVBpeGVsTWVtb3J5KCkp
IHsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJUb3RhbCBjYW52YXMgbWVtb3J5
IHVzZSBleGNlZWRzIHRoZSBtYXhpbXVtIGxpbWl0ICgiLCBtYXhBY3RpdmVQaXhlbE1lbW9yeSgp
IC8gMTAyNCAvIDEwMjQsICIgTUIpLiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmICghd2lkdGgoKSB8fCAhaGVpZ2h0KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8g
aG9zdFdpbmRvdyA9IChkb2N1bWVudCgpLnZpZXcoKSAmJiBkb2N1bWVudCgpLnZpZXcoKS0+cm9v
dCgpKSA/IGRvY3VtZW50KCkudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKSA6IG51bGxwdHI7
CisgICAgLy8gRklYTUU6IERvZXMgaXQgbWFrZSBzZW5zZSB0byBjcmVhdCB0aGUgYnVmZmVyIGlm
IHRoZXJlIGlzIG5vIHBhZ2U/CisgICAgYXV0byBob3N0V2luZG93ID0gZG9jdW1lbnQoKS5wYWdl
KCkgPyAmZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpIDogbnVsbHB0cjsKIAogICAgIGF1dG8g
cmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUoc2l6ZSgpKSA/IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKICAgICAvLyBGSVhN
RTogQWRkIGEgbmV3IHNldHRpbmcgZm9yIERpc3BsYXlMaXN0IGRyYXdpbmcgb24gY2FudmFzLgog
ICAgIGF1dG8gdXNlRGlzcGxheUxpc3QgPSBtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcudmFsdWVP
cihkb2N1bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCgpKSA/IFNo
b3VsZFVzZURpc3BsYXlMaXN0OjpZZXMgOiBTaG91bGRVc2VEaXNwbGF5TGlzdDo6Tm87Ci0gICAg
c2V0SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIHJlbmRlcmluZ01vZGUs
IHVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlOjpDYW52YXMsIDEsIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KSk7CisgICAg
YXV0byBjb2xvclNwYWNlID0gbV9jb250ZXh0LT5jb2xvclNwYWNlKCk7CisgICAgYXV0byBwaXhl
bEZvcm1hdCA9IG1fY29udGV4dC0+cGl4ZWxGb3JtYXQoKTsKKworICAgIHNldEltYWdlQnVmZmVy
KEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJpbmdNb2RlLCB1c2VEaXNwbGF5TGlz
dCwgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCAxLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwg
aG9zdFdpbmRvdykpOwogCiAgICAgaWYgKGJ1ZmZlcigpICYmIGJ1ZmZlcigpLT5kcmF3aW5nQ29u
dGV4dCgpKQogICAgICAgICBidWZmZXIoKS0+ZHJhd2luZ0NvbnRleHQoKS0+c2V0VHJhY2tzRGlz
cGxheUxpc3RSZXBsYXkobV90cmFja3NEaXNwbGF5TGlzdFJlcGxheSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlzaW9uIDI3Njg5OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4MSwxMSArMjgxLDExIEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6bWVkaWFQbGF5ZXJGaXJz
dFYKICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKLVJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29u
c3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUpIGNvbnN0CitS
ZWZQdHI8SW1hZ2VCdWZmZXI+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50
aW5nKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQp
IGNvbnN0CiB7CiAgICAgYXV0byogaG9zdFdpbmRvdyA9IGRvY3VtZW50KCkudmlldygpICYmIGRv
Y3VtZW50KCkudmlldygpLT5yb290KCkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0
V2luZG93KCkgOiBudWxscHRyOwogICAgIGF1dG8gc2hvdWxkVXNlRGlzcGxheUxpc3QgPSBkb2N1
bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCgpID8gU2hvdWxkVXNl
RGlzcGxheUxpc3Q6OlllcyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICByZXR1cm4g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5
TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpOworICAgIHJldHVy
biBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIHNob3VsZFVzZURpc3Bs
YXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlOjpNZWRpYVBhaW50aW5nLCAxLCBjb2xvclNwYWNlLCBw
aXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFp
bnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmgJKHJldmlzaW9uIDI3Njg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIGNsYXNzIEltYWdlQnVm
ZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXI7
CiAKK2VudW0gY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlIDogdWludDhfdDsKK2VudW0gY2xh
c3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9v
bDsKIAogY2xhc3MgSFRNTFZpZGVvRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MTWVkaWFFbGVt
ZW50LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8SFRNTFZpZGVvRWxlbWVudD4gewpAQCAtNzAsNyAr
NzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigpIG92ZXJy
aWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUJ1ZmZlckZvclBh
aW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUpIGNvbnN0OworICAgIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiwg
UmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25Db2xvclNwYWNlLCBQaXhlbEZvcm1hdCkgY29uc3Q7
CiAKICAgICAvLyBVc2VkIGJ5IGNhbnZhcyB0byBnYWluIHJhdyBwaXhlbCBhY2Nlc3MKICAgICB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAJKHJldmlzaW9u
IDI3Njg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MDIsNyArNTAyLDkgQEAgdm9pZCBJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlz
ZShTY3JpcHRFeAogICAgIGF1dG8gc291cmNlUmVjdGFuZ2xlID0gbWF5YmVTb3VyY2VSZWN0YW5n
bGUucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAgICBhdXRvIG91dHB1dFNpemUgPSBvdXRwdXRT
aXplRm9yU291cmNlUmVjdGFuZ2xlKHNvdXJjZVJlY3RhbmdsZSwgb3B0aW9ucyk7Ci0gICAgYXV0
byBiaXRtYXBEYXRhID0gdmlkZW8tPmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKG91dHB1dFNpemUs
IGJ1ZmZlclJlbmRlcmluZ01vZGUpOworCisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBj
b2xvciBzcGFjZXMgLyBwaXhlbCBmb3JtYXRzIHRvIEltYWdlQml0bWFwLgorICAgIGF1dG8gYml0
bWFwRGF0YSA9IHZpZGVvLT5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhvdXRwdXRTaXplLCBidWZm
ZXJSZW5kZXJpbmdNb2RlLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0
OjpCR1JBOCk7CiAgICAgaWYgKCFiaXRtYXBEYXRhKSB7CiAgICAgICAgIHJlc29sdmVXaXRoQmxh
bmtJbWFnZUJ1ZmZlcihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAhdGFpbnRzT3JpZ2luKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSwgKnZpZGVvKSwgV1RGTW92ZShwcm9t
aXNlKSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkocmV2aXNpb24gMjc2
ODk5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTIgKzM3LDE0IEBACiAjaW5jbHVkZSAiQ1NT
UHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIgog
I2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyV29ya2VyU2FmZS5oIgorI2luY2x1ZGUgIkNvbG9y
U3BhY2UuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgi
CiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUGF0aDJELmgi
CisjaW5jbHVkZSAiUGl4ZWxGb3JtYXQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE9ic2VydmVyLmgi
CkBAIC0yMTEsNyArMjEzLDggQEAgUmVmPFRleHRNZXRyaWNzPiBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MgogICAgIHJldHVybiBtZWFzdXJlVGV4dEludGVybmFsKHRleHRSdW4pOwogfQogCi1hdXRv
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udFByb3h5KCkgLT4gY29uc3QgRm9udFByb3h5
KiB7CithdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udFByb3h5KCkgLT4gY29uc3Qg
Rm9udFByb3h5KgorewogICAgIC8vIEludGVudGlvbmFsbHkgZG9uJ3QgdXBkYXRlIHN0eWxlIGhl
cmUsIGJlY2F1c2UgdXBkYXRpbmcgc3R5bGUgY2FuIGNhdXNlIEpTIHRvIHJ1biBzeW5jaHJvbm91
c2x5LgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIHRoZSBtaWRkbGUgb2YgcHJv
Y2Vzc2luZywgYW5kIHJ1bm5pbmcgYXJiaXRyYXJ5IEpTIGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vz
c2luZyBjYW4gY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvci4KICAgICAvLyBJbnN0ZWFkLCB0aGUg
cmVsZXZhbnQgY2FudmFzIGVudHJ5IHBvaW50cyB1cGRhdGUgc3R5bGUgb25jZSB3aGVuIHRoZXkg
YmVnaW4gcnVubmluZywgYW5kIHdlIHdvbid0IHRvdWNoIHRoZSBzdHlsZSBhZnRlciB0aGF0LgpA
QCAtMjQzLDQgKzI0NiwxNSBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1Rl
eHRJCiAgICAgZHJhd1RleHRVbmNoZWNrZWQodGV4dFJ1biwgeCwgeSwgZmlsbCwgbWF4V2lkdGgp
OwogfQogCitQaXhlbEZvcm1hdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBpeGVsRm9ybWF0
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGFrZSBtX3NldHRpbmdzLmFscGhhIGludG8gYWNj
b3VudCBoZXJlIGFuZCBhZGQgUGl4ZWxGb3JtYXQ6OkJHUlg4LgorICAgIHJldHVybiBQaXhlbEZv
cm1hdDo6QkdSQTg7Cit9CisKK0Rlc3RpbmF0aW9uQ29sb3JTcGFjZSBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmNvbG9yU3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiB0b0Rlc3RpbmF0aW9u
Q29sb3JTcGFjZShtX3NldHRpbmdzLmNvbG9yU3BhY2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaAkocmV2aXNpb24gMjc2ODk5KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDYgKzYxLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXMyZCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KICAgICBjb25zdCBGb250UHJveHkqIGZvbnRQcm94eSgpIGZpbmFs
OworICAgIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CisgICAgRGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgc2V0
Rm9udFdpdGhvdXRVcGRhdGluZ1N0eWxlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBkcmF3
VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvYXQgeSwgYm9vbCBm
aWxsLCBPcHRpb25hbDxmbG9hdD4gbWF4V2lkdGggPSBXVEY6Om51bGxvcHQpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHAJKHJldmlzaW9uIDI3Njg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0CiAgICAgICAgIHJlcGFpbnRFbnRpcmVDYW52YXMgPSB0cnVlOwogICAgIH0gZWxzZSBp
ZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpIHsK
ICAgICAgICAgaWYgKCZzb3VyY2VDYW52YXMgPT0gJmNhbnZhc0Jhc2UoKSkgewotICAgICAgICAg
ICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihzcmNSZWN0LCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsICpjKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gY29w
eSA9IGJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihzcmNSZWN0LCBjb2xvclNwYWNlKCksICpjKSkg
ewogICAgICAgICAgICAgICAgIGNsZWFyQ2FudmFzKCk7CiAgICAgICAgICAgICAgICAgYy0+ZHJh
d0ltYWdlQnVmZmVyKCpjb3B5LCBkc3RSZWN0LCB7IHsgfSwgc3JjUmVjdC5zaXplKCkgfSwgeyBz
dGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAg
ICAgIH0KQEAgLTE4MjksNyArMTgyOSw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IEludFJlY3QgQ2Fu
dmFzUmVuZGVyaW4KIAogUmVmUHRyPEltYWdlQnVmZmVyPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlOjpjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0
KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBp
c0FjY2VsZXJhdGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxG
b3JtYXQ6OkJHUkE4KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShidWZmZXJSZWN0
LnNpemUoKSwgaXNBY2NlbGVyYXRlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBS
ZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBjb2xvclNwYWNlKCksIHBpeGVsRm9ybWF0
KCkpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNvbXBvc2l0ZUJ1
ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciBvcCkKQEAgLTIwMjYsNyArMjAyNiw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0
cjxDYW52YXNQYXR0ZXJuPj4gQ2FudmEKICNlbmRpZgogCiAgICAgYXV0byByZW5kZXJpbmdNb2Rl
ID0gIWRyYXdpbmdDb250ZXh0KCkgfHwgZHJhd2luZ0NvbnRleHQoKS0+aXNBY2NlbGVyYXRlZENv
bnRleHQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5h
Y2NlbGVyYXRlZDsKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gdmlkZW9FbGVtZW50LmNyZWF0ZUJ1
ZmZlckZvclBhaW50aW5nKHNpemUodmlkZW9FbGVtZW50KSwgcmVuZGVyaW5nTW9kZSk7CisgICAg
YXV0byBpbWFnZUJ1ZmZlciA9IHZpZGVvRWxlbWVudC5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhz
aXplKHZpZGVvRWxlbWVudCksIHJlbmRlcmluZ01vZGUsIGNvbG9yU3BhY2UoKSwgcGl4ZWxGb3Jt
YXQoKSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
QEAgLTI0OTAsNyArMjQ5MCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
ZHJhd1QKICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIAotICAgICAgICBpZiAoYy0+Y2xpcFRv
RHJhd2luZ0NvbW1hbmRzKG1hc2tSZWN0LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsIFdU
Rk1vdmUocGFpbnRNYXNrSW1hZ2UpKSA9PSBHcmFwaGljc0NvbnRleHQ6OkNsaXBUb0RyYXdpbmdD
b21tYW5kc1Jlc3VsdDo6RmFpbGVkVG9DcmVhdGVJbWFnZUJ1ZmZlcikKKyAgICAgICAgaWYgKGMt
PmNsaXBUb0RyYXdpbmdDb21tYW5kcyhtYXNrUmVjdCwgY29sb3JTcGFjZSgpLCBXVEZNb3ZlKHBh
aW50TWFza0ltYWdlKSkgPT0gR3JhcGhpY3NDb250ZXh0OjpDbGlwVG9EcmF3aW5nQ29tbWFuZHNS
ZXN1bHQ6OkZhaWxlZFRvQ3JlYXRlSW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENvbG9yKCpjKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9yU3Bh
Y2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9yU3BhY2UuaWRsCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzK0NvbG9yU3BhY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvLyBCYXNlZCBvbiB0aGUgcHJvcG9zYWwgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v
V0lDRy9jYW52YXMtY29sb3Itc3BhY2UvYmxvYi9tYWluL0NhbnZhc0NvbG9yU3BhY2VQcm9wb3Nh
bC5tZC4KK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPUNhbnZhc0NvbG9yU3BhY2UKK10gcGFydGlh
bCBkaWN0aW9uYXJ5IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKKyAgICBQcmVk
ZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gInNyZ2IiOworfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEU2V0dGluZ3MuaAkocmV2aXNpb24gMjc2ODk5KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiUHJlZGVm
aW5lZENvbG9yU3BhY2UuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MgewogICAgIGJvb2wgZGVzeW5jaHJvbml6ZWQgeyBm
YWxzZSB9OworICAgIFByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2UgeyBQcmVkZWZpbmVk
Q29sb3JTcGFjZTo6U1JHQiB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDI3Njg5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDExICsyOCwxMyBA
QAogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgi
CisjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1l
bnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCisjaW5j
bHVkZSAiUGl4ZWxGb3JtYXQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAg
LTgwLDYgKzgyLDE2IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6ZGVyZWYoKQogICAg
IG1fY2FudmFzLmRlcmVmQ2FudmFzQmFzZSgpOwogfQogCitQaXhlbEZvcm1hdCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0OjpwaXhlbEZvcm1hdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBpeGVsRm9y
bWF0OjpCR1JBODsKK30KKworRGVzdGluYXRpb25Db2xvclNwYWNlIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQ6OmNvbG9yU3BhY2UoKSBjb25zdAoreworICAgIHJldHVybiBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0I7Cit9CisKIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6d291bGRUYWlu
dE9yaWdpbihjb25zdCBDYW52YXNQYXR0ZXJuKiBwYXR0ZXJuKQogewogICAgIGlmIChtX2NhbnZh
cy5vcmlnaW5DbGVhbigpICYmIHBhdHRlcm4gJiYgIXBhdHRlcm4tPm9yaWdpbkNsZWFuKCkpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dC5oCShyZXZpc2lvbiAyNzY4OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDgg
QEAgY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIGNsYXNzIEltYWdlQml0bWFwOwogY2xhc3MgVHlw
ZWRPTUNTU0ltYWdlVmFsdWU7CiBjbGFzcyBXZWJHTE9iamVjdDsKK2VudW0gY2xhc3MgRGVzdGlu
YXRpb25Db2xvclNwYWNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50
OF90OwogCiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IDogcHVibGljIFNjcmlwdFdyYXBw
YWJsZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCk7
CkBAIC04Niw2ICs4OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQcmVwYXJh
dGlvbkZvckRpc3BsYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBwcmVwYXJlRm9yRGlzcGxheSgpIHsgfQogCisgICAgdmlydHVhbCBQaXhlbEZvcm1hdCBwaXhl
bEZvcm1hdCgpIGNvbnN0OworICAgIHZpcnR1YWwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQoQ2FudmFzQmFzZSYpOwogICAgIGJvb2wgd291bGRUYWludE9yaWdpbihjb25zdCBD
YW52YXNQYXR0ZXJuKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZp
bmVkQ29sb3JTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlByZWRlZmluZWRDb2xvclNwYWNlLmgiCisKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGVzdGluYXRpb25Db2xvclNwYWNlIHRvRGVzdGluYXRp
b25Db2xvclNwYWNlKFByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit7CisgICAgc3dp
dGNoIChjb2xvclNwYWNlKSB7CisgICAgY2FzZSBQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQjoK
KyAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKKyNpZiBFTkFCTEUo
REVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICBjYXNlIFByZWRlZmluZWRD
b2xvclNwYWNlOjpEaXNwbGF5UDM6CisgICAgICAgIHJldHVybiBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OkRpc3BsYXlQMzsKKyNlbmRpZgorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0I7Cit9CisKK30KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2Uu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVk
Q29sb3JTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgOiB1aW50OF90
OworCitlbnVtIGNsYXNzIFByZWRlZmluZWRDb2xvclNwYWNlIHsKKyAgICBTUkdCCisjaWYgRU5B
QkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpCisgICAgLCBEaXNwbGF5UDMK
KyNlbmRpZgorfTsKKworRGVzdGluYXRpb25Db2xvclNwYWNlIHRvRGVzdGluYXRpb25Db2xvclNw
YWNlKFByZWRlZmluZWRDb2xvclNwYWNlKTsKKworfQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQcmVkZWZpbmVkQ29sb3JTcGFjZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlByZWRl
ZmluZWRDb2xvclNwYWNlLAorICAgICAgICBXZWJDb3JlOjpQcmVkZWZpbmVkQ29sb3JTcGFjZTo6
U1JHQgorI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAg
ICAgICAsIFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5UDMKKyNlbmRpZgor
ICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBCYXNlZCBv
biB0aGUgcHJvcG9zYWwgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9jYW52YXMtY29sb3It
c3BhY2UvYmxvYi9tYWluL0NhbnZhc0NvbG9yU3BhY2VQcm9wb3NhbC5tZC4KK2VudW0gUHJlZGVm
aW5lZENvbG9yU3BhY2UgeworICAgICJzcmdiIgorI2lmIGRlZmluZWQoRU5BQkxFX0RFU1RJTkFU
SU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpICYmIEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9T
UEFDRV9ESVNQTEFZX1AzCisgICAgLCAiZGlzcGxheS1wMyIKKyNlbmRpZgorfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzY4OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksOSBAQAogCiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQ
RVMpCiAKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIK
KyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNp
bmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427614</attachid>
            <date>2021-05-03 16:38:47 -0700</date>
            <delta_ts>2021-05-03 16:56:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210503163846.patch</filename>
            <type>text/plain</type>
            <size>43268</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIENh
bnZhc0NvbG9yU3BhY2VFbmFibGVkLCB3aGljaCBibG9ja3MKKyAgICAgICAgYWNjZXNzIHRvIHRo
ZSBuZXcgYWJpbGl0eSB0byBzcGVjaWZ5IGNvbG9yIHNwYWNlcyBmb3IgMkQgY2FudmFzLgorCisg
ICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sOgorCiAyMDIxLTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBKU0NPbmx5IGJ1aWxkIHdpdGggcmVjZW50
IGNsYW5nIGFmdGVyIHIyNzY4NzkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShy
ZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwx
OCBAQCBDU1NUeXBlZE9NRW5hYmxlZDoKICAgICAgICJFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSI6IHRydWUKICAgICAgIGRl
ZmF1bHQ6IGZhbHNlCiAKK0NhbnZhc0NvbG9yU3BhY2VFbmFibGVkOgorICB0eXBlOiBib29sCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FudmFzIENvbG9yIFNwYWNlcyIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiRW5hYmxlIHVzZSBvZiBwcmVkZWZpbmVkIGNhbnZhcyBjb2xvciBzcGFj
ZXMiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisKIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2Fw
dHVyZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg0IEBACisyMDIxLTA1LTAzICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkg
c3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nh
bnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mr
Q29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFNldHRpbmdzLmg6CisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nIGJsb2Nr
ZWQgbWVtYmVyIHRvIHRoZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncworICAgICAg
ICBkaWN0aW9uYXJ5IGZvciBzcGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UuIAorCisgICAgICAgICog
aHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICBBZGQgYSBu
ZXcgSURMIGVudW1lcmF0aW9uIHRvIHJlcHJlc2VudCB0aGUgcG9zc2libGUgY29sb3Igc3BhY2Vz
IHN1cHBvcnRlZC4KKyAgICAgICAgRm9yIHBvcnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBEaXNwbGF5
UDMsIHRyeWluZyB0byB1c2UgaXQgd2lsbCByZXN1bHQgaW4gCisgICAgICAgIHR5cGUgZXJyb3Ig
ZnJvbSBKUy4KKworICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgQWRkIGNoZWNr
cyBmb3IgY29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCB0byAyZCBjb250ZXh0IHJlc2V0IG9w
dGltYXRpb24uCisgICAgICAgIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgaW1hZ2UgYnVmZmVyIGlz
IGFsbG9jYXRlZCBwcmlvciB0byB0aGUgY29udGV4dCBiZWluZworICAgICAgICByZXF1ZXN0ZWQg
KHN1Y2ggYXMgdmlhIGNhbnZhcy50b0RhdGFVUkwoKSBvciBjYW52YXMudG9CbG9iKCkpLgorCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29u
c3QpOgorICAgICAgICBQYXNzIHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3Jt
YXQgKHRob3VnaAorICAgICAgICB0aGUgbGF0ZXIgaXMgYWx3YXlzIEJHUkE4IGF0IHRoZSBtb21l
bnQpIHRvIHRoZSBJbWFnZUJ1ZmZlcgorICAgICAgICBjcmVhdGUgZnVuY3Rpb24gdG8gbWFrZSBh
IGJhY2tpbmcgc3RvcmUgaW4gdGhlIHJpZ2h0IGZvcm1hdC4KKworICAgICAgICAqIGh0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpj
cmVhdGVCdWZmZXJGb3JQYWludGluZyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9F
bGVtZW50Lmg6CisgICAgICAgIFBhc3MgY29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCB0aHJv
dWdoIHRvIGVuc3VyZSB0aGUgaGVscGVyCisgICAgICAgIGJ1ZmZlciBtYXRjaGVzIHRoZSBjb3Jy
ZWN0IGNvbG9yIHNwYWNlLgorCisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgIFBhc3Mg
dGhlIGV4aXN0aW5nIGRlZmF1bHRzIHRvIEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZv
clBhaW50aW5nLgorICAgICAgICBJbiB0aGUgZnV0dXJlLCBJbWFnZUJpdG1hcCB3aWxsIGFsc28g
Z2FpbiBjb2xvciBzcGFjZSBhbmQgcGl4ZWwKKyAgICAgICAgZm9ybWF0IHNwZWNpZmljaXR5IGFu
ZCB0aGlzIHdpbGwgYmUgdXBkYXRlZC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDo6cGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICBBZGQgdmlydHVhbCBiYXNlIGltcGxlbWVu
dGF0aW9ucyBvZiBjb2xvclNwYWNlIGFuZCBwaXhlbEZvcm1hdAorICAgICAgICB3aGljaCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQgY2FuIG92ZXJyaWRlIHRvIHJldHVybiB0aGUKKyAgICAgICAg
dmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mu
CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250UHJveHkgY29uc3QpOgor
ICAgICAgICBGaXggaW5jb3JyZWN0IGZvcm1hdHRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjb2xvclNwYWNlIGNvbnN0KToKKyAgICAg
ICAgQWRkIG92ZXJyaWRlcywgcmV0dXJuIG1fc2V0dGluZ3MuY29sb3JTcGFjZSBmb3IgY29sb3JT
cGFjZS4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmNyZWF0ZUNvbXBvc2l0aW5nQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd1RleHRVbmNoZWNrZWQpOgorICAgICAg
ICBQYXNzIGFsb25nIHRoZSBjb2xvclNwYWNlIGFuZCBwaXhlbEZvcm1hdCB3aGVuIGNyZWF0aW5n
IGJ1ZmZlcnMuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50LmNwcDoKKyAgICAgICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMgdGhhdCBhcmUgbm93IG5l
ZWRlZC4KKwogMjAyMS0wNS0wMyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU11bRkNSXSBNaXNzaW5nIGZpbGwgY29sb3Igb24gc2xpZGVyIHRpY2tz
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNTIsNiArMTA1Miw3IEBA
IHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0
dGVybi5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZWN0LmlkbAogICAgIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKKyAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncytDb2xvclNwYWNlLmlkbAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAogICAgIGh0bWwvY2FudmFzL0NhbnZh
c1NoYWRvd1N0eWxlcy5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdGF0ZS5pZGwKQEAgLTEw
NjcsNiArMTA2OCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9j
YW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2Fu
dmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhdGgyRC5p
ZGwKKyAgICBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwKIAogICAgIGh0bWwv
dHJhY2svQXVkaW9UcmFjay5pZGwKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDY1LDYgKzEwNjUsNyBAQCAkKFBST0pF
Q1RfRElSKS9odG1sL2NhbnZhcy9DYW52YXNQYXRoRHJhCiAkKFBST0pFQ1RfRElSKS9odG1sL2Nh
bnZhcy9DYW52YXNQYXR0ZXJuLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQ2FudmFz
UmVjdC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzK0NvbG9yU3BhY2UuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
Y2FudmFzL0NhbnZhc1NoYWRvd1N0eWxlcy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFz
L0NhbnZhc1N0YXRlLmlkbApAQCAtMTA5OCw2ICsxMDk5LDcgQEAgJChQUk9KRUNUX0RJUikvaHRt
bC9jYW52YXMvT0VTVmVydGV4QXJyYQogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52
YXMvUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZh
cy9QYXRoMkQuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JT
cGFjZS5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAy
NzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAkod29ya2luZyBjb3B5KQpAQCAtMzYxLDYgKzM2MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ2FudmFzUmVjdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MrQ29sb3JTcGFjZS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MrQ29sb3JTcGFjZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRTZXR0aW5ncy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0NhbnZhc1NoYWRvd1N0eWxlcy5jcHAKQEAgLTE2NDIsNiArMTY0NCw4IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUG9zaXRpb25PcHRpb25zLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUG9zdE1lc3NhZ2VPcHRp
b25zLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQ
b3N0TWVzc2FnZU9wdGlvbnMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1Byb2dyZXNzRXZlbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTkyNiw2ICs5MjYsNyBAQCBKU19CSU5ESU5H
X0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5pZGwg
XAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFzUmVjdC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBcCisgICAgJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncytDb2xv
clNwYWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRTZXR0aW5ncy5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFz
U2hhZG93U3R5bGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNTdGF0
ZS5pZGwgXApAQCAtOTU5LDYgKzk2MCw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlk
bCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9QYXRoMkQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjc2
OTI5KQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEz
NDQsNiArMTM0NCw3IEBAIGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnQK
IGh0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmNwcAogaHRtbC9jYW52YXMvUGF0
aDJELmNwcAogaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAoraHRt
bC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcAogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiBodG1sL2NhbnZh
cy9XZWJHTENvbG9yQnVmZmVyRmxvYXQuY3BwCkBAIC0zMzY3LDYgKzMzNjgsNyBAQCBKU1Bvc2l0
aW9uQ2FsbGJhY2suY3BwCiBKU1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAKIEpTUG9zaXRpb25P
cHRpb25zLmNwcAogSlNQb3N0TWVzc2FnZU9wdGlvbnMuY3BwCitKU1ByZWRlZmluZWRDb2xvclNw
YWNlLmNwcAogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCiBKU1Byb2dyZXNzRXZlbnQuY3Bw
CiBKU1Byb21pc2VSZWplY3Rpb25FdmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3NjkyOSkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTQzMTUsNiArMTQzMTUsMTAgQEAKIAkJQkNBMzc4QkEwRDE1RjY0MjAwQjc5
M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTY2hlZHVsZWRBY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjaGVkdWxlZEFjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0E1NTkxMjI2M0RCRDc5MDA3RjE5QjMgLyogUGl4ZWxGb3JtYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGl4ZWxGb3JtYXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBNTU5MUEyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRl
ZmluZWRDb2xvclNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQTU1OTFDMjYzRjEwQjkwMDdGMTlCMyAv
KiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E1NTkxRDI2M0YxMEI5MDA3RjE5QjMg
LyogUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJlZGVmaW5l
ZENvbG9yU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E1NTkxRjI2
M0YxMEYxMDA3RjE5QjMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MrQ29sb3JT
cGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9yU3Bh
Y2UuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFMzYwRDdDREM0RTAw
MzQyMUE4IC8qIERhdGFUcmFuc2Zlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRy
YW5zZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEQwRDdDRTFF
OTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNBODNFNEUwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDEwMCw2ICsyMDEwNCw3IEBACiAJCQkJMzE0MEM1MjIxRkRG
MzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCAqLywKIAkJCQlC
Q0UwNDkwQzI2M0EyRjFDMDA5RENCQjggLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGlu
Z3MuaCAqLywKIAkJCQlCQ0UwNDkwRTI2M0EyRjFDMDA5RENCQjggLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEU2V0dGluZ3MuaWRsICovLAorCQkJCUJDQTU1OTFGMjYzRjEwRjEwMDdGMTlCMyAv
KiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncytDb2xvclNwYWNlLmlkbCAqLywKIAkJ
CQk3QzE5M0JBRDFGNUUwRUIzMDA4OEYzRTYgLyogQ2FudmFzU2hhZG93U3R5bGVzLmlkbCAqLywK
IAkJCQk3QzE5M0JCMjFGNUUwRUI2MDA4OEYzRTYgLyogQ2FudmFzU3RhdGUuaWRsICovLAogCQkJ
CTQ5NDg0RkJGMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNTdHlsZS5jcHAgKi8sCkBAIC0yMDE4
Niw2ICsyMDE5MSw5IEBACiAJCQkJN0MxOTNCQjQxRjVFMEVCNzAwODhGM0U2IC8qIFBhdGgyRC5p
ZGwgKi8sCiAJCQkJN0M3OTAzQkExRjg2RkYzMzAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcwIC8qIFBsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCUJDQTU1OTFEMjYzRjEwQjkwMDdGMTlC
MyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAgKi8sCisJCQkJQkNBNTU5MUEyNjNGMTBCOTAw
N0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmggKi8sCisJCQkJQkNBNTU5MUMyNjNGMTBC
OTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmlkbCAqLywKIAkJCQlEM0YzRDM1QjFB
NjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJRDNG
M0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJ
CQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2
aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVt
ZW50OjpyZXNldCgpCiAgICAgSW50U2l6ZSBuZXdTaXplKHcsIGgpOwogICAgIC8vIElmIHRoZSBz
aXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBjbGVhciBpdCBp
bnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9wdGltaXphdGlvbiBpcyBvbmx5
IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYgKG1faGFzQ3JlYXRlZEltYWdl
QnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5p
czJkKCkpIHsKKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xkU2l6ZSA9PSBu
ZXdTaXplICYmIG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQoKSAmJiBtX2NvbnRleHQtPmNv
bG9yU3BhY2UoKSA9PSBidWZmZXIoKS0+Y29sb3JTcGFjZSgpICYmIG1fY29udGV4dC0+cGl4ZWxG
b3JtYXQoKSA9PSBidWZmZXIoKS0+cGl4ZWxGb3JtYXQoKSkgewogICAgICAgICBpZiAoIW1fZGlk
Q2xlYXJJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIGNsZWFySW1hZ2VCdWZmZXIoKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtOTQzLDcgKzk0MywxNSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVJbWFnZUJ1ZmZlCiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0
ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpV
bmFjY2VsZXJhdGVkOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBmb3IgRGlzcGxh
eUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCiAgICAgYXV0byB1c2VEaXNwbGF5TGlzdCA9IG1fdXNl
c0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5kaXNwbGF5
TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6IFNob3Vs
ZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBv
c2U6OkNhbnZhcywgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6
QkdSQTgsIGhvc3RXaW5kb3cpKTsKKworICAgIGF1dG8gW2NvbG9yU3BhY2UsIHBpeGVsRm9ybWF0
XSA9IFsmXSB7CisgICAgICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpwYWlyIHsgbV9jb250ZXh0LT5jb2xvclNwYWNlKCksIG1fY29udGV4dC0+cGl4ZWxGb3JtYXQo
KSB9OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpwYWlyIHsgRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQSB9OworICAgIH0oKTsKKwor
ICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJpbmdN
b2RlLCB1c2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCAxLCBjb2xvclNw
YWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdykpOwogCiAgICAgaWYgKGJ1ZmZlcigpICYmIGJ1
ZmZlcigpLT5kcmF3aW5nQ29udGV4dCgpKQogICAgICAgICBidWZmZXIoKS0+ZHJhd2luZ0NvbnRl
eHQoKS0+c2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkobV90cmFja3NEaXNwbGF5TGlzdFJlcGxh
eSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlz
aW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4MSwxMSArMjgxLDExIEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVu
dDo6bWVkaWFQbGF5ZXJGaXJzdFYKICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50
KCk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlQnVm
ZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+IEhUTUxWaWRlb0VsZW1lbnQ6OmNy
ZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUGl4ZWxG
b3JtYXQgcGl4ZWxGb3JtYXQpIGNvbnN0CiB7CiAgICAgYXV0byogaG9zdFdpbmRvdyA9IGRvY3Vt
ZW50KCkudmlldygpICYmIGRvY3VtZW50KCkudmlldygpLT5yb290KCkgPyBkb2N1bWVudCgpLnZp
ZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkgOiBudWxscHRyOwogICAgIGF1dG8gc2hvdWxkVXNl
RGlzcGxheUxpc3QgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3REcmF3aW5nRW5h
YmxlZCgpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6IFNob3VsZFVzZURpc3BsYXlMaXN0
OjpObzsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2Rl
LCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQYWludGluZywg
MSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgsIGhvc3RX
aW5kb3cpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01v
ZGUsIHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlOjpNZWRpYVBhaW50aW5n
LCAxLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiB9CiAKIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4
IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXI7CiAKK2VudW0gY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlIDog
dWludDhfdDsKK2VudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBS
ZW5kZXJpbmdNb2RlIDogYm9vbDsKIAogY2xhc3MgSFRNTFZpZGVvRWxlbWVudCBmaW5hbCA6IHB1
YmxpYyBIVE1MTWVkaWFFbGVtZW50LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8SFRNTFZpZGVvRWxl
bWVudD4gewpAQCAtNzAsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXRSZXF1ZXN0
RnVsbHNjcmVlbigpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IGNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUp
IGNvbnN0OworICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQnVmZmVyRm9yUGFpbnRpbmco
Y29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25Db2xvclNwYWNlLCBQ
aXhlbEZvcm1hdCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IGNhbnZhcyB0byBnYWluIHJhdyBw
aXhlbCBhY2Nlc3MKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUJpdG1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDIsNyArNTAyLDkgQEAgdm9pZCBJbWFnZUJp
dG1hcDo6Y3JlYXRlUHJvbWlzZShTY3JpcHRFeAogICAgIGF1dG8gc291cmNlUmVjdGFuZ2xlID0g
bWF5YmVTb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAgICBhdXRvIG91
dHB1dFNpemUgPSBvdXRwdXRTaXplRm9yU291cmNlUmVjdGFuZ2xlKHNvdXJjZVJlY3RhbmdsZSwg
b3B0aW9ucyk7Ci0gICAgYXV0byBiaXRtYXBEYXRhID0gdmlkZW8tPmNyZWF0ZUJ1ZmZlckZvclBh
aW50aW5nKG91dHB1dFNpemUsIGJ1ZmZlclJlbmRlcmluZ01vZGUpOworCisgICAgLy8gRklYTUU6
IEFkZCBzdXBwb3J0IGZvciBjb2xvciBzcGFjZXMgLyBwaXhlbCBmb3JtYXRzIHRvIEltYWdlQml0
bWFwLgorICAgIGF1dG8gYml0bWFwRGF0YSA9IHZpZGVvLT5jcmVhdGVCdWZmZXJGb3JQYWludGlu
ZyhvdXRwdXRTaXplLCBidWZmZXJSZW5kZXJpbmdNb2RlLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OlNSR0IsIFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAgICAgaWYgKCFiaXRtYXBEYXRhKSB7CiAgICAg
ICAgIHJlc29sdmVXaXRoQmxhbmtJbWFnZUJ1ZmZlcihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAh
dGFpbnRzT3JpZ2luKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSwgKnZp
ZGVvKSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTIgKzM3LDE0
IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
UGFyc2VySGVscGVycy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyV29ya2VyU2FmZS5o
IgorI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1
ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSAiUGF0aDJELmgiCisjaW5jbHVkZSAiUGl4ZWxGb3JtYXQuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0yMTEsNyArMjEzLDggQEAgUmVmPFRleHRNZXRyaWNzPiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MgogICAgIHJldHVybiBtZWFzdXJlVGV4dEludGVybmFsKHRl
eHRSdW4pOwogfQogCi1hdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udFByb3h5KCkg
LT4gY29uc3QgRm9udFByb3h5KiB7CithdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9u
dFByb3h5KCkgLT4gY29uc3QgRm9udFByb3h5KgorewogICAgIC8vIEludGVudGlvbmFsbHkgZG9u
J3QgdXBkYXRlIHN0eWxlIGhlcmUsIGJlY2F1c2UgdXBkYXRpbmcgc3R5bGUgY2FuIGNhdXNlIEpT
IHRvIHJ1biBzeW5jaHJvbm91c2x5LgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGlu
IHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZywgYW5kIHJ1bm5pbmcgYXJiaXRyYXJ5IEpTIGluIHRo
ZSBtaWRkbGUgb2YgcHJvY2Vzc2luZyBjYW4gY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvci4KICAg
ICAvLyBJbnN0ZWFkLCB0aGUgcmVsZXZhbnQgY2FudmFzIGVudHJ5IHBvaW50cyB1cGRhdGUgc3R5
bGUgb25jZSB3aGVuIHRoZXkgYmVnaW4gcnVubmluZywgYW5kIHdlIHdvbid0IHRvdWNoIHRoZSBz
dHlsZSBhZnRlciB0aGF0LgpAQCAtMjQzLDQgKzI0NiwxNSBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJCiAgICAgZHJhd1RleHRVbmNoZWNrZWQodGV4dFJ1biwgeCwg
eSwgZmlsbCwgbWF4V2lkdGgpOwogfQogCitQaXhlbEZvcm1hdCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnBpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGFrZSBtX3NldHRp
bmdzLmFscGhhIGludG8gYWNjb3VudCBoZXJlIGFuZCBhZGQgUGl4ZWxGb3JtYXQ6OkJHUlg4Lgor
ICAgIHJldHVybiBQaXhlbEZvcm1hdDo6QkdSQTg7Cit9CisKK0Rlc3RpbmF0aW9uQ29sb3JTcGFj
ZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNvbG9yU3BhY2UoKSBjb25zdAoreworICAgIHJl
dHVybiB0b0Rlc3RpbmF0aW9uQ29sb3JTcGFjZShtX3NldHRpbmdzLmNvbG9yU3BhY2UpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAkocmV2aXNpb24gMjc2OTI5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
aXMyZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBjb25zdCBGb250UHJveHkq
IGZvbnRQcm94eSgpIGZpbmFsOworICAgIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkgY29uc3Qg
ZmluYWw7CisgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCBmaW5h
bDsKKwogICAgIHZvaWQgc2V0Rm9udFdpdGhvdXRVcGRhdGluZ1N0eWxlKGNvbnN0IFN0cmluZyYp
OwogCiAgICAgdm9pZCBkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQg
eCwgZmxvYXQgeSwgYm9vbCBmaWxsLCBPcHRpb25hbDxmbG9hdD4gbWF4V2lkdGggPSBXVEY6Om51
bGxvcHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHJldmlzaW9uIDI3NjkyOSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIHJlcGFpbnRFbnRpcmVDYW52YXMgPSB0
cnVlOwogICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0gQ29tcG9zaXRl
T3BlcmF0b3I6OkNvcHkpIHsKICAgICAgICAgaWYgKCZzb3VyY2VDYW52YXMgPT0gJmNhbnZhc0Jh
c2UoKSkgewotICAgICAgICAgICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29weVJlY3RUb0J1
ZmZlcihzcmNSZWN0LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsICpjKSkgeworICAgICAg
ICAgICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihzcmNSZWN0LCBj
b2xvclNwYWNlKCksICpjKSkgewogICAgICAgICAgICAgICAgIGNsZWFyQ2FudmFzKCk7CiAgICAg
ICAgICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpjb3B5LCBkc3RSZWN0LCB7IHsgfSwgc3Jj
UmVjdC5zaXplKCkgfSwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxC
bGVuZCB9KTsKICAgICAgICAgICAgIH0KQEAgLTE4MjksNyArMTgyOSw3IEBAIHRlbXBsYXRlPGNs
YXNzIFQ+IEludFJlY3QgQ2FudmFzUmVuZGVyaW4KIAogUmVmUHRyPEltYWdlQnVmZmVyPiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihjb25zdCBJ
bnRSZWN0JiBidWZmZXJSZWN0KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1
ZmZlclJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJhdGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVy
YXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIERlc3RpbmF0aW9uQ29sb3JT
cGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwgaXNBY2NlbGVyYXRlZCgpID8gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBjb2xvclNw
YWNlKCksIHBpeGVsRm9ybWF0KCkpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OmNvbXBvc2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0
JiBidWZmZXJSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTIwMjYsNyArMjAyNiw3IEBA
IEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gQ2FudmEKICNlbmRpZgogCiAgICAg
YXV0byByZW5kZXJpbmdNb2RlID0gIWRyYXdpbmdDb250ZXh0KCkgfHwgZHJhd2luZ0NvbnRleHQo
KS0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDog
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gdmlk
ZW9FbGVtZW50LmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKHNpemUodmlkZW9FbGVtZW50KSwgcmVu
ZGVyaW5nTW9kZSk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IHZpZGVvRWxlbWVudC5jcmVhdGVC
dWZmZXJGb3JQYWludGluZyhzaXplKHZpZGVvRWxlbWVudCksIHJlbmRlcmluZ01vZGUsIGNvbG9y
U3BhY2UoKSwgcGl4ZWxGb3JtYXQoKSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKQEAgLTI0OTAsNyArMjQ5MCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZTo6ZHJhd1QKICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIAotICAg
ICAgICBpZiAoYy0+Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKG1hc2tSZWN0LCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IsIFdURk1vdmUocGFpbnRNYXNrSW1hZ2UpKSA9PSBHcmFwaGljc0NvbnRl
eHQ6OkNsaXBUb0RyYXdpbmdDb21tYW5kc1Jlc3VsdDo6RmFpbGVkVG9DcmVhdGVJbWFnZUJ1ZmZl
cikKKyAgICAgICAgaWYgKGMtPmNsaXBUb0RyYXdpbmdDb21tYW5kcyhtYXNrUmVjdCwgY29sb3JT
cGFjZSgpLCBXVEZNb3ZlKHBhaW50TWFza0ltYWdlKSkgPT0gR3JhcGhpY3NDb250ZXh0OjpDbGlw
VG9EcmF3aW5nQ29tbWFuZHNSZXN1bHQ6OkZhaWxlZFRvQ3JlYXRlSW1hZ2VCdWZmZXIpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENvbG9yKCpjKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzK0NvbG9yU3BhY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9yU3BhY2UuaWRs
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFNldHRpbmdzK0NvbG9yU3BhY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBCYXNlZCBvbiB0aGUgcHJvcG9zYWwgZnJvbSBo
dHRwczovL2dpdGh1Yi5jb20vV0lDRy9jYW52YXMtY29sb3Itc3BhY2UvYmxvYi9tYWluL0NhbnZh
c0NvbG9yU3BhY2VQcm9wb3NhbC5tZC4KK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPUNhbnZhc0Nv
bG9yU3BhY2UKK10gcGFydGlhbCBkaWN0aW9uYXJ5IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNl
dHRpbmdzIHsKKyAgICBQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gInNyZ2IiOwor
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaAkocmV2aXNpb24gMjc2OTI5KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGlu
Z3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiUHJlZGVmaW5lZENvbG9yU3BhY2UuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MgewogICAgIGJvb2wg
ZGVzeW5jaHJvbml6ZWQgeyBmYWxzZSB9OworICAgIFByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9y
U3BhY2UgeyBQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQiB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI4LDExICsyOCwxMyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRl
ICJDYW52YXNQYXR0ZXJuLmgiCisjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkhU
TUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIklt
YWdlQml0bWFwLmgiCisjaW5jbHVkZSAiUGl4ZWxGb3JtYXQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KQEAgLTgwLDYgKzgyLDE2IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDo6ZGVyZWYoKQogICAgIG1fY2FudmFzLmRlcmVmQ2FudmFzQmFzZSgpOwogfQogCitQaXhl
bEZvcm1hdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpwaXhlbEZvcm1hdCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFBpeGVsRm9ybWF0OjpCR1JBODsKK30KKworRGVzdGluYXRpb25Db2xvclNwYWNl
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OmNvbG9yU3BhY2UoKSBjb25zdAoreworICAgIHJldHVy
biBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0I7Cit9CisKIGJvb2wgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDo6d291bGRUYWludE9yaWdpbihjb25zdCBDYW52YXNQYXR0ZXJuKiBwYXR0ZXJuKQog
ewogICAgIGlmIChtX2NhbnZhcy5vcmlnaW5DbGVhbigpICYmIHBhdHRlcm4gJiYgIXBhdHRlcm4t
Pm9yaWdpbkNsZWFuKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDYgKzQyLDggQEAgY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIGNsYXNzIEltYWdl
Qml0bWFwOwogY2xhc3MgVHlwZWRPTUNTU0ltYWdlVmFsdWU7CiBjbGFzcyBXZWJHTE9iamVjdDsK
K2VudW0gY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlIDogdWludDhfdDsKK2VudW0gY2xhc3Mg
UGl4ZWxGb3JtYXQgOiB1aW50OF90OwogCiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IDog
cHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCk7CkBAIC04Niw2ICs4OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgbmVlZHNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIHsgfQogCisgICAgdmlydHVh
bCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCgpIGNvbnN0OworICAgIHZpcnR1YWwgRGVzdGluYXRp
b25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxp
Y2l0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYpOwogICAgIGJvb2wgd291bGRU
YWludE9yaWdpbihjb25zdCBDYW52YXNQYXR0ZXJuKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZWRlZmluZWRDb2xvclNwYWNlLmgiCisKKyNpbmNsdWRl
ICJDb2xvclNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGVzdGluYXRpb25Db2xv
clNwYWNlIHRvRGVzdGluYXRpb25Db2xvclNwYWNlKFByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9y
U3BhY2UpCit7CisgICAgc3dpdGNoIChjb2xvclNwYWNlKSB7CisgICAgY2FzZSBQcmVkZWZpbmVk
Q29sb3JTcGFjZTo6U1JHQjoKKyAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
U1JHQjsKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAg
ICBjYXNlIFByZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5UDM6CisgICAgICAgIHJldHVybiBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkRpc3BsYXlQMzsKKyNlbmRpZgorICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0I7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRD
b2xvclNwYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJl
ZGVmaW5lZENvbG9yU3BhY2UuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgOiB1aW50OF90OworCitlbnVtIGNsYXNzIFByZWRlZmluZWRDb2xvclNwYWNlIHsK
KyAgICBTUkdCCisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMp
CisgICAgLCBEaXNwbGF5UDMKKyNlbmRpZgorfTsKKworRGVzdGluYXRpb25Db2xvclNwYWNlIHRv
RGVzdGluYXRpb25Db2xvclNwYWNlKFByZWRlZmluZWRDb2xvclNwYWNlKTsKKworfQorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQcmVk
ZWZpbmVkQ29sb3JTcGFjZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlLAorICAgICAgICBXZWJDb3JlOjpQcmVk
ZWZpbmVkQ29sb3JTcGFjZTo6U1JHQgorI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFD
RV9ESVNQTEFZX1AzKQorICAgICAgICAsIFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpE
aXNwbGF5UDMKKyNlbmRpZgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFj
ZS5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvLyBCYXNlZCBvbiB0aGUgcHJvcG9zYWwgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v
V0lDRy9jYW52YXMtY29sb3Itc3BhY2UvYmxvYi9tYWluL0NhbnZhc0NvbG9yU3BhY2VQcm9wb3Nh
bC5tZC4KK2VudW0gUHJlZGVmaW5lZENvbG9yU3BhY2UgeworICAgICJzcmdiIgorI2lmIGRlZmlu
ZWQoRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpICYmIEVOQUJMRV9E
RVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzCisgICAgLCAiZGlzcGxheS1wMyIKKyNl
bmRpZgorfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzY5MjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOSBAQAogCiAjaWYgRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAi
UmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzY5MjkpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNS0w
MyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHByZWxpbWlu
YXJ5IHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYSBjb2xvciBzcGFjZSBmb3IgMkQgY2FudmFzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUyODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMg
dGVzdHMgZm9yIGNvbG9yIHNwYWNlIGluIGNhbnZhcyBzdXBwb3J0LgorCisgICAgICAgICogZmFz
dC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNh
YmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mt
Y29sb3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1lbmFibGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1k
aXNwbGF5LXAzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2Nh
bnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA1LTAzICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyNzQ0NjEpOiBbbWFjT1Mgd2sxXSBmYXN0L3JlcGFpbnQvY2FudmFzLW9iamVjdC1maXQu
aHRtbCBpcyBmbGFrZXkgdGV4dCBmYWlsaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVt
YmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGlzIHVuc3VwcG9ydGVkIHdo
ZW4gQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIGlzIHVuZGVmaW5lZC4KK1BB
U1MgdGVzdFNldHRpbmdzLmNvbG9yU3BhY2UgaXMgdW5kZWZpbmVkLgorUEFTUyB0ZXN0U2V0dGlu
Z3MuY29sb3JTcGFjZSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1j
b2xvclNwYWNlLWRpc2FibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYW52YXNDb2xvclNwYWNlRW5hYmxlZD1mYWxzZSBd
IC0tPgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEU2V0dGluZ3MgaXMgdW5zdXBwb3J0ZWQgd2hlbiBDYW52YXNDb2xvclNwYWNlRW5hYmxl
ZD1mYWxzZS4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlVW5zdXBwb3J0ZWQoc2V0
dGluZ3MsIGV4cGVjdGVkQ29sb3JTcGFjZSkgeworICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFz
LmdldENvbnRleHQoIjJkIiwgc2V0dGluZ3MpOworICAgICAgICB3aW5kb3cudGVzdFNldHRpbmdz
ID0gY29udGV4dC5nZXRDb250ZXh0QXR0cmlidXRlcygpOworICAgICAgICBzaG91bGRCZVVuZGVm
aW5lZCgidGVzdFNldHRpbmdzLmNvbG9yU3BhY2UiKTsKKyAgICB9CisKKyAgICB0ZXN0Q29sb3JT
cGFjZVVuc3VwcG9ydGVkKHVuZGVmaW5lZCk7CisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBvcnRl
ZCh7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKKyAgICB0ZXN0Q29sb3JTcGFjZVVuc3VwcG9ydGVk
KHsgY29sb3JTcGFjZTogImZvbyIgfSk7Cis8L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mt
Y29sb3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNw
YWNlLWVuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MgaXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgdGVzdFNldHRp
bmdzLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNh
bnZhcyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAiZm9vIiB9KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNv
bG9yU3BhY2UtZW5hYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKzxo
dG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNl
dHRpbmdzIGlzIHN1cHBvcnRlZC4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlKHNl
dHRpbmdzLCBleHBlY3RlZENvbG9yU3BhY2UpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZh
cy5nZXRDb250ZXh0KCIyZCIsIHNldHRpbmdzKTsKKyAgICAgICAgd2luZG93LnRlc3RTZXR0aW5n
cyA9IGNvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSIsICJzcmdiIik7CisgICAgfQorCisg
ICAgLy8gVGVzdCBkZWZhdWx0IHZhbHVlIG9mIGNvbG9yU3BhY2UgaXMgInNyZ2IiLgorICAgIHRl
c3RDb2xvclNwYWNlKHVuZGVmaW5lZCwgInNyZ2IiKTsKKworICAgIC8vIFRlc3Qgc2V0dGluZyBj
b2xvclNwYWNlIHRvICJzcmdiIiB3b3Jrcy4KKyAgICB0ZXN0Q29sb3JTcGFjZSh7IGNvbG9yU3Bh
Y2U6ICJzcmdiIiB9LCAic3JnYiIpOworCisgICAgLy8gVGVzdCBzZXR0aW5nIGNvbG9yU3BhY2Ug
dG8gYW4gdW5zdXBwb3J0ZWQgdmFsdWUuCisgICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoYGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNl
OiAiZm9vIiB9KWAsICJUeXBlRXJyb3IiKQorPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlz
cGxheS1wMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3Bs
YXktcDMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKzxzdHls
ZT4KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAg
PHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJlbG93IGxvb2tzIHRvIGJlIGFsbCBv
bmUgY29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4gPC9kaXY+Cis8L2JvZHk+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1z
cGFjZS1kaXNwbGF5LXAzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE3IEBACis8c3R5bGU+CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6ICMw
MDk5MDA7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJl
bG93IGxvb2tzIHRvIGJlIGFsbCBvbmUgY29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4g
PC9kaXY+CisgICAgPGNhbnZhcyBpZD0idGVzdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCI+PC9j
YW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRl
eHQoIjJkIiwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7CisKKyAgICAgICAgY29udGV4
dC5iZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5yZWN0KDAsIDAsIDEwMCwgNTApOworICAg
ICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICJjb2xvcihkaXNwbGF5LXAzIDAuMjYzNzQgMC41OTA4
NSAwLjE2NDM0KSI7CisgICAgICAgIGNvbnRleHQuZmlsbCgpOworICAgIDwvc2NyaXB0PgorPC9i
b2R5Pgo=
</data>
<flag name="commit-queue"
          id="448280"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427615</attachid>
            <date>2021-05-03 16:43:38 -0700</date>
            <delta_ts>2021-05-03 16:45:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210503164338.patch</filename>
            <type>text/plain</type>
            <size>39047</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIENh
bnZhc0NvbG9yU3BhY2VFbmFibGVkLCB3aGljaCBibG9ja3MKKyAgICAgICAgYWNjZXNzIHRvIHRo
ZSBuZXcgYWJpbGl0eSB0byBzcGVjaWZ5IGNvbG9yIHNwYWNlcyBmb3IgMkQgY2FudmFzLgorCisg
ICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sOgorCiAyMDIxLTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBKU0NPbmx5IGJ1aWxkIHdpdGggcmVjZW50
IGNsYW5nIGFmdGVyIHIyNzY4NzkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShy
ZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwx
OCBAQCBDU1NUeXBlZE9NRW5hYmxlZDoKICAgICAgICJFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSI6IHRydWUKICAgICAgIGRl
ZmF1bHQ6IGZhbHNlCiAKK0NhbnZhc0NvbG9yU3BhY2VFbmFibGVkOgorICB0eXBlOiBib29sCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FudmFzIENvbG9yIFNwYWNlcyIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiRW5hYmxlIHVzZSBvZiBwcmVkZWZpbmVkIGNhbnZhcyBjb2xvciBzcGFj
ZXMiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisKIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2Fw
dHVyZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg0IEBACisyMDIxLTA1LTAzICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkg
c3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nh
bnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mu
aWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzLmg6CisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nIGJsb2NrZWQgbWVtYmVyIHRvIHRoZSBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncworICAgICAgICBkaWN0aW9uYXJ5IGZvciBz
cGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UuIAorCisgICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZp
bmVkQ29sb3JTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVk
Q29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgSURMIGVudW1lcmF0aW9u
IHRvIHJlcHJlc2VudCB0aGUgcG9zc2libGUgY29sb3Igc3BhY2VzIHN1cHBvcnRlZC4KKyAgICAg
ICAgRm9yIHBvcnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBEaXNwbGF5UDMsIHRyeWluZyB0byB1c2Ug
aXQgd2lsbCByZXN1bHQgaW4gCisgICAgICAgIHR5cGUgZXJyb3IgZnJvbSBKUy4KKworICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgQWRkIGNoZWNrcyBmb3IgY29sb3Igc3BhY2Ug
YW5kIHBpeGVsIGZvcm1hdCB0byAyZCBjb250ZXh0IHJlc2V0IG9wdGltYXRpb24uCisgICAgICAg
IFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgaW1hZ2UgYnVmZmVyIGlzIGFsbG9jYXRlZCBwcmlvciB0
byB0aGUgY29udGV4dCBiZWluZworICAgICAgICByZXF1ZXN0ZWQgKHN1Y2ggYXMgdmlhIGNhbnZh
cy50b0RhdGFVUkwoKSBvciBjYW52YXMudG9CbG9iKCkpLgorCisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICBQYXNz
IHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3JtYXQgKHRob3VnaAorICAgICAg
ICB0aGUgbGF0ZXIgaXMgYWx3YXlzIEJHUkE4IGF0IHRoZSBtb21lbnQpIHRvIHRoZSBJbWFnZUJ1
ZmZlcgorICAgICAgICBjcmVhdGUgZnVuY3Rpb24gdG8gbWFrZSBhIGJhY2tpbmcgc3RvcmUgaW4g
dGhlIHJpZ2h0IGZvcm1hdC4KKworICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWlu
dGluZyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAg
IFBhc3MgY29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCB0aHJvdWdoIHRvIGVuc3VyZSB0aGUg
aGVscGVyCisgICAgICAgIGJ1ZmZlciBtYXRjaGVzIHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlLgor
CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgIFBhc3MgdGhlIGV4aXN0aW5nIGRlZmF1
bHRzIHRvIEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nLgorICAgICAg
ICBJbiB0aGUgZnV0dXJlLCBJbWFnZUJpdG1hcCB3aWxsIGFsc28gZ2FpbiBjb2xvciBzcGFjZSBh
bmQgcGl4ZWwKKyAgICAgICAgZm9ybWF0IHNwZWNpZmljaXR5IGFuZCB0aGlzIHdpbGwgYmUgdXBk
YXRlZC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6cGl4ZWxGb3JtYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6Y29sb3JT
cGFjZSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oOgorICAgICAgICBBZGQgdmlydHVhbCBiYXNlIGltcGxlbWVudGF0aW9ucyBvZiBjb2xvclNw
YWNlIGFuZCBwaXhlbEZvcm1hdAorICAgICAgICB3aGljaCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgY2FuIG92ZXJyaWRlIHRvIHJldHVybiB0aGUKKyAgICAgICAgdmFsdWVzIHNwZWNpZmllZCBp
biB0aGUgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmb250UHJveHkgY29uc3QpOgorICAgICAgICBGaXggaW5jb3Jy
ZWN0IGZvcm1hdHRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6cGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb2xvclNwYWNlIGNvbnN0KToKKyAgICAgICAgQWRkIG92ZXJyaWRlcywg
cmV0dXJuIG1fc2V0dGluZ3MuY29sb3JTcGFjZSBmb3IgY29sb3JTcGFjZS4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNvbXBvc2l0
aW5nQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmNyZWF0ZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6ZHJhd1RleHRVbmNoZWNrZWQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBj
b2xvclNwYWNlIGFuZCBwaXhlbEZvcm1hdCB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMuCisKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAg
ICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMgdGhhdCBhcmUgbm93IG5lZWRlZC4KKwogMjAyMS0wNS0w
MyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11b
RkNSXSBNaXNzaW5nIGZpbGwgY29sb3Igb24gc2xpZGVyIHRpY2tzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIHNldChXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlkbAog
ICAgIGh0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyAgICBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29s
b3JTcGFjZS5pZGwKIAogICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICAgICBodG1sL3Ry
YWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MDk4LDYgKzEwOTgsNyBAQCAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
CiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QYWludFJlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAogJChQUk9KRUNUX0RJ
UikvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQyLDYgKzE2NDIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bvc2l0aW9u
T3B0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1Bvc3RNZXNzYWdlT3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUG9zdE1lc3NhZ2VPcHRpb25zLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ByZWRlZmluZWRDb2xv
clNwYWNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05NTksNiArOTU5
LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1BhdGgyRC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQWN0
aXZlSW5mby5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTM0NCw2ICsxMzQ0LDcgQEAgaHRtbC9j
YW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udAogaHRtbC9jYW52YXMvUGFpbnRSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCiBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCiBodG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCitodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29s
b3JTcGFjZS5jcHAKIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCiBodG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKIGh0bWwvY2FudmFzL1dlYkdMQ29sb3JCdWZmZXJGbG9h
dC5jcHAKQEAgLTMzNjcsNiArMzM2OCw3IEBAIEpTUG9zaXRpb25DYWxsYmFjay5jcHAKIEpTUG9z
aXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Bvc3RNZXNz
YWdlT3B0aW9ucy5jcHAKK0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiBKU1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKIEpTUHJvZ3Jlc3NFdmVudC5jcHAKIEpTUHJvbWlzZVJlamVjdGlvbkV2
ZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMxNSw2ICsx
NDMxNSw5IEBACiAJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzc4QkIwRDE1RjY0MjAwQjc5
M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY2hlZHVsZWRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBNTU5
MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBpeGVsRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDQTU1OTFBMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0E1NTkxQzI2M0YxMEI5MDA3RjE5QjMgLyogUHJlZGVmaW5lZENvbG9yU3BhY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkNBNTU5MUQyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFU
cmFuc2Zlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVyLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpT
RGF0YVRyYW5zZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RGF0YVRyYW5zZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEUw
RDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMDE4Niw2ICsyMDE4OSw5IEBACiAJCQkJN0MxOTNCQjQxRjVFMEVCNzAwODhGM0U2IC8q
IFBhdGgyRC5pZGwgKi8sCiAJCQkJN0M3OTAzQkExRjg2RkYzMzAwNDYzQTcwIC8qIFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcw
IC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCUJDQTU1OTFEMjYzRjEw
QjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAgKi8sCisJCQkJQkNBNTU5MUEy
NjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmggKi8sCisJCQkJQkNBNTU5
MUMyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmlkbCAqLywKIAkJCQlE
M0YzRDM1QjFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8s
CiAJCQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aCAqLywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5pZGwgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgSW50U2l6ZSBuZXdTaXplKHcsIGgpOwogICAgIC8v
IElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBj
bGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9wdGltaXphdGlv
biBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYgKG1faGFzQ3Jl
YXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2NvbnRleHQgJiYgbV9j
b250ZXh0LT5pczJkKCkpIHsKKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xk
U2l6ZSA9PSBuZXdTaXplICYmIG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQoKSAmJiBtX2Nv
bnRleHQtPmNvbG9yU3BhY2UoKSA9PSBidWZmZXIoKS0+Y29sb3JTcGFjZSgpICYmIG1fY29udGV4
dC0+cGl4ZWxGb3JtYXQoKSA9PSBidWZmZXIoKS0+cGl4ZWxGb3JtYXQoKSkgewogICAgICAgICBp
ZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIGNsZWFySW1hZ2VCdWZmZXIo
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTQzLDcgKzk0MywxNSBAQCB2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlCiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gc2hvdWxk
QWNjZWxlcmF0ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBm
b3IgRGlzcGxheUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCiAgICAgYXV0byB1c2VEaXNwbGF5TGlz
dCA9IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olll
cyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRl
cmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhl
bEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpKTsKKworICAgIGF1dG8gW2NvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0XSA9IFsmXSB7CisgICAgICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpwYWlyIHsgbV9jb250ZXh0LT5jb2xvclNwYWNlKCksIG1fY29udGV4dC0+cGl4
ZWxGb3JtYXQoKSB9OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpwYWly
IHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQSB9OworICAg
IH0oKTsKKworICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBy
ZW5kZXJpbmdNb2RlLCB1c2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6Q2FudmFzLCAx
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdykpOwogCiAgICAgaWYgKGJ1ZmZl
cigpICYmIGJ1ZmZlcigpLT5kcmF3aW5nQ29udGV4dCgpKQogICAgICAgICBidWZmZXIoKS0+ZHJh
d2luZ0NvbnRleHQoKS0+c2V0VHJhY2tzRGlzcGxheUxpc3RSZXBsYXkobV90cmFja3NEaXNwbGF5
TGlzdFJlcGxheSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5j
cHAJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MSwxMSArMjgxLDExIEBAIHZvaWQgSFRNTFZp
ZGVvRWxlbWVudDo6bWVkaWFQbGF5ZXJGaXJzdFYKICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZy
b21FbGVtZW50KCk7CiB9CiAKLVJlZlB0cjxJbWFnZUJ1ZmZlcj4gSFRNTFZpZGVvRWxlbWVudDo6
Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUpIGNvbnN0CitSZWZQdHI8SW1hZ2VCdWZmZXI+IEhUTUxWaWRlb0Vs
ZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQpIGNvbnN0CiB7CiAgICAgYXV0byogaG9zdFdpbmRv
dyA9IGRvY3VtZW50KCkudmlldygpICYmIGRvY3VtZW50KCkudmlldygpLT5yb290KCkgPyBkb2N1
bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkgOiBudWxscHRyOwogICAgIGF1dG8g
c2hvdWxkVXNlRGlzcGxheUxpc3QgPSBkb2N1bWVudCgpLnNldHRpbmdzKCkuZGlzcGxheUxpc3RE
cmF3aW5nRW5hYmxlZCgpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6IFNob3VsZFVzZURp
c3BsYXlMaXN0OjpObzsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5k
ZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQ
YWludGluZywgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdS
QTgsIGhvc3RXaW5kb3cpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJl
bmRlcmluZ01vZGUsIHNob3VsZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlOjpNZWRp
YVBhaW50aW5nLCAxLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CiB9CiAK
IHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
OCw2ICszOCw4IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFz
cyBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXI7CiAKK2VudW0gY2xhc3MgRGVzdGluYXRpb25Db2xv
clNwYWNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51
bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9vbDsKIAogY2xhc3MgSFRNTFZpZGVvRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBIVE1MTWVkaWFFbGVtZW50LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8SFRN
TFZpZGVvRWxlbWVudD4gewpAQCAtNzAsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJr
aXRSZXF1ZXN0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8SW1h
Z2VCdWZmZXI+IGNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRl
cmluZ01vZGUpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQnVmZmVyRm9y
UGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25Db2xv
clNwYWNlLCBQaXhlbEZvcm1hdCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IGNhbnZhcyB0byBn
YWluIHJhdyBwaXhlbCBhY2Nlc3MKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUJpdG1hcC5jcHAJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDIsNyArNTAyLDkgQEAgdm9p
ZCBJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZShTY3JpcHRFeAogICAgIGF1dG8gc291cmNlUmVj
dGFuZ2xlID0gbWF5YmVTb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAg
ICBhdXRvIG91dHB1dFNpemUgPSBvdXRwdXRTaXplRm9yU291cmNlUmVjdGFuZ2xlKHNvdXJjZVJl
Y3RhbmdsZSwgb3B0aW9ucyk7Ci0gICAgYXV0byBiaXRtYXBEYXRhID0gdmlkZW8tPmNyZWF0ZUJ1
ZmZlckZvclBhaW50aW5nKG91dHB1dFNpemUsIGJ1ZmZlclJlbmRlcmluZ01vZGUpOworCisgICAg
Ly8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBjb2xvciBzcGFjZXMgLyBwaXhlbCBmb3JtYXRzIHRv
IEltYWdlQml0bWFwLgorICAgIGF1dG8gYml0bWFwRGF0YSA9IHZpZGVvLT5jcmVhdGVCdWZmZXJG
b3JQYWludGluZyhvdXRwdXRTaXplLCBidWZmZXJSZW5kZXJpbmdNb2RlLCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAgICAgaWYgKCFiaXRtYXBEYXRh
KSB7CiAgICAgICAgIHJlc29sdmVXaXRoQmxhbmtJbWFnZUJ1ZmZlcihzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCAhdGFpbnRzT3JpZ2luKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuc2VjdXJpdHlPcmln
aW4oKSwgKnZpZGVvKSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcs
MTIgKzM3LDE0IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyV29y
a2VyU2FmZS5oIgorI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJHcmFkaWVudC5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0
eWxlLmgiCiAjaW5jbHVkZSAiUGF0aDJELmgiCisjaW5jbHVkZSAiUGl4ZWxGb3JtYXQuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0yMTEsNyArMjEzLDggQEAgUmVmPFRleHRN
ZXRyaWNzPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MgogICAgIHJldHVybiBtZWFzdXJlVGV4dElu
dGVybmFsKHRleHRSdW4pOwogfQogCi1hdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9u
dFByb3h5KCkgLT4gY29uc3QgRm9udFByb3h5KiB7CithdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6Zm9udFByb3h5KCkgLT4gY29uc3QgRm9udFByb3h5KgorewogICAgIC8vIEludGVudGlv
bmFsbHkgZG9uJ3QgdXBkYXRlIHN0eWxlIGhlcmUsIGJlY2F1c2UgdXBkYXRpbmcgc3R5bGUgY2Fu
IGNhdXNlIEpTIHRvIHJ1biBzeW5jaHJvbm91c2x5LgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZywgYW5kIHJ1bm5pbmcgYXJiaXRyYXJ5
IEpTIGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZyBjYW4gY2F1c2UgdW5leHBlY3RlZCBiZWhh
dmlvci4KICAgICAvLyBJbnN0ZWFkLCB0aGUgcmVsZXZhbnQgY2FudmFzIGVudHJ5IHBvaW50cyB1
cGRhdGUgc3R5bGUgb25jZSB3aGVuIHRoZXkgYmVnaW4gcnVubmluZywgYW5kIHdlIHdvbid0IHRv
dWNoIHRoZSBzdHlsZSBhZnRlciB0aGF0LgpAQCAtMjQzLDQgKzI0NiwxNSBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJCiAgICAgZHJhd1RleHRVbmNoZWNrZWQodGV4
dFJ1biwgeCwgeSwgZmlsbCwgbWF4V2lkdGgpOwogfQogCitQaXhlbEZvcm1hdCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OnBpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGFr
ZSBtX3NldHRpbmdzLmFscGhhIGludG8gYWNjb3VudCBoZXJlIGFuZCBhZGQgUGl4ZWxGb3JtYXQ6
OkJHUlg4LgorICAgIHJldHVybiBQaXhlbEZvcm1hdDo6QkdSQTg7Cit9CisKK0Rlc3RpbmF0aW9u
Q29sb3JTcGFjZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNvbG9yU3BhY2UoKSBjb25zdAor
eworICAgIHJldHVybiB0b0Rlc3RpbmF0aW9uQ29sb3JTcGFjZShtX3NldHRpbmdzLmNvbG9yU3Bh
Y2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAkocmV2aXNp
b24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDkgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgaXMyZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBjb25zdCBG
b250UHJveHkqIGZvbnRQcm94eSgpIGZpbmFsOworICAgIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0
KCkgY29uc3QgZmluYWw7CisgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBj
b25zdCBmaW5hbDsKKwogICAgIHZvaWQgc2V0Rm9udFdpdGhvdXRVcGRhdGluZ1N0eWxlKGNvbnN0
IFN0cmluZyYpOwogCiAgICAgdm9pZCBkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4
dCwgZmxvYXQgeCwgZmxvYXQgeSwgYm9vbCBmaWxsLCBPcHRpb25hbDxmbG9hdD4gbWF4V2lkdGgg
PSBXVEY6Om51bGxvcHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHJldmlzaW9uIDI3
NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIHJlcGFpbnRFbnRpcmVD
YW52YXMgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0g
Q29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpIHsKICAgICAgICAgaWYgKCZzb3VyY2VDYW52YXMgPT0g
JmNhbnZhc0Jhc2UoKSkgewotICAgICAgICAgICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29w
eVJlY3RUb0J1ZmZlcihzcmNSZWN0LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsICpjKSkg
eworICAgICAgICAgICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihz
cmNSZWN0LCBjb2xvclNwYWNlKCksICpjKSkgewogICAgICAgICAgICAgICAgIGNsZWFyQ2FudmFz
KCk7CiAgICAgICAgICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpjb3B5LCBkc3RSZWN0LCB7
IHsgfSwgc3JjUmVjdC5zaXplKCkgfSwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUo
KS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgICAgIH0KQEAgLTE4MjksNyArMTgyOSw3IEBAIHRl
bXBsYXRlPGNsYXNzIFQ+IEludFJlY3QgQ2FudmFzUmVuZGVyaW4KIAogUmVmUHRyPEltYWdlQnVm
ZmVyPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVDb21wb3NpdGluZ0J1ZmZl
cihjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJhdGVkKCkgPyBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIERlc3RpbmF0
aW9uQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKyAgICByZXR1cm4gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwgaXNBY2NlbGVyYXRlZCgpID8gUmVu
ZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAx
LCBjb2xvclNwYWNlKCksIHBpeGVsRm9ybWF0KCkpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OmNvbXBvc2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25z
dCBJbnRSZWN0JiBidWZmZXJSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTIwMjYsNyAr
MjAyNiw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gQ2FudmEKICNlbmRp
ZgogCiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gIWRyYXdpbmdDb250ZXh0KCkgfHwgZHJhd2lu
Z0NvbnRleHQoKS0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2Vs
ZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKLSAgICBhdXRvIGltYWdlQnVm
ZmVyID0gdmlkZW9FbGVtZW50LmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKHNpemUodmlkZW9FbGVt
ZW50KSwgcmVuZGVyaW5nTW9kZSk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IHZpZGVvRWxlbWVu
dC5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhzaXplKHZpZGVvRWxlbWVudCksIHJlbmRlcmluZ01v
ZGUsIGNvbG9yU3BhY2UoKSwgcGl4ZWxGb3JtYXQoKSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTI0OTAsNyArMjQ5MCw3IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd1QKICAgICAgICAgICAgIH0KICAgICAgICAg
fTsKIAotICAgICAgICBpZiAoYy0+Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKG1hc2tSZWN0LCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsIFdURk1vdmUocGFpbnRNYXNrSW1hZ2UpKSA9PSBHcmFw
aGljc0NvbnRleHQ6OkNsaXBUb0RyYXdpbmdDb21tYW5kc1Jlc3VsdDo6RmFpbGVkVG9DcmVhdGVJ
bWFnZUJ1ZmZlcikKKyAgICAgICAgaWYgKGMtPmNsaXBUb0RyYXdpbmdDb21tYW5kcyhtYXNrUmVj
dCwgY29sb3JTcGFjZSgpLCBXVEZNb3ZlKHBhaW50TWFza0ltYWdlKSkgPT0gR3JhcGhpY3NDb250
ZXh0OjpDbGlwVG9EcmF3aW5nQ29tbWFuZHNSZXN1bHQ6OkZhaWxlZFRvQ3JlYXRlSW1hZ2VCdWZm
ZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENv
bG9yKCpjKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRFNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaAkocmV2aXNpb24gMjc2OTI5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
U2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiUHJlZGVmaW5lZENvbG9yU3BhY2UuaCIKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MgewogICAg
IGJvb2wgZGVzeW5jaHJvbml6ZWQgeyBmYWxzZSB9OworICAgIFByZWRlZmluZWRDb2xvclNwYWNl
IGNvbG9yU3BhY2UgeyBQcmVkZWZpbmVkQ29sb3JTcGFjZTo6U1JHQiB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAkocmV2
aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEU2V0dGluZ3MuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw0ICszMCw1IEBA
CiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciAnYWxwaGEnLgogICAgIC8vIGJvb2xlYW4g
YWxwaGEgPSB0cnVlOwogICAgIGJvb2xlYW4gZGVzeW5jaHJvbml6ZWQgPSBmYWxzZTsKKyAgICBQ
cmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gInNyZ2IiOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMSArMjgsMTMgQEAKIAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIgorI2lu
Y2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgorI2luY2x1ZGUg
IlBpeGVsRm9ybWF0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC04MCw2
ICs4MiwxNiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OmRlcmVmKCkKICAgICBtX2Nh
bnZhcy5kZXJlZkNhbnZhc0Jhc2UoKTsKIH0KIAorUGl4ZWxGb3JtYXQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDo6cGl4ZWxGb3JtYXQoKSBjb25zdAoreworICAgIHJldHVybiBQaXhlbEZvcm1hdDo6
QkdSQTg7Cit9CisKK0Rlc3RpbmF0aW9uQ29sb3JTcGFjZSBDYW52YXNSZW5kZXJpbmdDb250ZXh0
Ojpjb2xvclNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRGVzdGluYXRpb25Db2xvclNwYWNl
OjpTUkdCOworfQorCiBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OndvdWxkVGFpbnRPcmln
aW4oY29uc3QgQ2FudmFzUGF0dGVybiogcGF0dGVybikKIHsKICAgICBpZiAobV9jYW52YXMub3Jp
Z2luQ2xlYW4oKSAmJiBwYXR0ZXJuICYmICFwYXR0ZXJuLT5vcmlnaW5DbGVhbigpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIGNs
YXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiBjbGFzcyBJbWFnZUJpdG1hcDsKIGNsYXNzIFR5cGVkT01D
U1NJbWFnZVZhbHVlOwogY2xhc3MgV2ViR0xPYmplY3Q7CitlbnVtIGNsYXNzIERlc3RpbmF0aW9u
Q29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsK
IAogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhbnZhc1JlbmRlcmluZ0NvbnRleHQpOwpAQCAt
ODYsNiArODgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG5lZWRzUHJlcGFyYXRpb25G
b3JEaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZUZvckRpc3BsYXkoKSB7IH0KIAorICAgIHZpcnR1YWwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3Jt
YXQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNl
KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0KENhbnZhc0Jhc2UmKTsKICAgICBib29sIHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgQ2FudmFz
UGF0dGVybiopOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENv
bG9yU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1By
ZWRlZmluZWRDb2xvclNwYWNlLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
cmVkZWZpbmVkQ29sb3JTcGFjZS5oIgorCisjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0Rlc3RpbmF0aW9uQ29sb3JTcGFjZSB0b0Rlc3RpbmF0aW9uQ29s
b3JTcGFjZShQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlKQoreworICAgIHN3aXRjaCAo
Y29sb3JTcGFjZSkgeworICAgIGNhc2UgUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0I6CisgICAg
ICAgIHJldHVybiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0I7CisjaWYgRU5BQkxFKERFU1RJ
TkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpCisgICAgY2FzZSBQcmVkZWZpbmVkQ29sb3JT
cGFjZTo6RGlzcGxheVAzOgorICAgICAgICByZXR1cm4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpE
aXNwbGF5UDM7CisjZW5kaWYKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCOworfQorCit9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9y
U3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlIDogdWludDhfdDsKKwor
ZW51bSBjbGFzcyBQcmVkZWZpbmVkQ29sb3JTcGFjZSB7CisgICAgU1JHQgorI2lmIEVOQUJMRShE
RVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgICwgRGlzcGxheVAzCisjZW5k
aWYKK307CisKK0Rlc3RpbmF0aW9uQ29sb3JTcGFjZSB0b0Rlc3RpbmF0aW9uQ29sb3JTcGFjZShQ
cmVkZWZpbmVkQ29sb3JTcGFjZSk7CisKK30KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJlZGVmaW5lZENvbG9yU3BhY2U+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQcmVkZWZpbmVk
Q29sb3JTcGFjZSwKKyAgICAgICAgV2ViQ29yZTo6UHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0IK
KyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICAgICAg
LCBXZWJDb3JlOjpQcmVkZWZpbmVkQ29sb3JTcGFjZTo6RGlzcGxheVAzCisjZW5kaWYKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY2FudmFzLmh0bWwjcHJlZGVmaW5lZGNvbG9yc3Bh
Y2UKK2VudW0gUHJlZGVmaW5lZENvbG9yU3BhY2UgeworICAgICJzcmdiIgorI2lmIGRlZmluZWQo
RU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpICYmIEVOQUJMRV9ERVNU
SU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzCisgICAgLCAiZGlzcGxheS1wMyIKKyNlbmRp
ZgorfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzY5MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOSBAQAogCiAjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCiAKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
Rm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzY5MjkpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNS0wMyAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHByZWxpbWluYXJ5
IHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYSBjb2xvciBzcGFjZSBmb3IgMkQgY2FudmFzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUyODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgdGVz
dHMgZm9yIGNvbG9yIHNwYWNlIGluIGNhbnZhcyBzdXBwb3J0LgorCisgICAgICAgICogZmFzdC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29s
b3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1lbmFibGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNw
bGF5LXAzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA1LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIyNzQ0NjEpOiBbbWFjT1Mgd2sxXSBmYXN0L3JlcGFpbnQvY2FudmFzLW9iamVjdC1maXQuaHRt
bCBpcyBmbGFrZXkgdGV4dCBmYWlsaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVy
IG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGlzIHVuc3VwcG9ydGVkIHdoZW4g
Q2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dGVzdFNldHRpbmdzLmNvbG9yU3BhY2UgaXMgdW5kZWZpbmVkLgorUEFTUyB0ZXN0U2V0dGluZ3Mu
Y29sb3JTcGFjZSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xv
clNwYWNlLWRpc2FibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYW52YXNDb2xvclNwYWNlRW5hYmxlZD1mYWxzZSBdIC0t
PgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MgaXMgdW5zdXBwb3J0ZWQgd2hlbiBDYW52YXNDb2xvclNwYWNlRW5hYmxlZD1m
YWxzZS4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlVW5zdXBwb3J0ZWQoc2V0dGlu
Z3MsIGV4cGVjdGVkQ29sb3JTcGFjZSkgeworICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdl
dENvbnRleHQoIjJkIiwgc2V0dGluZ3MpOworICAgICAgICB3aW5kb3cudGVzdFNldHRpbmdzID0g
Y29udGV4dC5nZXRDb250ZXh0QXR0cmlidXRlcygpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgidGVzdFNldHRpbmdzLmNvbG9yU3BhY2UiKTsKKyAgICB9CisKKyAgICB0ZXN0Q29sb3JTcGFj
ZVVuc3VwcG9ydGVkKHVuZGVmaW5lZCk7CisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBvcnRlZCh7
IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKKyAgICB0ZXN0Q29sb3JTcGFjZVVuc3VwcG9ydGVkKHsg
Y29sb3JTcGFjZTogImZvbyIgfSk7Cis8L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNl
dHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29s
b3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNl
LWVuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
U2V0dGluZ3MgaXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgdGVzdFNldHRpbmdz
LmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAiZm9vIiB9KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9y
U3BhY2UtZW5hYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1s
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzIGlzIHN1cHBvcnRlZC4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlKHNldHRp
bmdzLCBleHBlY3RlZENvbG9yU3BhY2UpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCIyZCIsIHNldHRpbmdzKTsKKyAgICAgICAgd2luZG93LnRlc3RTZXR0aW5ncyA9
IGNvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSIsICJzcmdiIik7CisgICAgfQorCisgICAg
Ly8gVGVzdCBkZWZhdWx0IHZhbHVlIG9mIGNvbG9yU3BhY2UgaXMgInNyZ2IiLgorICAgIHRlc3RD
b2xvclNwYWNlKHVuZGVmaW5lZCwgInNyZ2IiKTsKKworICAgIC8vIFRlc3Qgc2V0dGluZyBjb2xv
clNwYWNlIHRvICJzcmdiIiB3b3Jrcy4KKyAgICB0ZXN0Q29sb3JTcGFjZSh7IGNvbG9yU3BhY2U6
ICJzcmdiIiB9LCAic3JnYiIpOworCisgICAgLy8gVGVzdCBzZXR0aW5nIGNvbG9yU3BhY2UgdG8g
YW4gdW5zdXBwb3J0ZWQgdmFsdWUuCisgICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoYGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAi
Zm9vIiB9KWAsICJUeXBlRXJyb3IiKQorPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxh
eS1wMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXkt
cDMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKzxzdHlsZT4K
KyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPHA+
VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJlbG93IGxvb2tzIHRvIGJlIGFsbCBvbmUg
Y29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4gPC9kaXY+Cis8L2JvZHk+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFj
ZS1kaXNwbGF5LXAzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE3IEBACis8c3R5bGU+CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6ICMwMDk5
MDA7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8L3N0
eWxlPgorPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJlbG93
IGxvb2tzIHRvIGJlIGFsbCBvbmUgY29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4gPC9k
aXY+CisgICAgPGNhbnZhcyBpZD0idGVzdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCI+PC9jYW52
YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQo
IjJkIiwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7CisKKyAgICAgICAgY29udGV4dC5i
ZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5yZWN0KDAsIDAsIDEwMCwgNTApOworICAgICAg
ICBjb250ZXh0LmZpbGxTdHlsZSA9ICJjb2xvcihkaXNwbGF5LXAzIDAuMjYzNzQgMC41OTA4NSAw
LjE2NDM0KSI7CisgICAgICAgIGNvbnRleHQuZmlsbCgpOworICAgIDwvc2NyaXB0PgorPC9ib2R5
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427617</attachid>
            <date>2021-05-03 16:45:12 -0700</date>
            <delta_ts>2021-05-03 18:29:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210503164511.patch</filename>
            <type>text/plain</type>
            <size>39048</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIENh
bnZhc0NvbG9yU3BhY2VFbmFibGVkLCB3aGljaCBibG9ja3MKKyAgICAgICAgYWNjZXNzIHRvIHRo
ZSBuZXcgYWJpbGl0eSB0byBzcGVjaWZ5IGNvbG9yIHNwYWNlcyBmb3IgMkQgY2FudmFzLgorCisg
ICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sOgorCiAyMDIxLTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBKU0NPbmx5IGJ1aWxkIHdpdGggcmVjZW50
IGNsYW5nIGFmdGVyIHIyNzY4NzkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShy
ZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwx
OCBAQCBDU1NUeXBlZE9NRW5hYmxlZDoKICAgICAgICJFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSI6IHRydWUKICAgICAgIGRl
ZmF1bHQ6IGZhbHNlCiAKK0NhbnZhc0NvbG9yU3BhY2VFbmFibGVkOgorICB0eXBlOiBib29sCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FudmFzIENvbG9yIFNwYWNlcyIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiRW5hYmxlIHVzZSBvZiBwcmVkZWZpbmVkIGNhbnZhcyBjb2xvciBzcGFj
ZXMiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisKIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2Fw
dHVyZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg0IEBACisyMDIxLTA1LTAzICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkg
c3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nh
bnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mu
aWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzLmg6CisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nIGJsb2NrZWQgbWVtYmVyIHRvIHRoZSBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncworICAgICAgICBkaWN0aW9uYXJ5IGZvciBz
cGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UuIAorCisgICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZp
bmVkQ29sb3JTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVk
Q29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgSURMIGVudW1lcmF0aW9u
IHRvIHJlcHJlc2VudCB0aGUgcG9zc2libGUgY29sb3Igc3BhY2VzIHN1cHBvcnRlZC4KKyAgICAg
ICAgRm9yIHBvcnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBEaXNwbGF5UDMsIHRyeWluZyB0byB1c2Ug
aXQgd2lsbCByZXN1bHQgaW4gCisgICAgICAgIHR5cGUgZXJyb3IgZnJvbSBKUy4KKworICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgQWRkIGNoZWNrcyBmb3IgY29sb3Igc3BhY2Ug
YW5kIHBpeGVsIGZvcm1hdCB0byAyZCBjb250ZXh0IHJlc2V0IG9wdGltYXRpb24uCisgICAgICAg
IFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgaW1hZ2UgYnVmZmVyIGlzIGFsbG9jYXRlZCBwcmlvciB0
byB0aGUgY29udGV4dCBiZWluZworICAgICAgICByZXF1ZXN0ZWQgKHN1Y2ggYXMgdmlhIGNhbnZh
cy50b0RhdGFVUkwoKSBvciBjYW52YXMudG9CbG9iKCkpLgorCisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICBQYXNz
IHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3JtYXQgKHRob3VnaAorICAgICAg
ICB0aGUgbGF0ZXIgaXMgYWx3YXlzIEJHUkE4IGF0IHRoZSBtb21lbnQpIHRvIHRoZSBJbWFnZUJ1
ZmZlcgorICAgICAgICBjcmVhdGUgZnVuY3Rpb24gdG8gbWFrZSBhIGJhY2tpbmcgc3RvcmUgaW4g
dGhlIHJpZ2h0IGZvcm1hdC4KKworICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWlu
dGluZyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAg
IFBhc3MgY29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCB0aHJvdWdoIHRvIGVuc3VyZSB0aGUg
aGVscGVyCisgICAgICAgIGJ1ZmZlciBtYXRjaGVzIHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlLgor
CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgIFBhc3MgdGhlIGV4aXN0aW5nIGRlZmF1
bHRzIHRvIEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nLgorICAgICAg
ICBJbiB0aGUgZnV0dXJlLCBJbWFnZUJpdG1hcCB3aWxsIGFsc28gZ2FpbiBjb2xvciBzcGFjZSBh
bmQgcGl4ZWwKKyAgICAgICAgZm9ybWF0IHNwZWNpZmljaXR5IGFuZCB0aGlzIHdpbGwgYmUgdXBk
YXRlZC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6cGl4ZWxGb3JtYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6Y29sb3JT
cGFjZSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oOgorICAgICAgICBBZGQgdmlydHVhbCBiYXNlIGltcGxlbWVudGF0aW9ucyBvZiBjb2xvclNw
YWNlIGFuZCBwaXhlbEZvcm1hdAorICAgICAgICB3aGljaCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgY2FuIG92ZXJyaWRlIHRvIHJldHVybiB0aGUKKyAgICAgICAgdmFsdWVzIHNwZWNpZmllZCBp
biB0aGUgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmb250UHJveHkgY29uc3QpOgorICAgICAgICBGaXggaW5jb3Jy
ZWN0IGZvcm1hdHRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6cGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb2xvclNwYWNlIGNvbnN0KToKKyAgICAgICAgQWRkIG92ZXJyaWRlcywg
cmV0dXJuIG1fc2V0dGluZ3MuY29sb3JTcGFjZSBmb3IgY29sb3JTcGFjZS4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNvbXBvc2l0
aW5nQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmNyZWF0ZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6ZHJhd1RleHRVbmNoZWNrZWQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBj
b2xvclNwYWNlIGFuZCBwaXhlbEZvcm1hdCB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMuCisKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAg
ICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMgdGhhdCBhcmUgbm93IG5lZWRlZC4KKwogMjAyMS0wNS0w
MyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11b
RkNSXSBNaXNzaW5nIGZpbGwgY29sb3Igb24gc2xpZGVyIHRpY2tzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIHNldChXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlkbAog
ICAgIGh0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyAgICBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29s
b3JTcGFjZS5pZGwKIAogICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICAgICBodG1sL3Ry
YWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MDk4LDYgKzEwOTgsNyBAQCAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
CiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QYWludFJlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAogJChQUk9KRUNUX0RJ
UikvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQyLDYgKzE2NDIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bvc2l0aW9u
T3B0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1Bvc3RNZXNzYWdlT3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUG9zdE1lc3NhZ2VPcHRpb25zLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ByZWRlZmluZWRDb2xv
clNwYWNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05NTksNiArOTU5
LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1BhdGgyRC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQWN0
aXZlSW5mby5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTM0NCw2ICsxMzQ0LDcgQEAgaHRtbC9j
YW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udAogaHRtbC9jYW52YXMvUGFpbnRSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCiBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCiBodG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCitodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29s
b3JTcGFjZS5jcHAKIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCiBodG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKIGh0bWwvY2FudmFzL1dlYkdMQ29sb3JCdWZmZXJGbG9h
dC5jcHAKQEAgLTMzNjcsNiArMzM2OCw3IEBAIEpTUG9zaXRpb25DYWxsYmFjay5jcHAKIEpTUG9z
aXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Bvc3RNZXNz
YWdlT3B0aW9ucy5jcHAKK0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiBKU1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKIEpTUHJvZ3Jlc3NFdmVudC5jcHAKIEpTUHJvbWlzZVJlamVjdGlvbkV2
ZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMxNSw2ICsx
NDMxNSw5IEBACiAJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzc4QkIwRDE1RjY0MjAwQjc5
M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY2hlZHVsZWRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBNTU5
MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBpeGVsRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDQTU1OTFBMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0E1NTkxQzI2M0YxMEI5MDA3RjE5QjMgLyogUHJlZGVmaW5lZENvbG9yU3BhY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkNBNTU5MUQyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFU
cmFuc2Zlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVyLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpT
RGF0YVRyYW5zZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RGF0YVRyYW5zZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEUw
RDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMDE4Niw2ICsyMDE4OSw5IEBACiAJCQkJN0MxOTNCQjQxRjVFMEVCNzAwODhGM0U2IC8q
IFBhdGgyRC5pZGwgKi8sCiAJCQkJN0M3OTAzQkExRjg2RkYzMzAwNDYzQTcwIC8qIFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcw
IC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCUJDQTU1OTFEMjYzRjEw
QjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAgKi8sCisJCQkJQkNBNTU5MUEy
NjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmggKi8sCisJCQkJQkNBNTU5
MUMyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmlkbCAqLywKIAkJCQlE
M0YzRDM1QjFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8s
CiAJCQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aCAqLywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5pZGwgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgSW50U2l6ZSBuZXdTaXplKHcsIGgpOwogICAgIC8v
IElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBj
bGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9wdGltaXphdGlv
biBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYgKG1faGFzQ3Jl
YXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2NvbnRleHQgJiYgbV9j
b250ZXh0LT5pczJkKCkpIHsKKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xk
U2l6ZSA9PSBuZXdTaXplICYmIG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQoKSAmJiBtX2Nv
bnRleHQtPmNvbG9yU3BhY2UoKSA9PSBidWZmZXIoKS0+Y29sb3JTcGFjZSgpICYmIG1fY29udGV4
dC0+cGl4ZWxGb3JtYXQoKSA9PSBidWZmZXIoKS0+cGl4ZWxGb3JtYXQoKSkgewogICAgICAgICBp
ZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIGNsZWFySW1hZ2VCdWZmZXIo
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTQzLDcgKzk0MywxNSBAQCB2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlCiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gc2hvdWxk
QWNjZWxlcmF0ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBm
b3IgRGlzcGxheUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCiAgICAgYXV0byB1c2VEaXNwbGF5TGlz
dCA9IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olll
cyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRl
cmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhl
bEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpKTsKKworICAgIGF1dG8gW2NvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0XSA9IFsmXSB7CisgICAgICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpwYWlyIHsgbV9jb250ZXh0LT5jb2xvclNwYWNlKCksIG1fY29udGV4dC0+cGl4
ZWxGb3JtYXQoKSB9OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpwYWly
IHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTggfTsKKyAg
ICB9KCk7CisKKyAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwg
cmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywg
MSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpKTsKIAogICAgIGlmIChidWZm
ZXIoKSAmJiBidWZmZXIoKS0+ZHJhd2luZ0NvbnRleHQoKSkKICAgICAgICAgYnVmZmVyKCktPmRy
YXdpbmdDb250ZXh0KCktPnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxh
eUxpc3RSZXBsYXkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsMTEgKzI4MSwxMSBAQCB2b2lkIEhUTUxW
aWRlb0VsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWCiAgICAgICAgIHJlbmRlcmVyLT51cGRhdGVG
cm9tRWxlbWVudCgpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IEhUTUxWaWRlb0VsZW1lbnQ6
OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKSBjb25zdAorUmVmUHRyPEltYWdlQnVmZmVyPiBIVE1MVmlkZW9F
bGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWludGluZyhjb25zdCBGbG9hdFNpemUmIHNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KSBjb25zdAogewogICAgIGF1dG8qIGhvc3RXaW5k
b3cgPSBkb2N1bWVudCgpLnZpZXcoKSAmJiBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpID8gZG9j
dW1lbnQoKS52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpIDogbnVsbHB0cjsKICAgICBhdXRv
IHNob3VsZFVzZURpc3BsYXlMaXN0ID0gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmRpc3BsYXlMaXN0
RHJhd2luZ0VuYWJsZWQoKSA/IFNob3VsZFVzZURpc3BsYXlMaXN0OjpZZXMgOiBTaG91bGRVc2VE
aXNwbGF5TGlzdDo6Tm87Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVu
ZGVyaW5nTW9kZSwgc2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlh
UGFpbnRpbmcsIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJH
UkE4LCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBy
ZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVk
aWFQYWludGluZywgMSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOwogfQog
CiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCShyZXZpc2lvbiAyNzY5MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsOCBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIFJlbmRlclZpZGVvOwogY2xh
c3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyOwogCitlbnVtIGNsYXNzIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVu
dW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTE1lZGlhRWxlbWVudCwgcHVibGljIFN1cHBsZW1lbnRhYmxlPEhU
TUxWaWRlb0VsZW1lbnQ+IHsKQEAgLTcwLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2Vi
a2l0UmVxdWVzdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVmUHRyPElt
YWdlQnVmZmVyPiBjcmVhdGVCdWZmZXJGb3JQYWludGluZyhjb25zdCBGbG9hdFNpemUmLCBSZW5k
ZXJpbmdNb2RlKSBjb25zdDsKKyAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUJ1ZmZlckZv
clBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSwgUGl4ZWxGb3JtYXQpIGNvbnN0OwogCiAgICAgLy8gVXNlZCBieSBjYW52YXMgdG8g
Z2FpbiByYXcgcGl4ZWwgYWNjZXNzCiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlQml0bWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAyLDcgKzUwMiw5IEBAIHZv
aWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXgKICAgICBhdXRvIHNvdXJjZVJl
Y3RhbmdsZSA9IG1heWJlU291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAg
ICAgYXV0byBvdXRwdXRTaXplID0gb3V0cHV0U2l6ZUZvclNvdXJjZVJlY3RhbmdsZShzb3VyY2VS
ZWN0YW5nbGUsIG9wdGlvbnMpOwotICAgIGF1dG8gYml0bWFwRGF0YSA9IHZpZGVvLT5jcmVhdGVC
dWZmZXJGb3JQYWludGluZyhvdXRwdXRTaXplLCBidWZmZXJSZW5kZXJpbmdNb2RlKTsKKworICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY29sb3Igc3BhY2VzIC8gcGl4ZWwgZm9ybWF0cyB0
byBJbWFnZUJpdG1hcC4KKyAgICBhdXRvIGJpdG1hcERhdGEgPSB2aWRlby0+Y3JlYXRlQnVmZmVy
Rm9yUGFpbnRpbmcob3V0cHV0U2l6ZSwgYnVmZmVyUmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgpOwogICAgIGlmICghYml0bWFwRGF0
YSkgewogICAgICAgICByZXNvbHZlV2l0aEJsYW5rSW1hZ2VCdWZmZXIoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgIXRhaW50c09yaWdpbihzY3JpcHRFeGVjdXRpb25Db250ZXh0LnNlY3VyaXR5T3Jp
Z2luKCksICp2aWRlbyksIFdURk1vdmUocHJvbWlzZSkpOwogICAgICAgICByZXR1cm47CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlcldv
cmtlclNhZmUuaCIKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQu
aCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJT
dHlsZS5oIgogI2luY2x1ZGUgIlBhdGgyRC5oIgorI2luY2x1ZGUgIlBpeGVsRm9ybWF0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtMjExLDcgKzIxMyw4IEBAIFJlZjxUZXh0
TWV0cmljcz4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDIKICAgICByZXR1cm4gbWVhc3VyZVRleHRJ
bnRlcm5hbCh0ZXh0UnVuKTsKIH0KIAotYXV0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZv
bnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSogeworYXV0byBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSoKK3sKICAgICAvLyBJbnRlbnRp
b25hbGx5IGRvbid0IHVwZGF0ZSBzdHlsZSBoZXJlLCBiZWNhdXNlIHVwZGF0aW5nIHN0eWxlIGNh
biBjYXVzZSBKUyB0byBydW4gc3luY2hyb25vdXNseS4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcsIGFuZCBydW5uaW5nIGFyYml0cmFy
eSBKUyBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgYmVo
YXZpb3IuCiAgICAgLy8gSW5zdGVhZCwgdGhlIHJlbGV2YW50IGNhbnZhcyBlbnRyeSBwb2ludHMg
dXBkYXRlIHN0eWxlIG9uY2Ugd2hlbiB0aGV5IGJlZ2luIHJ1bm5pbmcsIGFuZCB3ZSB3b24ndCB0
b3VjaCB0aGUgc3R5bGUgYWZ0ZXIgdGhhdC4KQEAgLTI0Myw0ICsyNDYsMTUgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SQogICAgIGRyYXdUZXh0VW5jaGVja2VkKHRl
eHRSdW4sIHgsIHksIGZpbGwsIG1heFdpZHRoKTsKIH0KIAorUGl4ZWxGb3JtYXQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpwaXhlbEZvcm1hdCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFRh
a2UgbV9zZXR0aW5ncy5hbHBoYSBpbnRvIGFjY291bnQgaGVyZSBhbmQgYWRkIFBpeGVsRm9ybWF0
OjpCR1JYOC4KKyAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6OkJHUkE4OworfQorCitEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjb2xvclNwYWNlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdG9EZXN0aW5hdGlvbkNvbG9yU3BhY2UobV9zZXR0aW5ncy5jb2xvclNw
YWNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgJKHJldmlz
aW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw5IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGlzMmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgY29uc3Qg
Rm9udFByb3h5KiBmb250UHJveHkoKSBmaW5hbDsKKyAgICBQaXhlbEZvcm1hdCBwaXhlbEZvcm1h
dCgpIGNvbnN0IGZpbmFsOworICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIHNldEZvbnRXaXRob3V0VXBkYXRpbmdTdHlsZShjb25z
dCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRl
eHQsIGZsb2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgT3B0aW9uYWw8ZmxvYXQ+IG1heFdpZHRo
ID0gV1RGOjpudWxsb3B0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCShyZXZpc2lvbiAy
NzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogICAgICAgICByZXBhaW50RW50aXJl
Q2FudmFzID0gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09
IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7CiAgICAgICAgIGlmICgmc291cmNlQ2FudmFzID09
ICZjYW52YXNCYXNlKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGNvcHkgPSBidWZmZXItPmNv
cHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCAqYykp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNvcHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIo
c3JjUmVjdCwgY29sb3JTcGFjZSgpLCAqYykpIHsKICAgICAgICAgICAgICAgICBjbGVhckNhbnZh
cygpOwogICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwg
eyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRl
KCkuZ2xvYmFsQmxlbmQgfSk7CiAgICAgICAgICAgICB9CkBAIC0xODI5LDcgKzE4MjksNyBAQCB0
ZW1wbGF0ZTxjbGFzcyBUPiBJbnRSZWN0IENhbnZhc1JlbmRlcmluCiAKIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlQ29tcG9zaXRpbmdCdWZm
ZXIoY29uc3QgSW50UmVjdCYgYnVmZmVyUmVjdCkKIHsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwgaXNBY2NlbGVyYXRlZCgpID8gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0OjpCR1JBOCk7CisgICAgcmV0dXJuIElt
YWdlQnVmZmVyOjpjcmVhdGUoYnVmZmVyUmVjdC5zaXplKCksIGlzQWNjZWxlcmF0ZWQoKSA/IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwg
MSwgY29sb3JTcGFjZSgpLCBwaXhlbEZvcm1hdCgpKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlOjpjb21wb3NpdGVCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29u
c3QgSW50UmVjdCYgYnVmZmVyUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCkBAIC0yMDI2LDcg
KzIwMjYsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZhCiAjZW5k
aWYKIAogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9ICFkcmF3aW5nQ29udGV4dCgpIHx8IGRyYXdp
bmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgPyBSZW5kZXJpbmdNb2RlOjpBY2Nl
bGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci0gICAgYXV0byBpbWFnZUJ1
ZmZlciA9IHZpZGVvRWxlbWVudC5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhzaXplKHZpZGVvRWxl
bWVudCksIHJlbmRlcmluZ01vZGUpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSB2aWRlb0VsZW1l
bnQuY3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoc2l6ZSh2aWRlb0VsZW1lbnQpLCByZW5kZXJpbmdN
b2RlLCBjb2xvclNwYWNlKCksIHBpeGVsRm9ybWF0KCkpOwogICAgIGlmICghaW1hZ2VCdWZmZXIp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNDkwLDcgKzI0OTAsNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdUCiAgICAgICAgICAgICB9CiAgICAgICAg
IH07CiAKLSAgICAgICAgaWYgKGMtPmNsaXBUb0RyYXdpbmdDb21tYW5kcyhtYXNrUmVjdCwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBXVEZNb3ZlKHBhaW50TWFza0ltYWdlKSkgPT0gR3Jh
cGhpY3NDb250ZXh0OjpDbGlwVG9EcmF3aW5nQ29tbWFuZHNSZXN1bHQ6OkZhaWxlZFRvQ3JlYXRl
SW1hZ2VCdWZmZXIpCisgICAgICAgIGlmIChjLT5jbGlwVG9EcmF3aW5nQ29tbWFuZHMobWFza1Jl
Y3QsIGNvbG9yU3BhY2UoKSwgV1RGTW92ZShwYWludE1hc2tJbWFnZSkpID09IEdyYXBoaWNzQ29u
dGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzUmVzdWx0OjpGYWlsZWRUb0NyZWF0ZUltYWdlQnVm
ZmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxD
b2xvcigqYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmgJKHJldmlzaW9uIDI3Njky
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIlByZWRlZmluZWRDb2xvclNwYWNlLmgiCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKICAg
ICBib29sIGRlc3luY2hyb25pemVkIHsgZmFsc2UgfTsKKyAgICBQcmVkZWZpbmVkQ29sb3JTcGFj
ZSBjb2xvclNwYWNlIHsgUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0IgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5pZGwJKHJl
dmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNCArMzAsNSBA
QAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgJ2FscGhhJy4KICAgICAvLyBib29sZWFu
IGFscGhhID0gdHJ1ZTsKICAgICBib29sZWFuIGRlc3luY2hyb25pemVkID0gZmFsc2U7CisgICAg
UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSA9ICJzcmdiIjsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTEgKzI4LDEzIEBACiAK
ICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKKyNp
bmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKKyNpbmNsdWRl
ICJQaXhlbEZvcm1hdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtODAs
NiArODIsMTYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpkZXJlZigpCiAgICAgbV9j
YW52YXMuZGVyZWZDYW52YXNCYXNlKCk7CiB9CiAKK1BpeGVsRm9ybWF0IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ6OnBpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6
OkJHUkE4OworfQorCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDo6Y29sb3JTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQjsKK30KKwogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp3b3VsZFRhaW50T3Jp
Z2luKGNvbnN0IENhbnZhc1BhdHRlcm4qIHBhdHRlcm4pCiB7CiAgICAgaWYgKG1fY2FudmFzLm9y
aWdpbkNsZWFuKCkgJiYgcGF0dGVybiAmJiAhcGF0dGVybi0+b3JpZ2luQ2xlYW4oKSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0LmgJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOCBAQCBj
bGFzcyBIVE1MVmlkZW9FbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRtYXA7CiBjbGFzcyBUeXBlZE9N
Q1NTSW1hZ2VWYWx1ZTsKIGNsYXNzIFdlYkdMT2JqZWN0OworZW51bSBjbGFzcyBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgOiB1aW50OF90OworZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7
CiAKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYW52YXNSZW5kZXJpbmdDb250ZXh0KTsKQEAg
LTg2LDYgKzg4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZXBhcmF0aW9u
Rm9yRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KCkgeyB9CiAKKyAgICB2aXJ0dWFsIFBpeGVsRm9ybWF0IHBpeGVsRm9y
bWF0KCkgY29uc3Q7CisgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dChDYW52YXNCYXNlJik7CiAgICAgYm9vbCB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IENhbnZh
c1BhdHRlcm4qKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRD
b2xvclNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9Q
cmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UHJlZGVmaW5lZENvbG9yU3BhY2UuaCIKKworI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNv
bG9yU3BhY2UoUHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBzd2l0Y2gg
KGNvbG9yU3BhY2UpIHsKKyAgICBjYXNlIFByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCOgorICAg
ICAgICByZXR1cm4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCOworI2lmIEVOQUJMRShERVNU
SU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgIGNhc2UgUHJlZGVmaW5lZENvbG9y
U3BhY2U6OkRpc3BsYXlQMzoKKyAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
RGlzcGxheVAzOworI2VuZGlmCisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKK30KKworfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xv
clNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CisK
K2VudW0gY2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgeworICAgIFNSR0IKKyNpZiBFTkFCTEUo
REVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICAsIERpc3BsYXlQMworI2Vu
ZGlmCit9OworCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNvbG9yU3BhY2Uo
UHJlZGVmaW5lZENvbG9yU3BhY2UpOworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6UHJlZGVmaW5l
ZENvbG9yU3BhY2UsCisgICAgICAgIFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpCisgICAgICAg
ICwgV2ViQ29yZTo6UHJlZGVmaW5lZENvbG9yU3BhY2U6OkRpc3BsYXlQMworI2VuZGlmCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI3ByZWRlZmluZWRjb2xvcnNw
YWNlCitlbnVtIFByZWRlZmluZWRDb2xvclNwYWNlIHsKKyAgICAic3JnYiIKKyNpZiBkZWZpbmVk
KEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKSAmJiBFTkFCTEVfREVT
VElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMworICAgICwgImRpc3BsYXktcDMiCisjZW5k
aWYKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDkgQEAKIAogI2lmIEVOQUJMRShEQVRFX0FO
RF9USU1FX0lOUFVUX1RZUEVTKQogCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2OTI5KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDUtMDMg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFy
eSBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UgZm9yIDJEIGNhbnZhcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIHRl
c3RzIGZvciBjb2xvciBzcGFjZSBpbiBjYW52YXMgc3VwcG9ydC4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJs
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNv
bG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlz
cGxheS1wMy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sOiBBZGRlZC4KKwogMjAyMS0wNS0wMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjc0NDYxKTogW21hY09TIHdrMV0gZmFzdC9yZXBhaW50L2NhbnZhcy1vYmplY3QtZml0Lmh0
bWwgaXMgZmxha2V5IHRleHQgZmFpbGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorVGVzdCB0aGF0IHRoZSBjb2xvclNwYWNlIG1lbWJl
ciBvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncyBpcyB1bnN1cHBvcnRlZCB3aGVu
IENhbnZhc0NvbG9yU3BhY2VFbmFibGVkPWZhbHNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSBpcyB1bmRlZmluZWQuCitQQVNT
IHRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIGlzIHVuZGVmaW5lZC4KK1BBU1MgdGVzdFNldHRpbmdz
LmNvbG9yU3BhY2UgaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29s
b3JTcGFjZS1kaXNhYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UgXSAt
LT4KKzxodG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzIGlzIHVuc3VwcG9ydGVkIHdoZW4gQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9
ZmFsc2UuIik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3JTcGFjZVVuc3VwcG9ydGVkKHNldHRp
bmdzLCBleHBlY3RlZENvbG9yU3BhY2UpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCIyZCIsIHNldHRpbmdzKTsKKyAgICAgICAgd2luZG93LnRlc3RTZXR0aW5ncyA9
IGNvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmlu
ZWQoInRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIik7CisgICAgfQorCisgICAgdGVzdENvbG9yU3Bh
Y2VVbnN1cHBvcnRlZCh1bmRlZmluZWQpOworICAgIHRlc3RDb2xvclNwYWNlVW5zdXBwb3J0ZWQo
eyBjb2xvclNwYWNlOiAic3JnYiIgfSk7CisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBvcnRlZCh7
IGNvbG9yU3BhY2U6ICJmb28iIH0pOworPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRT
ZXR0aW5ncy1jb2xvclNwYWNlLWVuYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNv
bG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFj
ZS1lbmFibGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitU
ZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzIGlzIHN1cHBvcnRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdFNldHRpbmdzLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIHRlc3RTZXR0aW5n
cy5jb2xvclNwYWNlIGlzICJzcmdiIgorUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52
YXMiKS5nZXRDb250ZXh0KCIyZCIsIHsgY29sb3JTcGFjZTogImZvbyIgfSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWVuYWJsZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRTZXR0aW5ncy1jb2xvclNwYWNlLWVuYWJsZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xv
clNwYWNlLWVuYWJsZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACis8aHRt
bD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0
aGF0IHRoZSBjb2xvclNwYWNlIG1lbWJlciBvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0
aW5ncyBpcyBzdXBwb3J0ZWQuIik7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3JTcGFjZShzZXR0
aW5ncywgZXhwZWN0ZWRDb2xvclNwYWNlKSB7CisgICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBjYW52YXMu
Z2V0Q29udGV4dCgiMmQiLCBzZXR0aW5ncyk7CisgICAgICAgIHdpbmRvdy50ZXN0U2V0dGluZ3Mg
PSBjb250ZXh0LmdldENvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidGVzdFNldHRpbmdzLmNvbG9yU3BhY2UiLCAic3JnYiIpOworICAgIH0KKworICAg
IC8vIFRlc3QgZGVmYXVsdCB2YWx1ZSBvZiBjb2xvclNwYWNlIGlzICJzcmdiIi4KKyAgICB0ZXN0
Q29sb3JTcGFjZSh1bmRlZmluZWQsICJzcmdiIik7CisKKyAgICAvLyBUZXN0IHNldHRpbmcgY29s
b3JTcGFjZSB0byAic3JnYiIgd29ya3MuCisgICAgdGVzdENvbG9yU3BhY2UoeyBjb2xvclNwYWNl
OiAic3JnYiIgfSwgInNyZ2IiKTsKKworICAgIC8vIFRlc3Qgc2V0dGluZyBjb2xvclNwYWNlIHRv
IGFuIHVuc3VwcG9ydGVkIHZhbHVlLgorICAgIHNob3VsZFRocm93RXJyb3JOYW1lKGBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIsIHsgY29sb3JTcGFjZTog
ImZvbyIgfSlgLCAiVHlwZUVycm9yIikKKzwvc2NyaXB0PgorICAgIAorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3Bs
YXktcDMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1leHBlY3RlZC5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5
LXAzLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACis8c3R5bGU+
CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6ICMwMDk5MDA7IHdpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgbWFyZ2luLWJvdHRvbTogMDsgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxw
PlRoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIHNxdWFyZSBiZWxvdyBsb29rcyB0byBiZSBhbGwgb25l
IGNvbG9yPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZiI+IDwvZGl2PgorPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3Bh
Y2UtZGlzcGxheS1wMy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNyBAQAorPHN0eWxlPgorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5
OTAwOyB3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgbWFyZ2luLWJvdHRvbTogMDsgfQorPC9z
dHlsZT4KKzxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIHNxdWFyZSBiZWxv
dyBsb29rcyB0byBiZSBhbGwgb25lIGNvbG9yPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZiI+IDwv
ZGl2PgorICAgIDxjYW52YXMgaWQ9InRlc3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iNTAiPjwvY2Fu
dmFzPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0
KCIyZCIsIHsgY29sb3JTcGFjZTogImRpc3BsYXktcDMiIH0pOworCisgICAgICAgIGNvbnRleHQu
YmVnaW5QYXRoKCk7CisgICAgICAgIGNvbnRleHQucmVjdCgwLCAwLCAxMDAsIDUwKTsKKyAgICAg
ICAgY29udGV4dC5maWxsU3R5bGUgPSAiY29sb3IoZGlzcGxheS1wMyAwLjI2Mzc0IDAuNTkwODUg
MC4xNjQzNCkiOworICAgICAgICBjb250ZXh0LmZpbGwoKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9k
eT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427628</attachid>
            <date>2021-05-03 18:29:36 -0700</date>
            <delta_ts>2021-05-04 09:06:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210503164511.patch</filename>
            <type>text/plain</type>
            <size>39084</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIENh
bnZhc0NvbG9yU3BhY2VFbmFibGVkLCB3aGljaCBibG9ja3MKKyAgICAgICAgYWNjZXNzIHRvIHRo
ZSBuZXcgYWJpbGl0eSB0byBzcGVjaWZ5IGNvbG9yIHNwYWNlcyBmb3IgMkQgY2FudmFzLgorCisg
ICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sOgorCiAyMDIxLTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBKU0NPbmx5IGJ1aWxkIHdpdGggcmVjZW50
IGNsYW5nIGFmdGVyIHIyNzY4NzkKSW5kZXg6IFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCShy
ZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwx
OCBAQCBDU1NUeXBlZE9NRW5hYmxlZDoKICAgICAgICJFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSI6IHRydWUKICAgICAgIGRl
ZmF1bHQ6IGZhbHNlCiAKK0NhbnZhc0NvbG9yU3BhY2VFbmFibGVkOgorICB0eXBlOiBib29sCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQ2FudmFzIENvbG9yIFNwYWNlcyIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiRW5hYmxlIHVzZSBvZiBwcmVkZWZpbmVkIGNhbnZhcyBjb2xvciBzcGFj
ZXMiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisKIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2Fw
dHVyZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg0IEBACisyMDIxLTA1LTAzICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkg
c3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nh
bnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3Mu
aWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzLmg6CisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nIGJsb2NrZWQgbWVtYmVyIHRvIHRoZSBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncworICAgICAgICBkaWN0aW9uYXJ5IGZvciBz
cGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UuIAorCisgICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZp
bmVkQ29sb3JTcGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVk
Q29sb3JTcGFjZS5pZGw6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgSURMIGVudW1lcmF0aW9u
IHRvIHJlcHJlc2VudCB0aGUgcG9zc2libGUgY29sb3Igc3BhY2VzIHN1cHBvcnRlZC4KKyAgICAg
ICAgRm9yIHBvcnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBEaXNwbGF5UDMsIHRyeWluZyB0byB1c2Ug
aXQgd2lsbCByZXN1bHQgaW4gCisgICAgICAgIHR5cGUgZXJyb3IgZnJvbSBKUy4KKworICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgQWRkIGNoZWNrcyBmb3IgY29sb3Igc3BhY2Ug
YW5kIHBpeGVsIGZvcm1hdCB0byAyZCBjb250ZXh0IHJlc2V0IG9wdGltYXRpb24uCisgICAgICAg
IFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgaW1hZ2UgYnVmZmVyIGlzIGFsbG9jYXRlZCBwcmlvciB0
byB0aGUgY29udGV4dCBiZWluZworICAgICAgICByZXF1ZXN0ZWQgKHN1Y2ggYXMgdmlhIGNhbnZh
cy50b0RhdGFVUkwoKSBvciBjYW52YXMudG9CbG9iKCkpLgorCisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICBQYXNz
IHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3JtYXQgKHRob3VnaAorICAgICAg
ICB0aGUgbGF0ZXIgaXMgYWx3YXlzIEJHUkE4IGF0IHRoZSBtb21lbnQpIHRvIHRoZSBJbWFnZUJ1
ZmZlcgorICAgICAgICBjcmVhdGUgZnVuY3Rpb24gdG8gbWFrZSBhIGJhY2tpbmcgc3RvcmUgaW4g
dGhlIHJpZ2h0IGZvcm1hdC4KKworICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWlu
dGluZyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAg
IFBhc3MgY29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCB0aHJvdWdoIHRvIGVuc3VyZSB0aGUg
aGVscGVyCisgICAgICAgIGJ1ZmZlciBtYXRjaGVzIHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlLgor
CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgIFBhc3MgdGhlIGV4aXN0aW5nIGRlZmF1
bHRzIHRvIEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nLgorICAgICAg
ICBJbiB0aGUgZnV0dXJlLCBJbWFnZUJpdG1hcCB3aWxsIGFsc28gZ2FpbiBjb2xvciBzcGFjZSBh
bmQgcGl4ZWwKKyAgICAgICAgZm9ybWF0IHNwZWNpZmljaXR5IGFuZCB0aGlzIHdpbGwgYmUgdXBk
YXRlZC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6cGl4ZWxGb3JtYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6Y29sb3JT
cGFjZSBjb25zdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oOgorICAgICAgICBBZGQgdmlydHVhbCBiYXNlIGltcGxlbWVudGF0aW9ucyBvZiBjb2xvclNw
YWNlIGFuZCBwaXhlbEZvcm1hdAorICAgICAgICB3aGljaCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgY2FuIG92ZXJyaWRlIHRvIHJldHVybiB0aGUKKyAgICAgICAgdmFsdWVzIHNwZWNpZmllZCBp
biB0aGUgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmb250UHJveHkgY29uc3QpOgorICAgICAgICBGaXggaW5jb3Jy
ZWN0IGZvcm1hdHRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6cGl4ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb2xvclNwYWNlIGNvbnN0KToKKyAgICAgICAgQWRkIG92ZXJyaWRlcywg
cmV0dXJuIG1fc2V0dGluZ3MuY29sb3JTcGFjZSBmb3IgY29sb3JTcGFjZS4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNvbXBvc2l0
aW5nQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmNyZWF0ZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6ZHJhd1RleHRVbmNoZWNrZWQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBj
b2xvclNwYWNlIGFuZCBwaXhlbEZvcm1hdCB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMuCisKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAg
ICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMgdGhhdCBhcmUgbm93IG5lZWRlZC4KKwogMjAyMS0wNS0w
MyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11b
RkNSXSBNaXNzaW5nIGZpbGwgY29sb3Igb24gc2xpZGVyIHRpY2tzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIHNldChXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlkbAog
ICAgIGh0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyAgICBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29s
b3JTcGFjZS5pZGwKIAogICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICAgICBodG1sL3Ry
YWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MDk4LDYgKzEwOTgsNyBAQCAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
CiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QYWludFJlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyQoUFJPSkVD
VF9ESVIpL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAogJChQUk9KRUNUX0RJ
UikvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQyLDYgKzE2NDIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bvc2l0aW9u
T3B0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1Bvc3RNZXNzYWdlT3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUG9zdE1lc3NhZ2VPcHRpb25zLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ByZWRlZmluZWRDb2xv
clNwYWNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05NTksNiArOTU5
LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1BhdGgyRC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvUHJlZGVm
aW5lZENvbG9yU3BhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQWN0
aXZlSW5mby5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTM0NCw2ICsxMzQ0LDcgQEAgaHRtbC9j
YW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udAogaHRtbC9jYW52YXMvUGFpbnRSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCiBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCiBodG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCitodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29s
b3JTcGFjZS5jcHAKIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCiBodG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKIGh0bWwvY2FudmFzL1dlYkdMQ29sb3JCdWZmZXJGbG9h
dC5jcHAKQEAgLTMzNjcsNiArMzM2OCw3IEBAIEpTUG9zaXRpb25DYWxsYmFjay5jcHAKIEpTUG9z
aXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Bvc3RNZXNz
YWdlT3B0aW9ucy5jcHAKK0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiBKU1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKIEpTUHJvZ3Jlc3NFdmVudC5jcHAKIEpTUHJvbWlzZVJlamVjdGlvbkV2
ZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMxNSw2ICsx
NDMxNSw5IEBACiAJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzc4QkIwRDE1RjY0MjAwQjc5
M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY2hlZHVsZWRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBNTU5
MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBpeGVsRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDQTU1OTFBMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0E1NTkxQzI2M0YxMEI5MDA3RjE5QjMgLyogUHJlZGVmaW5lZENvbG9yU3BhY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkNBNTU5MUQyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFU
cmFuc2Zlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVyLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpT
RGF0YVRyYW5zZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RGF0YVRyYW5zZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEUw
RDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMDE4Niw2ICsyMDE4OSw5IEBACiAJCQkJN0MxOTNCQjQxRjVFMEVCNzAwODhGM0U2IC8q
IFBhdGgyRC5pZGwgKi8sCiAJCQkJN0M3OTAzQkExRjg2RkYzMzAwNDYzQTcwIC8qIFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcw
IC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCUJDQTU1OTFEMjYzRjEw
QjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAgKi8sCisJCQkJQkNBNTU5MUEy
NjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmggKi8sCisJCQkJQkNBNTU5
MUMyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmlkbCAqLywKIAkJCQlE
M0YzRDM1QjFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8s
CiAJCQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aCAqLywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5pZGwgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw3ICs2MDgsNyBAQCB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgSW50U2l6ZSBuZXdTaXplKHcsIGgpOwogICAgIC8v
IElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBj
bGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9wdGltaXphdGlv
biBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYgKG1faGFzQ3Jl
YXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2NvbnRleHQgJiYgbV9j
b250ZXh0LT5pczJkKCkpIHsKKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xk
U2l6ZSA9PSBuZXdTaXplICYmIG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQoKSAmJiBtX2Nv
bnRleHQtPmNvbG9yU3BhY2UoKSA9PSBidWZmZXIoKS0+Y29sb3JTcGFjZSgpICYmIG1fY29udGV4
dC0+cGl4ZWxGb3JtYXQoKSA9PSBidWZmZXIoKS0+cGl4ZWxGb3JtYXQoKSkgewogICAgICAgICBp
ZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIGNsZWFySW1hZ2VCdWZmZXIo
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTQzLDcgKzk0MywxNSBAQCB2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlCiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gc2hvdWxk
QWNjZWxlcmF0ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBm
b3IgRGlzcGxheUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCiAgICAgYXV0byB1c2VEaXNwbGF5TGlz
dCA9IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS5kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olll
cyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRl
cmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhl
bEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpKTsKKworICAgIGF1dG8gW2NvbG9yU3BhY2UsIHBp
eGVsRm9ybWF0XSA9IFsmXSB7CisgICAgICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpwYWlyIHsgbV9jb250ZXh0LT5jb2xvclNwYWNlKCksIG1fY29udGV4dC0+cGl4
ZWxGb3JtYXQoKSB9OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc3RkOjpwYWly
IHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTggfTsKKyAg
ICB9KCk7CisKKyAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwg
cmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywg
MSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpKTsKIAogICAgIGlmIChidWZm
ZXIoKSAmJiBidWZmZXIoKS0+ZHJhd2luZ0NvbnRleHQoKSkKICAgICAgICAgYnVmZmVyKCktPmRy
YXdpbmdDb250ZXh0KCktPnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxh
eUxpc3RSZXBsYXkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsMTEgKzI4MSwxMSBAQCB2b2lkIEhUTUxW
aWRlb0VsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWCiAgICAgICAgIHJlbmRlcmVyLT51cGRhdGVG
cm9tRWxlbWVudCgpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IEhUTUxWaWRlb0VsZW1lbnQ6
OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKSBjb25zdAorUmVmUHRyPEltYWdlQnVmZmVyPiBIVE1MVmlkZW9F
bGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWludGluZyhjb25zdCBGbG9hdFNpemUmIHNpemUsIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KSBjb25zdAogewogICAgIGF1dG8qIGhvc3RXaW5k
b3cgPSBkb2N1bWVudCgpLnZpZXcoKSAmJiBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpID8gZG9j
dW1lbnQoKS52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpIDogbnVsbHB0cjsKICAgICBhdXRv
IHNob3VsZFVzZURpc3BsYXlMaXN0ID0gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmRpc3BsYXlMaXN0
RHJhd2luZ0VuYWJsZWQoKSA/IFNob3VsZFVzZURpc3BsYXlMaXN0OjpZZXMgOiBTaG91bGRVc2VE
aXNwbGF5TGlzdDo6Tm87Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVu
ZGVyaW5nTW9kZSwgc2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlh
UGFpbnRpbmcsIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJH
UkE4LCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBy
ZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVk
aWFQYWludGluZywgMSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOwogfQog
CiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCShyZXZpc2lvbiAyNzY5MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsOCBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIFJlbmRlclZpZGVvOwogY2xh
c3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyOwogCitlbnVtIGNsYXNzIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVu
dW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTE1lZGlhRWxlbWVudCwgcHVibGljIFN1cHBsZW1lbnRhYmxlPEhU
TUxWaWRlb0VsZW1lbnQ+IHsKQEAgLTcwLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2Vi
a2l0UmVxdWVzdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVmUHRyPElt
YWdlQnVmZmVyPiBjcmVhdGVCdWZmZXJGb3JQYWludGluZyhjb25zdCBGbG9hdFNpemUmLCBSZW5k
ZXJpbmdNb2RlKSBjb25zdDsKKyAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUJ1ZmZlckZv
clBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSwgUGl4ZWxGb3JtYXQpIGNvbnN0OwogCiAgICAgLy8gVXNlZCBieSBjYW52YXMgdG8g
Z2FpbiByYXcgcGl4ZWwgYWNjZXNzCiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VCaXRtYXAuY3BwCShyZXZpc2lvbiAyNzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlQml0bWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAyLDcgKzUwMiw5IEBAIHZv
aWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXgKICAgICBhdXRvIHNvdXJjZVJl
Y3RhbmdsZSA9IG1heWJlU291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAg
ICAgYXV0byBvdXRwdXRTaXplID0gb3V0cHV0U2l6ZUZvclNvdXJjZVJlY3RhbmdsZShzb3VyY2VS
ZWN0YW5nbGUsIG9wdGlvbnMpOwotICAgIGF1dG8gYml0bWFwRGF0YSA9IHZpZGVvLT5jcmVhdGVC
dWZmZXJGb3JQYWludGluZyhvdXRwdXRTaXplLCBidWZmZXJSZW5kZXJpbmdNb2RlKTsKKworICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY29sb3Igc3BhY2VzIC8gcGl4ZWwgZm9ybWF0cyB0
byBJbWFnZUJpdG1hcC4KKyAgICBhdXRvIGJpdG1hcERhdGEgPSB2aWRlby0+Y3JlYXRlQnVmZmVy
Rm9yUGFpbnRpbmcob3V0cHV0U2l6ZSwgYnVmZmVyUmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgpOwogICAgIGlmICghYml0bWFwRGF0
YSkgewogICAgICAgICByZXNvbHZlV2l0aEJsYW5rSW1hZ2VCdWZmZXIoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgIXRhaW50c09yaWdpbihzY3JpcHRFeGVjdXRpb25Db250ZXh0LnNlY3VyaXR5T3Jp
Z2luKCksICp2aWRlbyksIFdURk1vdmUocHJvbWlzZSkpOwogICAgICAgICByZXR1cm47CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlcldv
cmtlclNhZmUuaCIKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQu
aCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJT
dHlsZS5oIgogI2luY2x1ZGUgIlBhdGgyRC5oIgorI2luY2x1ZGUgIlBpeGVsRm9ybWF0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtMjExLDcgKzIxMyw4IEBAIFJlZjxUZXh0
TWV0cmljcz4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDIKICAgICByZXR1cm4gbWVhc3VyZVRleHRJ
bnRlcm5hbCh0ZXh0UnVuKTsKIH0KIAotYXV0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZv
bnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSogeworYXV0byBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSoKK3sKICAgICAvLyBJbnRlbnRp
b25hbGx5IGRvbid0IHVwZGF0ZSBzdHlsZSBoZXJlLCBiZWNhdXNlIHVwZGF0aW5nIHN0eWxlIGNh
biBjYXVzZSBKUyB0byBydW4gc3luY2hyb25vdXNseS4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcsIGFuZCBydW5uaW5nIGFyYml0cmFy
eSBKUyBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgYmVo
YXZpb3IuCiAgICAgLy8gSW5zdGVhZCwgdGhlIHJlbGV2YW50IGNhbnZhcyBlbnRyeSBwb2ludHMg
dXBkYXRlIHN0eWxlIG9uY2Ugd2hlbiB0aGV5IGJlZ2luIHJ1bm5pbmcsIGFuZCB3ZSB3b24ndCB0
b3VjaCB0aGUgc3R5bGUgYWZ0ZXIgdGhhdC4KQEAgLTI0Myw0ICsyNDYsMTUgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SQogICAgIGRyYXdUZXh0VW5jaGVja2VkKHRl
eHRSdW4sIHgsIHksIGZpbGwsIG1heFdpZHRoKTsKIH0KIAorUGl4ZWxGb3JtYXQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpwaXhlbEZvcm1hdCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFRh
a2UgbV9zZXR0aW5ncy5hbHBoYSBpbnRvIGFjY291bnQgaGVyZSBhbmQgYWRkIFBpeGVsRm9ybWF0
OjpCR1JYOC4KKyAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6OkJHUkE4OworfQorCitEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjb2xvclNwYWNlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdG9EZXN0aW5hdGlvbkNvbG9yU3BhY2UobV9zZXR0aW5ncy5jb2xvclNw
YWNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgJKHJldmlz
aW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw5IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGlzMmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgY29uc3Qg
Rm9udFByb3h5KiBmb250UHJveHkoKSBmaW5hbDsKKyAgICBQaXhlbEZvcm1hdCBwaXhlbEZvcm1h
dCgpIGNvbnN0IGZpbmFsOworICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIHNldEZvbnRXaXRob3V0VXBkYXRpbmdTdHlsZShjb25z
dCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRl
eHQsIGZsb2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgT3B0aW9uYWw8ZmxvYXQ+IG1heFdpZHRo
ID0gV1RGOjpudWxsb3B0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCShyZXZpc2lvbiAy
NzY5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogICAgICAgICByZXBhaW50RW50aXJl
Q2FudmFzID0gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09
IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7CiAgICAgICAgIGlmICgmc291cmNlQ2FudmFzID09
ICZjYW52YXNCYXNlKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGNvcHkgPSBidWZmZXItPmNv
cHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCAqYykp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNvcHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIo
c3JjUmVjdCwgY29sb3JTcGFjZSgpLCAqYykpIHsKICAgICAgICAgICAgICAgICBjbGVhckNhbnZh
cygpOwogICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwg
eyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRl
KCkuZ2xvYmFsQmxlbmQgfSk7CiAgICAgICAgICAgICB9CkBAIC0xODI5LDcgKzE4MjksNyBAQCB0
ZW1wbGF0ZTxjbGFzcyBUPiBJbnRSZWN0IENhbnZhc1JlbmRlcmluCiAKIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlQ29tcG9zaXRpbmdCdWZm
ZXIoY29uc3QgSW50UmVjdCYgYnVmZmVyUmVjdCkKIHsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwgaXNBY2NlbGVyYXRlZCgpID8gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0OjpCR1JBOCk7CisgICAgcmV0dXJuIElt
YWdlQnVmZmVyOjpjcmVhdGUoYnVmZmVyUmVjdC5zaXplKCksIGlzQWNjZWxlcmF0ZWQoKSA/IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwg
MSwgY29sb3JTcGFjZSgpLCBwaXhlbEZvcm1hdCgpKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlOjpjb21wb3NpdGVCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29u
c3QgSW50UmVjdCYgYnVmZmVyUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCkBAIC0yMDI2LDcg
KzIwMjYsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZhCiAjZW5k
aWYKIAogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9ICFkcmF3aW5nQ29udGV4dCgpIHx8IGRyYXdp
bmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgPyBSZW5kZXJpbmdNb2RlOjpBY2Nl
bGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci0gICAgYXV0byBpbWFnZUJ1
ZmZlciA9IHZpZGVvRWxlbWVudC5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhzaXplKHZpZGVvRWxl
bWVudCksIHJlbmRlcmluZ01vZGUpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSB2aWRlb0VsZW1l
bnQuY3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoc2l6ZSh2aWRlb0VsZW1lbnQpLCByZW5kZXJpbmdN
b2RlLCBjb2xvclNwYWNlKCksIHBpeGVsRm9ybWF0KCkpOwogICAgIGlmICghaW1hZ2VCdWZmZXIp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNDkwLDcgKzI0OTAsNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdUCiAgICAgICAgICAgICB9CiAgICAgICAg
IH07CiAKLSAgICAgICAgaWYgKGMtPmNsaXBUb0RyYXdpbmdDb21tYW5kcyhtYXNrUmVjdCwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBXVEZNb3ZlKHBhaW50TWFza0ltYWdlKSkgPT0gR3Jh
cGhpY3NDb250ZXh0OjpDbGlwVG9EcmF3aW5nQ29tbWFuZHNSZXN1bHQ6OkZhaWxlZFRvQ3JlYXRl
SW1hZ2VCdWZmZXIpCisgICAgICAgIGlmIChjLT5jbGlwVG9EcmF3aW5nQ29tbWFuZHMobWFza1Jl
Y3QsIGNvbG9yU3BhY2UoKSwgV1RGTW92ZShwYWludE1hc2tJbWFnZSkpID09IEdyYXBoaWNzQ29u
dGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzUmVzdWx0OjpGYWlsZWRUb0NyZWF0ZUltYWdlQnVm
ZmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxD
b2xvcigqYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmgJKHJldmlzaW9uIDI3Njky
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIlByZWRlZmluZWRDb2xvclNwYWNlLmgiCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKICAg
ICBib29sIGRlc3luY2hyb25pemVkIHsgZmFsc2UgfTsKKyAgICBQcmVkZWZpbmVkQ29sb3JTcGFj
ZSBjb2xvclNwYWNlIHsgUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0IgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5pZGwJKHJl
dmlzaW9uIDI3NjkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNCArMzAsNSBA
QAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgJ2FscGhhJy4KICAgICAvLyBib29sZWFu
IGFscGhhID0gdHJ1ZTsKICAgICBib29sZWFuIGRlc3luY2hyb25pemVkID0gZmFsc2U7CisgICAg
W0VuYWJsZWRCeVNldHRpbmc9Q2FudmFzQ29sb3JTcGFjZV0gUHJlZGVmaW5lZENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSA9ICJzcmdiIjsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMjc2OTI5
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjgsMTEgKzI4LDEzIEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgi
CiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKKyNpbmNsdWRlICJQaXhlbEZvcm1hdC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtODAsNiArODIsMTYgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0OjpkZXJlZigpCiAgICAgbV9jYW52YXMuZGVyZWZDYW52YXNCYXNl
KCk7CiB9CiAKK1BpeGVsRm9ybWF0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnBpeGVsRm9ybWF0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6OkJHUkE4OworfQorCitEZXN0aW5h
dGlvbkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6Y29sb3JTcGFjZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKK30KKwogYm9vbCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0Ojp3b3VsZFRhaW50T3JpZ2luKGNvbnN0IENhbnZhc1BhdHRl
cm4qIHBhdHRlcm4pCiB7CiAgICAgaWYgKG1fY2FudmFzLm9yaWdpbkNsZWFuKCkgJiYgcGF0dGVy
biAmJiAhcGF0dGVybi0+b3JpZ2luQ2xlYW4oKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDI3Njky
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOCBAQCBjbGFzcyBIVE1MVmlkZW9FbGVtZW50
OwogY2xhc3MgSW1hZ2VCaXRtYXA7CiBjbGFzcyBUeXBlZE9NQ1NTSW1hZ2VWYWx1ZTsKIGNsYXNz
IFdlYkdMT2JqZWN0OworZW51bSBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgOiB1aW50OF90
OworZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiAKIGNsYXNzIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDYW52YXNSZW5kZXJpbmdDb250ZXh0KTsKQEAgLTg2LDYgKzg4LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZXBhcmF0aW9uRm9yRGlzcGxheSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgeyB9
CiAKKyAgICB2aXJ0dWFsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkgY29uc3Q7CisgICAgdmly
dHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CiAg
ICAgYm9vbCB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IENhbnZhc1BhdHRlcm4qKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5j
cHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5l
ZENvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlZGVmaW5lZENvbG9yU3BhY2Uu
aCIKKworI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNvbG9yU3BhY2UoUHJlZGVmaW5lZENv
bG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBzd2l0Y2ggKGNvbG9yU3BhY2UpIHsKKyAgICBj
YXNlIFByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCOgorICAgICAgICByZXR1cm4gRGVzdGluYXRp
b25Db2xvclNwYWNlOjpTUkdCOworI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9E
SVNQTEFZX1AzKQorICAgIGNhc2UgUHJlZGVmaW5lZENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKKyAg
ICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6RGlzcGxheVAzOworI2VuZGlmCisg
ICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQjsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNz
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CisKK2VudW0gY2xhc3MgUHJlZGVmaW5l
ZENvbG9yU3BhY2UgeworICAgIFNSR0IKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BB
Q0VfRElTUExBWV9QMykKKyAgICAsIERpc3BsYXlQMworI2VuZGlmCit9OworCitEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNvbG9yU3BhY2UoUHJlZGVmaW5lZENvbG9yU3BhY2Up
OworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6UHJlZGVmaW5lZENvbG9yU3BhY2UsCisgICAgICAg
IFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCCisjaWYgRU5BQkxFKERFU1RJTkFU
SU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpCisgICAgICAgICwgV2ViQ29yZTo6UHJlZGVmaW5l
ZENvbG9yU3BhY2U6OkRpc3BsYXlQMworI2VuZGlmCisgICAgPjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9y
U3BhY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRl
ZmluZWRDb2xvclNwYWNlLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL2NhbnZhcy5odG1sI3ByZWRlZmluZWRjb2xvcnNwYWNlCitlbnVtIFByZWRlZmluZWRD
b2xvclNwYWNlIHsKKyAgICAic3JnYiIKKyNpZiBkZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9D
T0xPUl9TUEFDRV9ESVNQTEFZX1AzKSAmJiBFTkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0Vf
RElTUExBWV9QMworICAgICwgImRpc3BsYXktcDMiCisjZW5kaWYKK307CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50LmNwcAkocmV2aXNpb24gMjc2OTI5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDkgQEAKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQog
CisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjc2OTI5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDUtMDMgIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBzcGVjaWZ5
aW5nIGEgY29sb3Igc3BhY2UgZm9yIDJEIGNhbnZhcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIHRlc3RzIGZvciBjb2xvciBzcGFjZSBp
biBjYW52YXMgc3VwcG9ydC4KKworICAgICAgICAqIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5n
cy1jb2xvclNwYWNlLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxh
eS1wMy5odG1sOiBBZGRlZC4KKwogMjAyMS0wNS0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjc0NDYxKTogW21hY09TIHdr
MV0gZmFzdC9yZXBhaW50L2NhbnZhcy1vYmplY3QtZml0Lmh0bWwgaXMgZmxha2V5IHRleHQgZmFp
bGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGlu
Z3MtY29sb3JTcGFjZS1kaXNhYmxlZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29s
b3JTcGFjZS1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAorVGVzdCB0aGF0IHRoZSBjb2xvclNwYWNlIG1lbWJlciBvZiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRTZXR0aW5ncyBpcyB1bnN1cHBvcnRlZCB3aGVuIENhbnZhc0NvbG9yU3BhY2VFbmFi
bGVkPWZhbHNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0U2V0
dGluZ3MuY29sb3JTcGFjZSBpcyB1bmRlZmluZWQuCitQQVNTIHRlc3RTZXR0aW5ncy5jb2xvclNw
YWNlIGlzIHVuZGVmaW5lZC4KK1BBU1MgdGVzdFNldHRpbmdzLmNvbG9yU3BhY2UgaXMgdW5kZWZp
bmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNl
dHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNl
LWRpc2FibGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgdGhlIGNvbG9y
U3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGlzIHVuc3Vw
cG9ydGVkIHdoZW4gQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UuIik7CisKKyAgICBmdW5j
dGlvbiB0ZXN0Q29sb3JTcGFjZVVuc3VwcG9ydGVkKHNldHRpbmdzLCBleHBlY3RlZENvbG9yU3Bh
Y2UpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIsIHNldHRp
bmdzKTsKKyAgICAgICAgd2luZG93LnRlc3RTZXR0aW5ncyA9IGNvbnRleHQuZ2V0Q29udGV4dEF0
dHJpYnV0ZXMoKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoInRlc3RTZXR0aW5ncy5jb2xv
clNwYWNlIik7CisgICAgfQorCisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBvcnRlZCh1bmRlZmlu
ZWQpOworICAgIHRlc3RDb2xvclNwYWNlVW5zdXBwb3J0ZWQoeyBjb2xvclNwYWNlOiAic3JnYiIg
fSk7CisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBvcnRlZCh7IGNvbG9yU3BhY2U6ICJmb28iIH0p
OworPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWVu
YWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgdGhlIGNvbG9yU3Bh
Y2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGlzIHN1cHBvcnRl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFNldHRpbmdzLmNv
bG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIHRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIGlzICJzcmdi
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIs
IHsgY29sb3JTcGFjZTogImZvbyIgfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRT
ZXR0aW5ncy1jb2xvclNwYWNlLWVuYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNl
LWVuYWJsZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWVuYWJsZWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHRoZSBjb2xvclNwYWNlIG1l
bWJlciBvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncyBpcyBzdXBwb3J0ZWQuIik7
CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3JTcGFjZShzZXR0aW5ncywgZXhwZWN0ZWRDb2xvclNw
YWNlKSB7CisgICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52
YXMiKTsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiLCBzZXR0
aW5ncyk7CisgICAgICAgIHdpbmRvdy50ZXN0U2V0dGluZ3MgPSBjb250ZXh0LmdldENvbnRleHRB
dHRyaWJ1dGVzKCk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFNldHRpbmdz
LmNvbG9yU3BhY2UiLCAic3JnYiIpOworICAgIH0KKworICAgIC8vIFRlc3QgZGVmYXVsdCB2YWx1
ZSBvZiBjb2xvclNwYWNlIGlzICJzcmdiIi4KKyAgICB0ZXN0Q29sb3JTcGFjZSh1bmRlZmluZWQs
ICJzcmdiIik7CisKKyAgICAvLyBUZXN0IHNldHRpbmcgY29sb3JTcGFjZSB0byAic3JnYiIgd29y
a3MuCisgICAgdGVzdENvbG9yU3BhY2UoeyBjb2xvclNwYWNlOiAic3JnYiIgfSwgInNyZ2IiKTsK
KworICAgIC8vIFRlc3Qgc2V0dGluZyBjb2xvclNwYWNlIHRvIGFuIHVuc3VwcG9ydGVkIHZhbHVl
LgorICAgIHNob3VsZFRocm93RXJyb3JOYW1lKGBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52
YXMiKS5nZXRDb250ZXh0KCIyZCIsIHsgY29sb3JTcGFjZTogImZvbyIgfSlgLCAiVHlwZUVycm9y
IikKKzwvc2NyaXB0PgorICAgIAorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMtZXhwZWN0ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2Ut
ZGlzcGxheS1wMy1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLWV4cGVjdGVkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACis8c3R5bGU+CisgICAgLnJlZiB7IGJhY2tncm91
bmQtY29sb3I6ICMwMDk5MDA7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgbWFyZ2luLWJv
dHRvbTogMDsgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYg
dGhlIHNxdWFyZSBiZWxvdyBsb29rcyB0byBiZSBhbGwgb25lIGNvbG9yPC9wPgorICAgIDxkaXYg
Y2xhc3M9InJlZiI+IDwvZGl2PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFj
ZS1kaXNwbGF5LXAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorPHN0eWxl
PgorICAgIC5yZWYgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5OTAwOyB3aWR0aDogMTAwcHg7IGhl
aWdodDogNTBweDsgbWFyZ2luLWJvdHRvbTogMDsgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxw
PlRoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIHNxdWFyZSBiZWxvdyBsb29rcyB0byBiZSBhbGwgb25l
IGNvbG9yPC9wPgorICAgIDxkaXYgY2xhc3M9InJlZiI+IDwvZGl2PgorICAgIDxjYW52YXMgaWQ9
InRlc3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iNTAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAg
ICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIsIHsgY29sb3JTcGFjZTog
ImRpc3BsYXktcDMiIH0pOworCisgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgICAg
IGNvbnRleHQucmVjdCgwLCAwLCAxMDAsIDUwKTsKKyAgICAgICAgY29udGV4dC5maWxsU3R5bGUg
PSAiY29sb3IoZGlzcGxheS1wMyAwLjI2Mzc0IDAuNTkwODUgMC4xNjQzNCkiOworICAgICAgICBj
b250ZXh0LmZpbGwoKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427674</attachid>
            <date>2021-05-04 09:06:17 -0700</date>
            <delta_ts>2021-05-05 08:53:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210504090616.patch</filename>
            <type>text/plain</type>
            <size>39047</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY5NTUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTA0ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUsIENh
bnZhc0NvbG9yU3BhY2VFbmFibGVkLCB3aGljaCBibG9ja3MKKyAgICAgICAgYWNjZXNzIHRvIHRo
ZSBuZXcgYWJpbGl0eSB0byBzcGVjaWZ5IGNvbG9yIHNwYWNlcyBmb3IgMkQgY2FudmFzLgorCisg
ICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sOgorCiAyMDIxLTA1LTAzICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0dQVVBdIE1vdmUgR1BVUHJvY2VzcyBXZWJHTCB0byBFeHBlcmltZW50YWwg
RmVhdHVyZQpJbmRleDogU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwJKHJldmlzaW9uIDI3Njk1
NSkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVy
aW1lbnRhbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDE4IEBAIENTU1R5cGVk
T01FbmFibGVkOgogICAgICAgIkVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpICYmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpIjogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UK
IAorQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJDYW52YXMgQ29sb3IgU3BhY2VzIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJFbmFibGUgdXNlIG9mIHByZWRlZmluZWQgY2FudmFzIGNvbG9yIHNwYWNlcyIKKyAgZGVmYXVs
dFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2Vi
S2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDog
ZmFsc2UKKwogQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZDoKICAgdHlwZTogYm9vbAog
ICBodW1hblJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBWaWRlbyBDYXB0dXJlIgpJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMjc2OTU1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODQgQEAKKzIwMjEtMDUtMDQgIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBz
cGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UgZm9yIDJEIGNhbnZhcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29s
b3JTcGFjZS1lbmFibGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY2FudmFzL2NhbnZhcy1j
b2xvci1zcGFjZS1kaXNwbGF5LXAzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5pZGw6CisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaDoKKyAgICAg
ICAgQWRkIGEgbmV3IHNldHRpbmcgYmxvY2tlZCBtZW1iZXIgdG8gdGhlIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRFNldHRpbmdzCisgICAgICAgIGRpY3Rpb25hcnkgZm9yIHNwZWNpZnlpbmcgYSBj
b2xvciBzcGFjZS4gCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFj
ZS5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNl
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlk
bDogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyBJREwgZW51bWVyYXRpb24gdG8gcmVwcmVzZW50
IHRoZSBwb3NzaWJsZSBjb2xvciBzcGFjZXMgc3VwcG9ydGVkLgorICAgICAgICBGb3IgcG9ydHMg
dGhhdCBkb24ndCBzdXBwb3J0IERpc3BsYXlQMywgdHJ5aW5nIHRvIHVzZSBpdCB3aWxsIHJlc3Vs
dCBpbiAKKyAgICAgICAgdHlwZSBlcnJvciBmcm9tIEpTLgorCisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
cmVzZXQpOgorICAgICAgICBBZGQgY2hlY2tzIGZvciBjb2xvciBzcGFjZSBhbmQgcGl4ZWwgZm9y
bWF0IHRvIDJkIGNvbnRleHQgcmVzZXQgb3B0aW1hdGlvbi4KKyAgICAgICAgVGhpcyBjYW4gaGFw
cGVuIGlmIHRoZSBpbWFnZSBidWZmZXIgaXMgYWxsb2NhdGVkIHByaW9yIHRvIHRoZSBjb250ZXh0
IGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCAoc3VjaCBhcyB2aWEgY2FudmFzLnRvRGF0YVVSTCgp
IG9yIGNhbnZhcy50b0Jsb2IoKSkuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgIFBhc3MgdGhlIGNvcnJlY3Qg
Y29sb3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCAodGhvdWdoCisgICAgICAgIHRoZSBsYXRlciBp
cyBhbHdheXMgQkdSQTggYXQgdGhlIG1vbWVudCkgdG8gdGhlIEltYWdlQnVmZmVyCisgICAgICAg
IGNyZWF0ZSBmdW5jdGlvbiB0byBtYWtlIGEgYmFja2luZyBzdG9yZSBpbiB0aGUgcmlnaHQgZm9y
bWF0LgorCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgUGFzcyBjb2xvciBz
cGFjZSBhbmQgcGl4ZWwgZm9ybWF0IHRocm91Z2ggdG8gZW5zdXJlIHRoZSBoZWxwZXIKKyAgICAg
ICAgYnVmZmVyIG1hdGNoZXMgdGhlIGNvcnJlY3QgY29sb3Igc3BhY2UuCisKKyAgICAgICAgKiBo
dG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQml0bWFwOjpjcmVh
dGVQcm9taXNlKToKKyAgICAgICAgUGFzcyB0aGUgZXhpc3RpbmcgZGVmYXVsdHMgdG8gSFRNTFZp
ZGVvRWxlbWVudDo6Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcuCisgICAgICAgIEluIHRoZSBmdXR1
cmUsIEltYWdlQml0bWFwIHdpbGwgYWxzbyBnYWluIGNvbG9yIHNwYWNlIGFuZCBwaXhlbAorICAg
ICAgICBmb3JtYXQgc3BlY2lmaWNpdHkgYW5kIHRoaXMgd2lsbCBiZSB1cGRhdGVkLgorCisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpwaXhlbEZvcm1hdCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojpjb2xvclNwYWNlIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAg
IEFkZCB2aXJ0dWFsIGJhc2UgaW1wbGVtZW50YXRpb25zIG9mIGNvbG9yU3BhY2UgYW5kIHBpeGVs
Rm9ybWF0CisgICAgICAgIHdoaWNoIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBjYW4gb3ZlcnJp
ZGUgdG8gcmV0dXJuIHRoZQorICAgICAgICB2YWx1ZXMgc3BlY2lmaWVkIGluIHRoZSBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmZvbnRQcm94eSBjb25zdCk6CisgICAgICAgIEZpeCBpbmNvcnJlY3QgZm9ybWF0dGlu
Zy4KKworICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwaXhlbEZv
cm1hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmNvbG9yU3BhY2UgY29uc3QpOgorICAgICAgICBBZGQgb3ZlcnJpZGVzLCByZXR1cm4gbV9zZXR0
aW5ncy5jb2xvclNwYWNlIGZvciBjb2xvclNwYWNlLgorCisgICAgICAgICogaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlQ29tcG9zaXRpbmdCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlUGF0
dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpk
cmF3VGV4dFVuY2hlY2tlZCk6CisgICAgICAgIFBhc3MgYWxvbmcgdGhlIGNvbG9yU3BhY2UgYW5k
IHBpeGVsRm9ybWF0IHdoZW4gY3JlYXRpbmcgYnVmZmVycy4KKworICAgICAgICAqIGh0bWwvc2hh
ZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICBBZGQgbWlzc2lu
ZyBpbmNsdWRlcyB0aGF0IGFyZSBub3cgbmVlZGVkLgorCiAyMDIxLTA1LTA0ICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2ViUlRDXVtHU3RyZWFt
ZXJdIGZhc3QvbWVkaWFzdHJlYW0vcmVzaXplLXRyaW0uaHRtbCBpcyBmYWlsaW5nCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjc2OTU1KQorKysgU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4
dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyAgICBodG1sL2NhbnZhcy9QcmVk
ZWZpbmVkQ29sb3JTcGFjZS5pZGwKIAogICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICAg
ICBodG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNzY5NTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNv
cHkpCkBAIC0xMDk4LDYgKzEwOTgsNyBAQCAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PRVNW
ZXJ0ZXhBcnJhCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9QYWludFJlbmRl
cmluZ0NvbnRleHQyRC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwK
KyQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAogJChQ
Uk9KRUNUX0RJUikvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKICQoUFJP
SkVDVF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI3Njk1NSkKKysrIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNv
cHkpCkBAIC0xNjQyLDYgKzE2NDIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1Bvc2l0aW9uT3B0aW9ucy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1Bvc3RNZXNzYWdlT3B0aW9ucy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUG9zdE1lc3NhZ2VPcHRpb25zLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2Uu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ByZWRl
ZmluZWRDb2xvclNwYWNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNw
cApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNzY5NTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05
NTksNiArOTU5LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9jYW52
YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L1dlYkdMQWN0aXZlSW5mby5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xC
dWZmZXIuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzY5NTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTM0NCw2ICsxMzQ0LDcg
QEAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udAogaHRtbC9jYW52YXMv
UGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuY3BwCiBodG1sL2NhbnZhcy9QYXRoMkQuY3BwCiBodG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCitodG1sL2NhbnZhcy9QcmVk
ZWZpbmVkQ29sb3JTcGFjZS5jcHAKIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
Y3BwCiBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKIGh0bWwvY2FudmFzL1dlYkdMQ29sb3JC
dWZmZXJGbG9hdC5jcHAKQEAgLTMzNjcsNiArMzM2OCw3IEBAIEpTUG9zaXRpb25DYWxsYmFjay5j
cHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBK
U1Bvc3RNZXNzYWdlT3B0aW9ucy5jcHAKK0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiBKU1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKIEpTUHJvZ3Jlc3NFdmVudC5jcHAKIEpTUHJvbWlzZVJl
amVjdGlvbkV2ZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjc2OTU1KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDMxNyw2ICsxNDMxNyw5IEBACiAJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVs
ZWRBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1
bGVkQWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzc4QkIwRDE1
RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY2hlZHVsZWRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNBNTU5MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpeGVsRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDQTU1OTFBMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQ0E1NTkxQzI2M0YxMEI5MDA3RjE5QjMgLyogUHJlZGVmaW5lZENv
bG9yU3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkNBNTU5MUQyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRD
b2xvclNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4
IC8qIERhdGFUcmFuc2Zlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVy
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEQwRDdDRTFFOTAwMzQy
MUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRGF0YVRyYW5zZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNBODNFNEUwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMDE4OSw2ICsyMDE5Miw5IEBACiAJCQkJN0MxOTNCQjQxRjVFMEVCNzAw
ODhGM0U2IC8qIFBhdGgyRC5pZGwgKi8sCiAJCQkJN0M3OTAzQkExRjg2RkYzMzAwNDYzQTcwIC8q
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJN0M3OTAzQkMxRjg2RkYz
NDAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oICovLAorCQkJCUJDQTU1
OTFEMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAgKi8sCisJCQkJ
QkNBNTU5MUEyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmggKi8sCisJ
CQkJQkNBNTU5MUMyNjNGMTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmlkbCAq
LywKIAkJCQlEM0YzRDM1QjFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJRDNGM0QzNUMxQTY5QTUwNjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuaCAqLywKIAkJCQlEM0YzRDM1RDFBNjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5pZGwgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMjc2OTU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw3ICs2MDgsNyBAQCB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgSW50U2l6ZSBuZXdTaXplKHcsIGgp
OwogICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBj
YW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9w
dGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYg
KG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2NvbnRl
eHQgJiYgbV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZm
ZXIgJiYgb2xkU2l6ZSA9PSBuZXdTaXplICYmIG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQo
KSAmJiBidWZmZXIoKSAmJiBtX2NvbnRleHQtPmNvbG9yU3BhY2UoKSA9PSBidWZmZXIoKS0+Y29s
b3JTcGFjZSgpICYmIG1fY29udGV4dC0+cGl4ZWxGb3JtYXQoKSA9PSBidWZmZXIoKS0+cGl4ZWxG
b3JtYXQoKSkgewogICAgICAgICBpZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKICAgICAgICAg
ICAgIGNsZWFySW1hZ2VCdWZmZXIoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTQzLDcgKzk0Mywx
NSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlCiAgICAgYXV0byBy
ZW5kZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6
QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogICAgIC8vIEZJWE1F
OiBBZGQgYSBuZXcgc2V0dGluZyBmb3IgRGlzcGxheUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCiAg
ICAgYXV0byB1c2VEaXNwbGF5TGlzdCA9IG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9y
KGRvY3VtZW50KCkuc2V0dGluZ3MoKS5kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hv
dWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6IFNob3VsZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICBz
ZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwg
dXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgsIGhvc3RXaW5kb3cpKTsKKworICAg
IGF1dG8gW2NvbG9yU3BhY2UsIHBpeGVsRm9ybWF0XSA9IFsmXSB7CisgICAgICAgIGlmIChtX2Nv
bnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpwYWlyIHsgbV9jb250ZXh0LT5jb2xvclNw
YWNlKCksIG1fY29udGV4dC0+cGl4ZWxGb3JtYXQoKSB9OworICAgICAgICBlbHNlCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpwYWlyIHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhl
bEZvcm1hdDo6QkdSQTggfTsKKyAgICB9KCk7CisKKyAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRl
cmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5k
b3cpKTsKIAogICAgIGlmIChidWZmZXIoKSAmJiBidWZmZXIoKS0+ZHJhd2luZ0NvbnRleHQoKSkK
ICAgICAgICAgYnVmZmVyKCktPmRyYXdpbmdDb250ZXh0KCktPnNldFRyYWNrc0Rpc3BsYXlMaXN0
UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzY5NTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsMTEg
KzI4MSwxMSBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWCiAgICAg
ICAgIHJlbmRlcmVyLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCi1SZWZQdHI8SW1hZ2VCdWZm
ZXI+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKSBjb25zdAorUmVmUHRyPElt
YWdlQnVmZmVyPiBIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWludGluZyhjb25z
dCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVzdGluYXRp
b25Db2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KSBjb25zdAog
ewogICAgIGF1dG8qIGhvc3RXaW5kb3cgPSBkb2N1bWVudCgpLnZpZXcoKSAmJiBkb2N1bWVudCgp
LnZpZXcoKS0+cm9vdCgpID8gZG9jdW1lbnQoKS52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygp
IDogbnVsbHB0cjsKICAgICBhdXRvIHNob3VsZFVzZURpc3BsYXlMaXN0ID0gZG9jdW1lbnQoKS5z
ZXR0aW5ncygpLmRpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQoKSA/IFNob3VsZFVzZURpc3BsYXlM
aXN0OjpZZXMgOiBTaG91bGRVc2VEaXNwbGF5TGlzdDo6Tm87Ci0gICAgcmV0dXJuIEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgc2hvdWxkVXNlRGlzcGxheUxpc3QsIFJl
bmRlcmluZ1B1cnBvc2U6Ok1lZGlhUGFpbnRpbmcsIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNwbGF5TGlzdCwg
UmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgY29sb3JTcGFjZSwgcGl4ZWxGb3Jt
YXQsIGhvc3RXaW5kb3cpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCShy
ZXZpc2lvbiAyNzY5NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNs
YXNzIFJlbmRlclZpZGVvOwogY2xhc3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyOwogCitlbnVt
IGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFBpeGVs
Rm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKIGNs
YXNzIEhUTUxWaWRlb0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTE1lZGlhRWxlbWVudCwgcHVi
bGljIFN1cHBsZW1lbnRhYmxlPEhUTUxWaWRlb0VsZW1lbnQ+IHsKQEAgLTcwLDcgKzcyLDcgQEAg
cHVibGljOgogICAgIHZvaWQgd2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICNl
bmRpZgogCi0gICAgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVCdWZmZXJGb3JQYWludGluZyhj
b25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlKSBjb25zdDsKKyAgICBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmlu
Z01vZGUsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQpIGNvbnN0OwogCiAgICAg
Ly8gVXNlZCBieSBjYW52YXMgdG8gZ2FpbiByYXcgcGl4ZWwgYWNjZXNzCiAgICAgdm9pZCBwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCShyZXZpc2lvbiAyNzY5NTUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTAyLDcgKzUwMiw5IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0
RXgKICAgICBhdXRvIHNvdXJjZVJlY3RhbmdsZSA9IG1heWJlU291cmNlUmVjdGFuZ2xlLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0byBvdXRwdXRTaXplID0gb3V0cHV0U2l6ZUZvclNv
dXJjZVJlY3RhbmdsZShzb3VyY2VSZWN0YW5nbGUsIG9wdGlvbnMpOwotICAgIGF1dG8gYml0bWFw
RGF0YSA9IHZpZGVvLT5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhvdXRwdXRTaXplLCBidWZmZXJS
ZW5kZXJpbmdNb2RlKTsKKworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY29sb3Igc3Bh
Y2VzIC8gcGl4ZWwgZm9ybWF0cyB0byBJbWFnZUJpdG1hcC4KKyAgICBhdXRvIGJpdG1hcERhdGEg
PSB2aWRlby0+Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcob3V0cHV0U2l6ZSwgYnVmZmVyUmVuZGVy
aW5nTW9kZSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6QkdSQTgp
OwogICAgIGlmICghYml0bWFwRGF0YSkgewogICAgICAgICByZXNvbHZlV2l0aEJsYW5rSW1hZ2VC
dWZmZXIoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgIXRhaW50c09yaWdpbihzY3JpcHRFeGVjdXRp
b25Db250ZXh0LnNlY3VyaXR5T3JpZ2luKCksICp2aWRlbyksIFdURk1vdmUocHJvbWlzZSkpOwog
ICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDI3Njk1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXMuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuaCIKICNpbmNsdWRl
ICJDU1NQcm9wZXJ0eVBhcnNlcldvcmtlclNhZmUuaCIKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgi
CiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1
ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlBhdGgyRC5oIgorI2luY2x1
ZGUgIlBpeGVsRm9ybWF0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJS
ZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtMjEx
LDcgKzIxMyw4IEBAIFJlZjxUZXh0TWV0cmljcz4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDIKICAg
ICByZXR1cm4gbWVhc3VyZVRleHRJbnRlcm5hbCh0ZXh0UnVuKTsKIH0KIAotYXV0byBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSogeworYXV0
byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94
eSoKK3sKICAgICAvLyBJbnRlbnRpb25hbGx5IGRvbid0IHVwZGF0ZSBzdHlsZSBoZXJlLCBiZWNh
dXNlIHVwZGF0aW5nIHN0eWxlIGNhbiBjYXVzZSBKUyB0byBydW4gc3luY2hyb25vdXNseS4KICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3Npbmcs
IGFuZCBydW5uaW5nIGFyYml0cmFyeSBKUyBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcgY2Fu
IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCiAgICAgLy8gSW5zdGVhZCwgdGhlIHJlbGV2YW50
IGNhbnZhcyBlbnRyeSBwb2ludHMgdXBkYXRlIHN0eWxlIG9uY2Ugd2hlbiB0aGV5IGJlZ2luIHJ1
bm5pbmcsIGFuZCB3ZSB3b24ndCB0b3VjaCB0aGUgc3R5bGUgYWZ0ZXIgdGhhdC4KQEAgLTI0Myw0
ICsyNDYsMTUgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SQogICAg
IGRyYXdUZXh0VW5jaGVja2VkKHRleHRSdW4sIHgsIHksIGZpbGwsIG1heFdpZHRoKTsKIH0KIAor
UGl4ZWxGb3JtYXQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwaXhlbEZvcm1hdCgpIGNvbnN0
Cit7CisgICAgLy8gRklYTUU6IFRha2UgbV9zZXR0aW5ncy5hbHBoYSBpbnRvIGFjY291bnQgaGVy
ZSBhbmQgYWRkIFBpeGVsRm9ybWF0OjpCR1JYOC4KKyAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6OkJH
UkE4OworfQorCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Ojpjb2xvclNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9EZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UobV9zZXR0aW5ncy5jb2xvclNwYWNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmgJKHJldmlzaW9uIDI3Njk1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2
ICs2MSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzMmQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAgICAgY29uc3QgRm9udFByb3h5KiBmb250UHJveHkoKSBmaW5hbDsKKyAgICBQ
aXhlbEZvcm1hdCBwaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOworICAgIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIHNldEZvbnRXaXRo
b3V0VXBkYXRpbmdTdHlsZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZHJhd1RleHRJbnRl
cm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgT3B0
aW9uYWw8ZmxvYXQ+IG1heFdpZHRoID0gV1RGOjpudWxsb3B0KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwCShyZXZpc2lvbiAyNzY5NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0
Myw3ICsxNjQzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAog
ICAgICAgICByZXBhaW50RW50aXJlQ2FudmFzID0gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKHN0YXRl
KCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7CiAgICAgICAg
IGlmICgmc291cmNlQ2FudmFzID09ICZjYW52YXNCYXNlKCkpIHsKLSAgICAgICAgICAgIGlmIChh
dXRvIGNvcHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCLCAqYykpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNvcHkgPSBidWZm
ZXItPmNvcHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgY29sb3JTcGFjZSgpLCAqYykpIHsKICAgICAg
ICAgICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1
ZmZlcigqY29weSwgZHN0UmVjdCwgeyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIHsgc3RhdGUoKS5n
bG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQgfSk7CiAgICAgICAgICAgICB9CkBA
IC0xODI5LDcgKzE4MjksNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiBJbnRSZWN0IENhbnZhc1JlbmRl
cmluCiAKIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
Y3JlYXRlQ29tcG9zaXRpbmdCdWZmZXIoY29uc3QgSW50UmVjdCYgYnVmZmVyUmVjdCkKIHsKLSAg
ICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwgaXNBY2NlbGVy
YXRlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0OjpC
R1JBOCk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoYnVmZmVyUmVjdC5zaXplKCks
IGlzQWNjZWxlcmF0ZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5n
TW9kZTo6VW5hY2NlbGVyYXRlZCwgMSwgY29sb3JTcGFjZSgpLCBwaXhlbEZvcm1hdCgpKTsKIH0K
IAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjb21wb3NpdGVCdWZmZXIoSW1h
Z2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgSW50UmVjdCYgYnVmZmVyUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3ApCkBAIC0yMDI2LDcgKzIwMjYsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFz
UGF0dGVybj4+IENhbnZhCiAjZW5kaWYKIAogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9ICFkcmF3
aW5nQ29udGV4dCgpIHx8IGRyYXdpbmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkg
PyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQ7Ci0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IHZpZGVvRWxlbWVudC5jcmVhdGVCdWZmZXJGb3JQ
YWludGluZyhzaXplKHZpZGVvRWxlbWVudCksIHJlbmRlcmluZ01vZGUpOworICAgIGF1dG8gaW1h
Z2VCdWZmZXIgPSB2aWRlb0VsZW1lbnQuY3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoc2l6ZSh2aWRl
b0VsZW1lbnQpLCByZW5kZXJpbmdNb2RlLCBjb2xvclNwYWNlKCksIHBpeGVsRm9ybWF0KCkpOwog
ICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNDkw
LDcgKzI0OTAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdUCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKGMtPmNsaXBUb0RyYXdpbmdD
b21tYW5kcyhtYXNrUmVjdCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBXVEZNb3ZlKHBh
aW50TWFza0ltYWdlKSkgPT0gR3JhcGhpY3NDb250ZXh0OjpDbGlwVG9EcmF3aW5nQ29tbWFuZHNS
ZXN1bHQ6OkZhaWxlZFRvQ3JlYXRlSW1hZ2VCdWZmZXIpCisgICAgICAgIGlmIChjLT5jbGlwVG9E
cmF3aW5nQ29tbWFuZHMobWFza1JlY3QsIGNvbG9yU3BhY2UoKSwgV1RGTW92ZShwYWludE1hc2tJ
bWFnZSkpID09IEdyYXBoaWNzQ29udGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzUmVzdWx0OjpG
YWlsZWRUb0NyZWF0ZUltYWdlQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzLmgJKHJldmlzaW9uIDI3Njk1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEw
ICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlByZWRlZmluZWRDb2xvclNw
YWNlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRFNldHRpbmdzIHsKICAgICBib29sIGRlc3luY2hyb25pemVkIHsgZmFsc2UgfTsKKyAg
ICBQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlIHsgUHJlZGVmaW5lZENvbG9yU3BhY2U6
OlNSR0IgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRTZXR0aW5ncy5pZGwJKHJldmlzaW9uIDI3Njk1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNCArMzAsNSBAQAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgJ2Fs
cGhhJy4KICAgICAvLyBib29sZWFuIGFscGhhID0gdHJ1ZTsKICAgICBib29sZWFuIGRlc3luY2hy
b25pemVkID0gZmFsc2U7CisgICAgW0VuYWJsZWRCeVNldHRpbmc9Q2FudmFzQ29sb3JTcGFjZV0g
UHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSA9ICJzcmdiIjsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
LmNwcAkocmV2aXNpb24gMjc2OTU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTEgKzI4LDEzIEBACiAK
ICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKKyNp
bmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKKyNpbmNsdWRl
ICJQaXhlbEZvcm1hdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtODAs
NiArODIsMTYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpkZXJlZigpCiAgICAgbV9j
YW52YXMuZGVyZWZDYW52YXNCYXNlKCk7CiB9CiAKK1BpeGVsRm9ybWF0IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ6OnBpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUGl4ZWxGb3JtYXQ6
OkJHUkE4OworfQorCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDo6Y29sb3JTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQjsKK30KKwogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp3b3VsZFRhaW50T3Jp
Z2luKGNvbnN0IENhbnZhc1BhdHRlcm4qIHBhdHRlcm4pCiB7CiAgICAgaWYgKG1fY2FudmFzLm9y
aWdpbkNsZWFuKCkgJiYgcGF0dGVybiAmJiAhcGF0dGVybi0+b3JpZ2luQ2xlYW4oKSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0LmgJKHJldmlzaW9uIDI3Njk1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOCBAQCBj
bGFzcyBIVE1MVmlkZW9FbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRtYXA7CiBjbGFzcyBUeXBlZE9N
Q1NTSW1hZ2VWYWx1ZTsKIGNsYXNzIFdlYkdMT2JqZWN0OworZW51bSBjbGFzcyBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgOiB1aW50OF90OworZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7
CiAKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYW52YXNSZW5kZXJpbmdDb250ZXh0KTsKQEAg
LTg2LDYgKzg4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZXBhcmF0aW9u
Rm9yRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KCkgeyB9CiAKKyAgICB2aXJ0dWFsIFBpeGVsRm9ybWF0IHBpeGVsRm9y
bWF0KCkgY29uc3Q7CisgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dChDYW52YXNCYXNlJik7CiAgICAgYm9vbCB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IENhbnZh
c1BhdHRlcm4qKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRD
b2xvclNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9Q
cmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UHJlZGVmaW5lZENvbG9yU3BhY2UuaCIKKworI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNv
bG9yU3BhY2UoUHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBzd2l0Y2gg
KGNvbG9yU3BhY2UpIHsKKyAgICBjYXNlIFByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCOgorICAg
ICAgICByZXR1cm4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCOworI2lmIEVOQUJMRShERVNU
SU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgIGNhc2UgUHJlZGVmaW5lZENvbG9y
U3BhY2U6OkRpc3BsYXlQMzoKKyAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
RGlzcGxheVAzOworI2VuZGlmCisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKK30KKworfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xv
clNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CisK
K2VudW0gY2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgeworICAgIFNSR0IKKyNpZiBFTkFCTEUo
REVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICAsIERpc3BsYXlQMworI2Vu
ZGlmCit9OworCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNvbG9yU3BhY2Uo
UHJlZGVmaW5lZENvbG9yU3BhY2UpOworCit9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6UHJlZGVmaW5l
ZENvbG9yU3BhY2UsCisgICAgICAgIFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdC
CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpCisgICAgICAg
ICwgV2ViQ29yZTo6UHJlZGVmaW5lZENvbG9yU3BhY2U6OkRpc3BsYXlQMworI2VuZGlmCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI3ByZWRlZmluZWRjb2xvcnNw
YWNlCitlbnVtIFByZWRlZmluZWRDb2xvclNwYWNlIHsKKyAgICAic3JnYiIKKyNpZiBkZWZpbmVk
KEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKSAmJiBFTkFCTEVfREVT
VElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMworICAgICwgImRpc3BsYXktcDMiCisjZW5k
aWYKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAkocmV2aXNpb24gMjc2OTU1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDkgQEAKIAogI2lmIEVOQUJMRShEQVRFX0FO
RF9USU1FX0lOUFVUX1RZUEVTKQogCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2OTU1KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDUtMDMg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFy
eSBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UgZm9yIDJEIGNhbnZhcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIHRl
c3RzIGZvciBjb2xvciBzcGFjZSBpbiBjYW52YXMgc3VwcG9ydC4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJs
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNv
bG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlz
cGxheS1wMy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sOiBBZGRlZC4KKwogMjAyMS0wNS0wNCAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgR0xJQiBXZWJSVEMgZ2FyZGVuaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVy
IG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGlzIHVuc3VwcG9ydGVkIHdoZW4g
Q2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dGVzdFNldHRpbmdzLmNvbG9yU3BhY2UgaXMgdW5kZWZpbmVkLgorUEFTUyB0ZXN0U2V0dGluZ3Mu
Y29sb3JTcGFjZSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xv
clNwYWNlLWRpc2FibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYW52YXNDb2xvclNwYWNlRW5hYmxlZD1mYWxzZSBdIC0t
PgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEU2V0dGluZ3MgaXMgdW5zdXBwb3J0ZWQgd2hlbiBDYW52YXNDb2xvclNwYWNlRW5hYmxlZD1m
YWxzZS4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlVW5zdXBwb3J0ZWQoc2V0dGlu
Z3MsIGV4cGVjdGVkQ29sb3JTcGFjZSkgeworICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdl
dENvbnRleHQoIjJkIiwgc2V0dGluZ3MpOworICAgICAgICB3aW5kb3cudGVzdFNldHRpbmdzID0g
Y29udGV4dC5nZXRDb250ZXh0QXR0cmlidXRlcygpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgidGVzdFNldHRpbmdzLmNvbG9yU3BhY2UiKTsKKyAgICB9CisKKyAgICB0ZXN0Q29sb3JTcGFj
ZVVuc3VwcG9ydGVkKHVuZGVmaW5lZCk7CisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBvcnRlZCh7
IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKKyAgICB0ZXN0Q29sb3JTcGFjZVVuc3VwcG9ydGVkKHsg
Y29sb3JTcGFjZTogImZvbyIgfSk7Cis8L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNl
dHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29s
b3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNl
LWVuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
U2V0dGluZ3MgaXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgdGVzdFNldHRpbmdz
LmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAiZm9vIiB9KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9y
U3BhY2UtZW5hYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1s
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRp
bmdzIGlzIHN1cHBvcnRlZC4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlKHNldHRp
bmdzLCBleHBlY3RlZENvbG9yU3BhY2UpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5n
ZXRDb250ZXh0KCIyZCIsIHNldHRpbmdzKTsKKyAgICAgICAgd2luZG93LnRlc3RTZXR0aW5ncyA9
IGNvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSIsICJzcmdiIik7CisgICAgfQorCisgICAg
Ly8gVGVzdCBkZWZhdWx0IHZhbHVlIG9mIGNvbG9yU3BhY2UgaXMgInNyZ2IiLgorICAgIHRlc3RD
b2xvclNwYWNlKHVuZGVmaW5lZCwgInNyZ2IiKTsKKworICAgIC8vIFRlc3Qgc2V0dGluZyBjb2xv
clNwYWNlIHRvICJzcmdiIiB3b3Jrcy4KKyAgICB0ZXN0Q29sb3JTcGFjZSh7IGNvbG9yU3BhY2U6
ICJzcmdiIiB9LCAic3JnYiIpOworCisgICAgLy8gVGVzdCBzZXR0aW5nIGNvbG9yU3BhY2UgdG8g
YW4gdW5zdXBwb3J0ZWQgdmFsdWUuCisgICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoYGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAi
Zm9vIiB9KWAsICJUeXBlRXJyb3IiKQorPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxh
eS1wMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXkt
cDMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKzxzdHlsZT4K
KyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPHA+
VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJlbG93IGxvb2tzIHRvIGJlIGFsbCBvbmUg
Y29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4gPC9kaXY+Cis8L2JvZHk+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zcGFj
ZS1kaXNwbGF5LXAzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE3IEBACis8c3R5bGU+CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6ICMwMDk5
MDA7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8L3N0
eWxlPgorPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJlbG93
IGxvb2tzIHRvIGJlIGFsbCBvbmUgY29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4gPC9k
aXY+CisgICAgPGNhbnZhcyBpZD0idGVzdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCI+PC9jYW52
YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQo
IjJkIiwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7CisKKyAgICAgICAgY29udGV4dC5i
ZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5yZWN0KDAsIDAsIDEwMCwgNTApOworICAgICAg
ICBjb250ZXh0LmZpbGxTdHlsZSA9ICJjb2xvcihkaXNwbGF5LXAzIDAuMjYzNzQgMC41OTA4NSAw
LjE2NDM0KSI7CisgICAgICAgIGNvbnRleHQuZmlsbCgpOworICAgIDwvc2NyaXB0PgorPC9ib2R5
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427770</attachid>
            <date>2021-05-05 08:53:47 -0700</date>
            <delta_ts>2021-05-05 11:12:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225286-20210505085346.patch</filename>
            <type>text/plain</type>
            <size>40649</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzcwMjApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA1LTA1ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
YW4gSmFja3Nvbi4KKworICAgICAgICBBZGQgbmV3IGV4cGVyaW1lbnRhbCBmZWF0dXJlLCBDYW52
YXNDb2xvclNwYWNlRW5hYmxlZCwgd2hpY2ggYmxvY2tzCisgICAgICAgIGFjY2VzcyB0byB0aGUg
bmV3IGFiaWxpdHkgdG8gc3BlY2lmeSBjb2xvciBzcGFjZXMgZm9yIDJEIGNhbnZhcy4KKworICAg
ICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bDoKKwogMjAyMS0wNS0wNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIERvbid0IGl0ZXJhdGUgTmV0d29ya1Byb2Nlc3NQcm94eTo6bV93ZWJz
aXRlRGF0YVN0b3JlcwpJbmRleDogU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwJKHJldmlzaW9u
IDI3NzAyMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDE4IEBAIENT
U1R5cGVkT01FbmFibGVkOgogICAgICAgIkVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpICYm
IChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpIjogdHJ1ZQogICAgICAgZGVmYXVsdDog
ZmFsc2UKIAorQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJDYW52YXMgQ29sb3IgU3BhY2VzIgorICBodW1hblJlYWRhYmxlRGVzY3Jp
cHRpb246ICJFbmFibGUgdXNlIG9mIHByZWRlZmluZWQgY2FudmFzIGNvbG9yIHNwYWNlcyIKKyAg
ZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisg
ICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVm
YXVsdDogZmFsc2UKKwogQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBWaWRlbyBDYXB0dXJlIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3MDIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODQgQEAKKzIwMjEtMDUtMDUgIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0
IGZvciBzcGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UgZm9yIDJEIGNhbnZhcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdz
LWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2NhbnZhcy9jYW52
YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmg6Cisg
ICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nIGJsb2NrZWQgbWVtYmVyIHRvIHRoZSBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncworICAgICAgICBkaWN0aW9uYXJ5IGZvciBzcGVjaWZ5aW5n
IGEgY29sb3Igc3BhY2UuIAorCisgICAgICAgICogaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9y
U3BhY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JT
cGFjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFj
ZS5pZGw6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgSURMIGVudW1lcmF0aW9uIHRvIHJlcHJl
c2VudCB0aGUgcG9zc2libGUgY29sb3Igc3BhY2VzIHN1cHBvcnRlZC4KKyAgICAgICAgRm9yIHBv
cnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBEaXNwbGF5UDMsIHRyeWluZyB0byB1c2UgaXQgd2lsbCBy
ZXN1bHQgaW4gCisgICAgICAgIHR5cGUgZXJyb3IgZnJvbSBKUy4KKworICAgICAgICAqIGh0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgQWRkIGNoZWNrcyBmb3IgY29sb3Igc3BhY2UgYW5kIHBpeGVs
IGZvcm1hdCB0byAyZCBjb250ZXh0IHJlc2V0IG9wdGltYXRpb24uCisgICAgICAgIFRoaXMgY2Fu
IGhhcHBlbiBpZiB0aGUgaW1hZ2UgYnVmZmVyIGlzIGFsbG9jYXRlZCBwcmlvciB0byB0aGUgY29u
dGV4dCBiZWluZworICAgICAgICByZXF1ZXN0ZWQgKHN1Y2ggYXMgdmlhIGNhbnZhcy50b0RhdGFV
UkwoKSBvciBjYW52YXMudG9CbG9iKCkpLgorCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICBQYXNzIHRoZSBjb3Jy
ZWN0IGNvbG9yIHNwYWNlIGFuZCBwaXhlbCBmb3JtYXQgKHRob3VnaAorICAgICAgICB0aGUgbGF0
ZXIgaXMgYWx3YXlzIEJHUkE4IGF0IHRoZSBtb21lbnQpIHRvIHRoZSBJbWFnZUJ1ZmZlcgorICAg
ICAgICBjcmVhdGUgZnVuY3Rpb24gdG8gbWFrZSBhIGJhY2tpbmcgc3RvcmUgaW4gdGhlIHJpZ2h0
IGZvcm1hdC4KKworICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWludGluZyBjb25z
dCk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgIFBhc3MgY29s
b3Igc3BhY2UgYW5kIHBpeGVsIGZvcm1hdCB0aHJvdWdoIHRvIGVuc3VyZSB0aGUgaGVscGVyCisg
ICAgICAgIGJ1ZmZlciBtYXRjaGVzIHRoZSBjb3JyZWN0IGNvbG9yIHNwYWNlLgorCisgICAgICAg
ICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcDo6
Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgIFBhc3MgdGhlIGV4aXN0aW5nIGRlZmF1bHRzIHRvIEhU
TUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nLgorICAgICAgICBJbiB0aGUg
ZnV0dXJlLCBJbWFnZUJpdG1hcCB3aWxsIGFsc28gZ2FpbiBjb2xvciBzcGFjZSBhbmQgcGl4ZWwK
KyAgICAgICAgZm9ybWF0IHNwZWNpZmljaXR5IGFuZCB0aGlzIHdpbGwgYmUgdXBkYXRlZC4KKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6cGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDo6Y29sb3JTcGFjZSBjb25z
dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oOgorICAg
ICAgICBBZGQgdmlydHVhbCBiYXNlIGltcGxlbWVudGF0aW9ucyBvZiBjb2xvclNwYWNlIGFuZCBw
aXhlbEZvcm1hdAorICAgICAgICB3aGljaCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgY2FuIG92
ZXJyaWRlIHRvIHJldHVybiB0aGUKKyAgICAgICAgdmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpmb250UHJveHkgY29uc3QpOgorICAgICAgICBGaXggaW5jb3JyZWN0IGZvcm1h
dHRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpjb2xvclNwYWNlIGNvbnN0KToKKyAgICAgICAgQWRkIG92ZXJyaWRlcywgcmV0dXJuIG1f
c2V0dGluZ3MuY29sb3JTcGFjZSBmb3IgY29sb3JTcGFjZS4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNvbXBvc2l0aW5nQnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0
ZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZTo6ZHJhd1RleHRVbmNoZWNrZWQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBjb2xvclNwYWNl
IGFuZCBwaXhlbEZvcm1hdCB3aGVuIGNyZWF0aW5nIGJ1ZmZlcnMuCisKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgQWRkIG1p
c3NpbmcgaW5jbHVkZXMgdGhhdCBhcmUgbm93IG5lZWRlZC4KKwogMjAyMS0wNS0wNSAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1b
V2ViUlRDXSBXcmFwIGluY29taW5nIGF1ZGlvIGJ1ZmZlcnMsIGNvbXBseWluZyB3aXRoIGZhc3RN
YWxsb2MgcmVzdHJpY3Rpb25zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjc3
MDIwKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEwNjcsNiArMTA2Nyw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRt
bC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwv
Y2FudmFzL1BhaW50UmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFzL1BhdGgy
RC5pZGwKKyAgICBodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5pZGwKIAogICAgIGh0
bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0Lmlk
bApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CShyZXZpc2lvbiAyNzcwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDk4LDYgKzEwOTgsNyBAQCAkKFBS
T0pFQ1RfRElSKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJhCiAkKFBST0pFQ1RfRElSKS9odG1s
L2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9odG1sL2NhbnZhcy9QYWludFJlbmRlcmluZ0NvbnRleHQyRC5pZGwKICQoUFJPSkVDVF9E
SVIpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1By
ZWRlZmluZWRDb2xvclNwYWNlLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvV2ViR0wy
UmVuZGVyaW5nQ29udGV4dC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMQWN0
aXZlSW5mby5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbApJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QJKHJldmlzaW9uIDI3NzAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQyLDYgKzE2NDIsOCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bvc2l0aW9uT3B0aW9ucy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bvc3RNZXNzYWdlT3B0aW9ucy5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUG9zdE1l
c3NhZ2VPcHRpb25zLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ByZWRlZmluZWRDb2xvclNwYWNlLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiAyNzcwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05NTksNiArOTU5LDcgQEAgSlNfQklORElOR19JRExT
IDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvUGFpbnRSZW5kZXJp
bmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1BhdGgyRC5pZGwg
XAorICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CShyZXZpc2lvbiAyNzcwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM0NSw2ICsxMzQ1LDcgQEAgaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udAogaHRtbC9jYW52YXMvUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQuY3BwCiBo
dG1sL2NhbnZhcy9QYXRoMkQuY3BwCiBodG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuY3BwCitodG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAKIGh0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCiBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5j
cHAKIGh0bWwvY2FudmFzL1dlYkdMQ29sb3JCdWZmZXJGbG9hdC5jcHAKQEAgLTMzNjgsNiArMzM2
OSw3IEBAIEpTUG9zaXRpb25DYWxsYmFjay5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNw
cAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Bvc3RNZXNzYWdlT3B0aW9ucy5jcHAKK0pTUHJl
ZGVmaW5lZENvbG9yU3BhY2UuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKIEpTUHJv
Z3Jlc3NFdmVudC5jcHAKIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjc3MDIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMyMSw2ICsxNDMyMSw5IEBACiAJCUJDQTM3OEJB
MEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVkQWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY2hlZHVsZWRBY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBNTU5MTIyNjNEQkQ3OTAwN0YxOUIzIC8q
IFBpeGVsRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpeGVsRm9y
bWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQTU1OTFBMjYzRjEwQjkwMDdG
MTlCMyAvKiBQcmVkZWZpbmVkQ29sb3JTcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmVkZWZpbmVk
Q29sb3JTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0E1NTkxQzI2M0Yx
MEI5MDA3RjE5QjMgLyogUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFByZWRlZmluZWRD
b2xvclNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBNTU5MUQyNjNG
MTBCOTAwN0YxOUIzIC8qIFByZWRlZmluZWRDb2xvclNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFByZWRlZmluZWRDb2xvclNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNBODNFMzYwRDdDREM0RTAwMzQyMUE4IC8qIERhdGFUcmFuc2Zlci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNBODNFNEQwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVRyYW5zZmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBODNFNEUwRDdDRTFFOTAwMzQyMUE4IC8qIEpT
RGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YVRy
YW5zZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDE3OSw2ICsyMDE4Miw5
IEBACiAJCQkJN0MxOTNCQjQxRjVFMEVCNzAwODhGM0U2IC8qIFBhdGgyRC5pZGwgKi8sCiAJCQkJ
N0M3OTAzQkExRjg2RkYzMzAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5j
cHAgKi8sCiAJCQkJN0M3OTAzQkMxRjg2RkYzNDAwNDYzQTcwIC8qIFBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dC5oICovLAorCQkJCUJDQTU1OTFEMjYzRjEwQjkwMDdGMTlCMyAvKiBQcmVkZWZp
bmVkQ29sb3JTcGFjZS5jcHAgKi8sCisJCQkJQkNBNTU5MUEyNjNGMTBCOTAwN0YxOUIzIC8qIFBy
ZWRlZmluZWRDb2xvclNwYWNlLmggKi8sCisJCQkJQkNBNTU5MUMyNjNGMTBCOTAwN0YxOUIzIC8q
IFByZWRlZmluZWRDb2xvclNwYWNlLmlkbCAqLywKIAkJCQlEM0YzRDM1QjFBNjlBNTA2MDA1OUZD
MkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJRDNGM0QzNUMxQTY5QTUw
NjAwNTlGQzJCIC8qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCAqLywKIAkJCQlEM0YzRDM1RDFB
NjlBNTA2MDA1OUZDMkIgLyogV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMjc3MDIw
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyMiw3ICs2MjIsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgp
CiAgICAgSW50U2l6ZSBuZXdTaXplKHcsIGgpOwogICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4
aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJl
YWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9wdGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJE
IGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG9s
ZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkpIHsKKyAg
ICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xkU2l6ZSA9PSBuZXdTaXplICYmIG1f
Y29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQoKSAmJiBidWZmZXIoKSAmJiBtX2NvbnRleHQtPmNv
bG9yU3BhY2UoKSA9PSBidWZmZXIoKS0+Y29sb3JTcGFjZSgpICYmIG1fY29udGV4dC0+cGl4ZWxG
b3JtYXQoKSA9PSBidWZmZXIoKS0+cGl4ZWxGb3JtYXQoKSkgewogICAgICAgICBpZiAoIW1fZGlk
Q2xlYXJJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIGNsZWFySW1hZ2VCdWZmZXIoKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtOTU3LDcgKzk1NywxNCBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVJbWFnZUJ1ZmZlCiAgICAgYXV0byByZW5kZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0
ZShzaXplKCkpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpV
bmFjY2VsZXJhdGVkOwogICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgc2V0dGluZyBmb3IgRGlzcGxh
eUxpc3QgZHJhd2luZyBvbiBjYW52YXMuCiAgICAgYXV0byB1c2VEaXNwbGF5TGlzdCA9IG1fdXNl
c0Rpc3BsYXlMaXN0RHJhd2luZy52YWx1ZU9yKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5kaXNwbGF5
TGlzdERyYXdpbmdFbmFibGVkKCkpID8gU2hvdWxkVXNlRGlzcGxheUxpc3Q6OlllcyA6IFNob3Vs
ZFVzZURpc3BsYXlMaXN0OjpObzsKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBv
c2U6OkNhbnZhcywgMSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1hdDo6
QkdSQTgsIGhvc3RXaW5kb3cpKTsKKworICAgIGF1dG8gW2NvbG9yU3BhY2UsIHBpeGVsRm9ybWF0
XSA9IFsmXSB7CisgICAgICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpwYWlyIHsgbV9jb250ZXh0LT5jb2xvclNwYWNlKCksIG1fY29udGV4dC0+cGl4ZWxGb3JtYXQo
KSB9OworICAgICAgICByZXR1cm4gc3RkOjpwYWlyIHsgRGVzdGluYXRpb25Db2xvclNwYWNlOjpT
UkdCLCBQaXhlbEZvcm1hdDo6QkdSQTggfTsKKyAgICB9KCk7CisKKyAgICBzZXRJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgcmVuZGVyaW5nTW9kZSwgdXNlRGlzcGxheUxp
c3QsIFJlbmRlcmluZ1B1cnBvc2U6OkNhbnZhcywgMSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQs
IGhvc3RXaW5kb3cpKTsKIAogICAgIGlmIChidWZmZXIoKSAmJiBidWZmZXIoKS0+ZHJhd2luZ0Nv
bnRleHQoKSkKICAgICAgICAgYnVmZmVyKCktPmRyYXdpbmdDb250ZXh0KCktPnNldFRyYWNrc0Rp
c3BsYXlMaXN0UmVwbGF5KG1fdHJhY2tzRGlzcGxheUxpc3RSZXBsYXkpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzcwMjApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yODEsMTEgKzI4MSwxMSBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6Om1lZGlhUGxheWVyRmly
c3RWCiAgICAgICAgIHJlbmRlcmVyLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCi1SZWZQdHI8
SW1hZ2VCdWZmZXI+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKSBjb25zdAor
UmVmUHRyPEltYWdlQnVmZmVyPiBIVE1MVmlkZW9FbGVtZW50OjpjcmVhdGVCdWZmZXJGb3JQYWlu
dGluZyhjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwg
RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0
KSBjb25zdAogewogICAgIGF1dG8qIGhvc3RXaW5kb3cgPSBkb2N1bWVudCgpLnZpZXcoKSAmJiBk
b2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpID8gZG9jdW1lbnQoKS52aWV3KCktPnJvb3QoKS0+aG9z
dFdpbmRvdygpIDogbnVsbHB0cjsKICAgICBhdXRvIHNob3VsZFVzZURpc3BsYXlMaXN0ID0gZG9j
dW1lbnQoKS5zZXR0aW5ncygpLmRpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQoKSA/IFNob3VsZFVz
ZURpc3BsYXlMaXN0OjpZZXMgOiBTaG91bGRVc2VEaXNwbGF5TGlzdDo6Tm87Ci0gICAgcmV0dXJu
IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgc2hvdWxkVXNlRGlzcGxh
eUxpc3QsIFJlbmRlcmluZ1B1cnBvc2U6Ok1lZGlhUGFpbnRpbmcsIDEsIERlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6U1JHQiwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKKyAgICByZXR1
cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdNb2RlLCBzaG91bGRVc2VEaXNw
bGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZTo6TWVkaWFQYWludGluZywgMSwgY29sb3JTcGFjZSwg
cGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCShyZXZpc2lvbiAyNzcwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBJbWFnZUJ1
ZmZlcjsKIGNsYXNzIFJlbmRlclZpZGVvOwogY2xhc3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVy
OwogCitlbnVtIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNs
YXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJv
b2w7CiAKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTE1lZGlhRWxl
bWVudCwgcHVibGljIFN1cHBsZW1lbnRhYmxlPEhUTUxWaWRlb0VsZW1lbnQ+IHsKQEAgLTcwLDcg
KzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKSBvdmVy
cmlkZTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVCdWZmZXJGb3JQ
YWludGluZyhjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlKSBjb25zdDsKKyAgICBSZWZQ
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUJ1ZmZlckZvclBhaW50aW5nKGNvbnN0IEZsb2F0U2l6ZSYs
IFJlbmRlcmluZ01vZGUsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQpIGNvbnN0
OwogCiAgICAgLy8gVXNlZCBieSBjYW52YXMgdG8gZ2FpbiByYXcgcGl4ZWwgYWNjZXNzCiAgICAg
dm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCShyZXZpc2lv
biAyNzcwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAyLDcgKzUwMiw5IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21p
c2UoU2NyaXB0RXgKICAgICBhdXRvIHNvdXJjZVJlY3RhbmdsZSA9IG1heWJlU291cmNlUmVjdGFu
Z2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0byBvdXRwdXRTaXplID0gb3V0cHV0
U2l6ZUZvclNvdXJjZVJlY3RhbmdsZShzb3VyY2VSZWN0YW5nbGUsIG9wdGlvbnMpOwotICAgIGF1
dG8gYml0bWFwRGF0YSA9IHZpZGVvLT5jcmVhdGVCdWZmZXJGb3JQYWludGluZyhvdXRwdXRTaXpl
LCBidWZmZXJSZW5kZXJpbmdNb2RlKTsKKworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
Y29sb3Igc3BhY2VzIC8gcGl4ZWwgZm9ybWF0cyB0byBJbWFnZUJpdG1hcC4KKyAgICBhdXRvIGJp
dG1hcERhdGEgPSB2aWRlby0+Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcob3V0cHV0U2l6ZSwgYnVm
ZmVyUmVuZGVyaW5nTW9kZSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBQaXhlbEZvcm1h
dDo6QkdSQTgpOwogICAgIGlmICghYml0bWFwRGF0YSkgewogICAgICAgICByZXNvbHZlV2l0aEJs
YW5rSW1hZ2VCdWZmZXIoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgIXRhaW50c09yaWdpbihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LnNlY3VyaXR5T3JpZ2luKCksICp2aWRlbyksIFdURk1vdmUocHJv
bWlzZSkpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDI3
NzAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkNT
U1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuaCIK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlcldvcmtlclNhZmUuaCIKKyNpbmNsdWRlICJDb2xv
clNwYWNlLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5o
IgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlBhdGgyRC5o
IgorI2luY2x1ZGUgIlBpeGVsRm9ybWF0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5o
IgpAQCAtMjExLDcgKzIxMyw4IEBAIFJlZjxUZXh0TWV0cmljcz4gQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDIKICAgICByZXR1cm4gbWVhc3VyZVRleHRJbnRlcm5hbCh0ZXh0UnVuKTsKIH0KIAotYXV0
byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94
eSogeworYXV0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0
IEZvbnRQcm94eSoKK3sKICAgICAvLyBJbnRlbnRpb25hbGx5IGRvbid0IHVwZGF0ZSBzdHlsZSBo
ZXJlLCBiZWNhdXNlIHVwZGF0aW5nIHN0eWxlIGNhbiBjYXVzZSBKUyB0byBydW4gc3luY2hyb25v
dXNseS4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiB0aGUgbWlkZGxlIG9mIHBy
b2Nlc3NpbmcsIGFuZCBydW5uaW5nIGFyYml0cmFyeSBKUyBpbiB0aGUgbWlkZGxlIG9mIHByb2Nl
c3NpbmcgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCiAgICAgLy8gSW5zdGVhZCwgdGhl
IHJlbGV2YW50IGNhbnZhcyBlbnRyeSBwb2ludHMgdXBkYXRlIHN0eWxlIG9uY2Ugd2hlbiB0aGV5
IGJlZ2luIHJ1bm5pbmcsIGFuZCB3ZSB3b24ndCB0b3VjaCB0aGUgc3R5bGUgYWZ0ZXIgdGhhdC4K
QEAgLTI0Myw0ICsyNDYsMTUgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdU
ZXh0SQogICAgIGRyYXdUZXh0VW5jaGVja2VkKHRleHRSdW4sIHgsIHksIGZpbGwsIG1heFdpZHRo
KTsKIH0KIAorUGl4ZWxGb3JtYXQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwaXhlbEZvcm1h
dCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFRha2UgbV9zZXR0aW5ncy5hbHBoYSBpbnRvIGFj
Y291bnQgaGVyZSBhbmQgYWRkIFBpeGVsRm9ybWF0OjpCR1JYOC4KKyAgICByZXR1cm4gUGl4ZWxG
b3JtYXQ6OkJHUkE4OworfQorCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpjb2xvclNwYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9EZXN0aW5hdGlv
bkNvbG9yU3BhY2UobV9zZXR0aW5ncy5jb2xvclNwYWNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgJKHJldmlzaW9uIDI3NzAyMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCSh3b3JraW5nIGNvcHkp
CkBAIC02MSw2ICs2MSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzMmQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgY29uc3QgRm9udFByb3h5KiBmb250UHJveHkoKSBmaW5h
bDsKKyAgICBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOworICAgIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIHNl
dEZvbnRXaXRob3V0VXBkYXRpbmdTdHlsZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZHJh
d1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsb2F0IHksIGJvb2wg
ZmlsbCwgT3B0aW9uYWw8ZmxvYXQ+IG1heFdpZHRoID0gV1RGOjpudWxsb3B0KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuY3BwCShyZXZpc2lvbiAyNzcwMjApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dAogICAgICAgICByZXBhaW50RW50aXJlQ2FudmFzID0gdHJ1ZTsKICAgICB9IGVsc2Ug
aWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7
CiAgICAgICAgIGlmICgmc291cmNlQ2FudmFzID09ICZjYW52YXNCYXNlKCkpIHsKLSAgICAgICAg
ICAgIGlmIChhdXRvIGNvcHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCAqYykpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNv
cHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgY29sb3JTcGFjZSgpLCAqYykp
IHsKICAgICAgICAgICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICAgICAgICAgIGMtPmRy
YXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwgeyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIHsg
c3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQgfSk7CiAgICAgICAg
ICAgICB9CkBAIC0xODI5LDcgKzE4MjksNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiBJbnRSZWN0IENh
bnZhc1JlbmRlcmluCiAKIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6Y3JlYXRlQ29tcG9zaXRpbmdCdWZmZXIoY29uc3QgSW50UmVjdCYgYnVmZmVyUmVj
dCkKIHsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwg
aXNBY2NlbGVyYXRlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdN
b2RlOjpVbmFjY2VsZXJhdGVkLCAxLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IsIFBpeGVs
Rm9ybWF0OjpCR1JBOCk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyOjpjcmVhdGUoYnVmZmVyUmVj
dC5zaXplKCksIGlzQWNjZWxlcmF0ZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDog
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSwgY29sb3JTcGFjZSgpLCBwaXhlbEZvcm1h
dCgpKTsKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjb21wb3NpdGVC
dWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgSW50UmVjdCYgYnVmZmVyUmVjdCwgQ29t
cG9zaXRlT3BlcmF0b3Igb3ApCkBAIC0yMDI2LDcgKzIwMjYsNyBAQCBFeGNlcHRpb25PcjxSZWZQ
dHI8Q2FudmFzUGF0dGVybj4+IENhbnZhCiAjZW5kaWYKIAogICAgIGF1dG8gcmVuZGVyaW5nTW9k
ZSA9ICFkcmF3aW5nQ29udGV4dCgpIHx8IGRyYXdpbmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWRD
b250ZXh0KCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQ7Ci0gICAgYXV0byBpbWFnZUJ1ZmZlciA9IHZpZGVvRWxlbWVudC5jcmVhdGVC
dWZmZXJGb3JQYWludGluZyhzaXplKHZpZGVvRWxlbWVudCksIHJlbmRlcmluZ01vZGUpOworICAg
IGF1dG8gaW1hZ2VCdWZmZXIgPSB2aWRlb0VsZW1lbnQuY3JlYXRlQnVmZmVyRm9yUGFpbnRpbmco
c2l6ZSh2aWRlb0VsZW1lbnQpLCByZW5kZXJpbmdNb2RlLCBjb2xvclNwYWNlKCksIHBpeGVsRm9y
bWF0KCkpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CkBAIC0yNDkwLDcgKzI0OTAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdUCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKGMtPmNsaXBU
b0RyYXdpbmdDb21tYW5kcyhtYXNrUmVjdCwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCLCBX
VEZNb3ZlKHBhaW50TWFza0ltYWdlKSkgPT0gR3JhcGhpY3NDb250ZXh0OjpDbGlwVG9EcmF3aW5n
Q29tbWFuZHNSZXN1bHQ6OkZhaWxlZFRvQ3JlYXRlSW1hZ2VCdWZmZXIpCisgICAgICAgIGlmIChj
LT5jbGlwVG9EcmF3aW5nQ29tbWFuZHMobWFza1JlY3QsIGNvbG9yU3BhY2UoKSwgV1RGTW92ZShw
YWludE1hc2tJbWFnZSkpID09IEdyYXBoaWNzQ29udGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRz
UmVzdWx0OjpGYWlsZWRUb0NyZWF0ZUltYWdlQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzLmgJKHJldmlzaW9uIDI3NzAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlByZWRlZmlu
ZWRDb2xvclNwYWNlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIHsKICAgICBib29sIGRlc3luY2hyb25pemVkIHsgZmFs
c2UgfTsKKyAgICBQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlIHsgUHJlZGVmaW5lZENv
bG9yU3BhY2U6OlNSR0IgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdz
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncy5pZGwJKHJldmlzaW9uIDI3NzAyMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNCArMzAsNSBAQAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9y
dCBmb3IgJ2FscGhhJy4KICAgICAvLyBib29sZWFuIGFscGhhID0gdHJ1ZTsKICAgICBib29sZWFu
IGRlc3luY2hyb25pemVkID0gZmFsc2U7CisgICAgW0VuYWJsZWRCeVNldHRpbmc9Q2FudmFzQ29s
b3JTcGFjZV0gUHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSA9ICJzcmdiIjsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmNwcAkocmV2aXNpb24gMjc3MDIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTEgKzI4
LDEzIEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbnZhc1BhdHRl
cm4uaCIKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVv
RWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIK
KyNpbmNsdWRlICJQaXhlbEZvcm1hdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgpAQCAtODAsNiArODIsMTYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpkZXJlZigp
CiAgICAgbV9jYW52YXMuZGVyZWZDYW52YXNCYXNlKCk7CiB9CiAKK1BpeGVsRm9ybWF0IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQ6OnBpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUGl4
ZWxGb3JtYXQ6OkJHUkE4OworfQorCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDo6Y29sb3JTcGFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQjsKK30KKwogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp3b3Vs
ZFRhaW50T3JpZ2luKGNvbnN0IENhbnZhc1BhdHRlcm4qIHBhdHRlcm4pCiB7CiAgICAgaWYgKG1f
Y2FudmFzLm9yaWdpbkNsZWFuKCkgJiYgcGF0dGVybiAmJiAhcGF0dGVybi0+b3JpZ2luQ2xlYW4o
KSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDI3NzAyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiAr
NDIsOCBAQCBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRtYXA7CiBjbGFz
cyBUeXBlZE9NQ1NTSW1hZ2VWYWx1ZTsKIGNsYXNzIFdlYkdMT2JqZWN0OworZW51bSBjbGFzcyBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UgOiB1aW50OF90OworZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6
IHVpbnQ4X3Q7CiAKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgU2NyaXB0
V3JhcHBhYmxlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYW52YXNSZW5kZXJpbmdDb250
ZXh0KTsKQEAgLTg2LDYgKzg4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1By
ZXBhcmF0aW9uRm9yRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgeyB9CiAKKyAgICB2aXJ0dWFsIFBpeGVsRm9ybWF0
IHBpeGVsRm9ybWF0KCkgY29uc3Q7CisgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CiAgICAgYm9vbCB3b3VsZFRhaW50T3JpZ2luKGNv
bnN0IENhbnZhc1BhdHRlcm4qKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1By
ZWRlZmluZWRDb2xvclNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFjZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJlZGVmaW5lZENvbG9yU3BhY2UuaCIKKworI2luY2x1ZGUgIkNvbG9yU3BhY2Uu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0
aW5hdGlvbkNvbG9yU3BhY2UoUHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAg
ICBzd2l0Y2ggKGNvbG9yU3BhY2UpIHsKKyAgICBjYXNlIFByZWRlZmluZWRDb2xvclNwYWNlOjpT
UkdCOgorICAgICAgICByZXR1cm4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCOworI2lmIEVO
QUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgIGNhc2UgUHJlZGVm
aW5lZENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKKyAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6RGlzcGxheVAzOworI2VuZGlmCisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKK30KKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JT
cGFjZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRl
ZmluZWRDb2xvclNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZSA6IHVp
bnQ4X3Q7CisKK2VudW0gY2xhc3MgUHJlZGVmaW5lZENvbG9yU3BhY2UgeworICAgIFNSR0IKKyNp
ZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICAsIERpc3Bs
YXlQMworI2VuZGlmCit9OworCitEZXN0aW5hdGlvbkNvbG9yU3BhY2UgdG9EZXN0aW5hdGlvbkNv
bG9yU3BhY2UoUHJlZGVmaW5lZENvbG9yU3BhY2UpOworCit9CisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNw
YWNlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
UHJlZGVmaW5lZENvbG9yU3BhY2UsCisgICAgICAgIFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNw
YWNlOjpTUkdCCisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMp
CisgICAgICAgICwgV2ViQ29yZTo6UHJlZGVmaW5lZENvbG9yU3BhY2U6OkRpc3BsYXlQMworI2Vu
ZGlmCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvUHJlZGVmaW5lZENvbG9yU3BhY2UuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1ByZWRlZmluZWRDb2xvclNwYWNlLmlkbAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QcmVkZWZpbmVkQ29sb3JTcGFj
ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NhbnZhcy5odG1sI3ByZWRlZmlu
ZWRjb2xvcnNwYWNlCitlbnVtIFByZWRlZmluZWRDb2xvclNwYWNlIHsKKyAgICAic3JnYiIKKyNp
ZiBkZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKSAmJiBF
TkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMworICAgICwgImRpc3BsYXkt
cDMiCisjZW5kaWYKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAkocmV2aXNpb24gMjc3
MDIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDkgQEAKIAogI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQogCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgog
I2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3MDIwKQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDUtMDUgIFNhbSBXZWlu
aWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0
IGZvciBzcGVjaWZ5aW5nIGEgY29sb3Igc3BhY2UgZm9yIDJEIGNhbnZhcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mjg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVmYXVsdHMpOgorICAgICAg
ICBBZGQgQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQgZm9yIHdpbmRvd3MuCisKIDIwMjEtMDUtMDUg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI3Njk4NS4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAJ
KHJldmlzaW9uIDI3NzAyMCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDEwICsxMzMsMTEgQEAgY29uc3QgVGVzdEZlYXR1cmVz
JiBUZXN0T3B0aW9uczo6ZGVmYXVsdAogICAgICAgICAgICAgeyAiQXN5bmNDbGlwYm9hcmRBUElF
bmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkF0dGFjaG1lbnRFbGVtZW50RW5hYmxl
ZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJDU1NDb250YWlubWVudEVuYWJsZWQiLCBmYWxz
ZSB9LAotICAgICAgICAgICAgeyAiQ1NTQ291bnRlclN0eWxlQXRSdWxlc0VuYWJsZWQiLCBmYWxz
ZSB9LAogICAgICAgICAgICAgeyAiQ1NTQ291bnRlclN0eWxlQXRSdWxlSW1hZ2VTeW1ib2xzRW5h
YmxlZCIsIGZhbHNlIH0sCisgICAgICAgICAgICB7ICJDU1NDb3VudGVyU3R5bGVBdFJ1bGVzRW5h
YmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJDU1NMb2dpY2FsRW5hYmxlZCIsIGZhbHNl
IH0sCiAgICAgICAgICAgICB7ICJDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIiwgZmFs
c2UgfSwKKyAgICAgICAgICAgIHsgIkNhbnZhc0NvbG9yU3BhY2VFbmFibGVkIiwgdHJ1ZSB9LAog
ICAgICAgICAgICAgeyAiQ29sb3JGaWx0ZXJFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAg
IHsgIkNvbnRhY3RQaWNrZXJBUElFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkNv
cmVNYXRoTUxFbmFibGVkIiwgZmFsc2UgfSwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzAyMCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisy
MDIxLTA1LTAzICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
cHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNlIGZvciAyRCBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBBZGQg
YmFzaWMgdGVzdHMgZm9yIGNvbG9yIHNwYWNlIGluIGNhbnZhcyBzdXBwb3J0LgorCisgICAgICAg
ICogZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFj
ZS1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0
dGluZ3MtY29sb3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1l
bmFibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1z
cGFjZS1kaXNwbGF5LXAzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA1
LTA1ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWN0aXZl
c291cmNlYnVmZmVycy5odG1sIGlzIGEgZmxha2V5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xvclNwYWNlLWRpc2FibGVkLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2Ug
bWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzIGlzIHVuc3VwcG9ydGVk
IHdoZW4gQ2FudmFzQ29sb3JTcGFjZUVuYWJsZWQ9ZmFsc2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHRlc3RTZXR0aW5ncy5jb2xvclNwYWNlIGlzIHVuZGVmaW5lZC4K
K1BBU1MgdGVzdFNldHRpbmdzLmNvbG9yU3BhY2UgaXMgdW5kZWZpbmVkLgorUEFTUyB0ZXN0U2V0
dGluZ3MuY29sb3JTcGFjZSBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGluZ3MtY29sb3JTcGFjZS1kaXNhYmxlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZGlzYWJsZWQuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5n
cy1jb2xvclNwYWNlLWRpc2FibGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBA
QAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYW52YXNDb2xvclNwYWNlRW5hYmxlZD1mYWxz
ZSBdIC0tPgorPGh0bWw+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEU2V0dGluZ3MgaXMgdW5zdXBwb3J0ZWQgd2hlbiBDYW52YXNDb2xvclNwYWNlRW5h
YmxlZD1mYWxzZS4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNlVW5zdXBwb3J0ZWQo
c2V0dGluZ3MsIGV4cGVjdGVkQ29sb3JTcGFjZSkgeworICAgICAgICBsZXQgY2FudmFzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2Fu
dmFzLmdldENvbnRleHQoIjJkIiwgc2V0dGluZ3MpOworICAgICAgICB3aW5kb3cudGVzdFNldHRp
bmdzID0gY29udGV4dC5nZXRDb250ZXh0QXR0cmlidXRlcygpOworICAgICAgICBzaG91bGRCZVVu
ZGVmaW5lZCgidGVzdFNldHRpbmdzLmNvbG9yU3BhY2UiKTsKKyAgICB9CisKKyAgICB0ZXN0Q29s
b3JTcGFjZVVuc3VwcG9ydGVkKHVuZGVmaW5lZCk7CisgICAgdGVzdENvbG9yU3BhY2VVbnN1cHBv
cnRlZCh7IGNvbG9yU3BhY2U6ICJzcmdiIiB9KTsKKyAgICB0ZXN0Q29sb3JTcGFjZVVuc3VwcG9y
dGVkKHsgY29sb3JTcGFjZTogImZvbyIgfSk7Cis8L3NjcmlwdD4KKyAgICAKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEU2V0dGlu
Z3MtY29sb3JTcGFjZS1lbmFibGVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRTZXR0aW5ncy1jb2xv
clNwYWNlLWVuYWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIg
QEAKK1Rlc3QgdGhhdCB0aGUgY29sb3JTcGFjZSBtZW1iZXIgb2YgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEU2V0dGluZ3MgaXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSBpcyAic3JnYiIKK1BBU1MgdGVzdFNl
dHRpbmdzLmNvbG9yU3BhY2UgaXMgInNyZ2IiCitQQVNTIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAiZm9vIiB9KSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRFNldHRpbmdzLWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdz
LWNvbG9yU3BhY2UtZW5hYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAK
KzxodG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
ZXN0IHRoYXQgdGhlIGNvbG9yU3BhY2UgbWVtYmVyIG9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RFNldHRpbmdzIGlzIHN1cHBvcnRlZC4iKTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb2xvclNwYWNl
KHNldHRpbmdzLCBleHBlY3RlZENvbG9yU3BhY2UpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgICAgICBsZXQgY29udGV4dCA9IGNh
bnZhcy5nZXRDb250ZXh0KCIyZCIsIHNldHRpbmdzKTsKKyAgICAgICAgd2luZG93LnRlc3RTZXR0
aW5ncyA9IGNvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ0ZXN0U2V0dGluZ3MuY29sb3JTcGFjZSIsICJzcmdiIik7CisgICAgfQor
CisgICAgLy8gVGVzdCBkZWZhdWx0IHZhbHVlIG9mIGNvbG9yU3BhY2UgaXMgInNyZ2IiLgorICAg
IHRlc3RDb2xvclNwYWNlKHVuZGVmaW5lZCwgInNyZ2IiKTsKKworICAgIC8vIFRlc3Qgc2V0dGlu
ZyBjb2xvclNwYWNlIHRvICJzcmdiIiB3b3Jrcy4KKyAgICB0ZXN0Q29sb3JTcGFjZSh7IGNvbG9y
U3BhY2U6ICJzcmdiIiB9LCAic3JnYiIpOworCisgICAgLy8gVGVzdCBzZXR0aW5nIGNvbG9yU3Bh
Y2UgdG8gYW4gdW5zdXBwb3J0ZWQgdmFsdWUuCisgICAgc2hvdWxkVGhyb3dFcnJvck5hbWUoYGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiwgeyBjb2xvclNw
YWNlOiAiZm9vIiB9KWAsICJUeXBlRXJyb3IiKQorPC9zY3JpcHQ+CisgICAgCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2Ut
ZGlzcGxheS1wMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1jb2xvci1zcGFjZS1kaXNwbGF5LXAzLWV4cGVjdGVkLmh0bWwJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRp
c3BsYXktcDMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKKzxz
dHlsZT4KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDsgd2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9Cis8L3N0eWxlPgorPGJvZHk+Cisg
ICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJlIGJlbG93IGxvb2tzIHRvIGJlIGFs
bCBvbmUgY29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVmIj4gPC9kaXY+Cis8L2JvZHk+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1w
My5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xv
ci1zcGFjZS1kaXNwbGF5LXAzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvY2FudmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE3IEBACis8c3R5bGU+CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6
ICMwMDk5MDA7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW4tYm90dG9tOiAwOyB9
Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc3F1YXJl
IGJlbG93IGxvb2tzIHRvIGJlIGFsbCBvbmUgY29sb3I8L3A+CisgICAgPGRpdiBjbGFzcz0icmVm
Ij4gPC9kaXY+CisgICAgPGNhbnZhcyBpZD0idGVzdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCI+
PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENv
bnRleHQoIjJkIiwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSk7CisKKyAgICAgICAgY29u
dGV4dC5iZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5yZWN0KDAsIDAsIDEwMCwgNTApOwor
ICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICJjb2xvcihkaXNwbGF5LXAzIDAuMjYzNzQgMC41
OTA4NSAwLjE2NDM0KSI7CisgICAgICAgIGNvbnRleHQuZmlsbCgpOworICAgIDwvc2NyaXB0Pgor
PC9ib2R5Pgo=
</data>
<flag name="commit-queue"
          id="448501"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>