<?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>188336</bug_id>
          
          <creation_ts>2018-08-05 18:42:47 -0700</creation_ts>
          <short_desc>HTML parser should execute custom element reactions for setting attributes immediately after creating a custom element</short_desc>
          <delta_ts>2018-08-13 19:55:37 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154907</blocked>
    
    <blocked>183931</blocked>
    
    <blocked>187319</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448025</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-05 18:42:47 -0700</bug_when>
    <thetext>HTML parser should be pushing &amp; popping from the custom element reactions stack:
https://html.spec.whatwg.org/multipage/parsing.html#create-an-element-for-the-token</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448026</commentid>
    <comment_count>1</comment_count>
      <attachid>346607</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-05 18:59:47 -0700</bug_when>
    <thetext>Created attachment 346607
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448027</commentid>
    <comment_count>2</comment_count>
      <attachid>346608</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-05 19:00:51 -0700</bug_when>
    <thetext>Created attachment 346608
Added a missing change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448028</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-05 19:01:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/42954915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448030</commentid>
    <comment_count>4</comment_count>
      <attachid>346608</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-05 19:10:49 -0700</bug_when>
    <thetext>Comment on attachment 346608
Added a missing change log

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

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:216
&gt; +            m_treeBuilder-&gt;didCreateCustomOrFallbackElement(WTFMove(newElement), *constructionData);

Note that the insertion step doesn&apos;t need to be split because there is no way to affect the list of open elements in the parser once we forbid document.open/write in the bug 187319.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448043</commentid>
    <comment_count>5</comment_count>
      <attachid>346608</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-08-05 21:41:23 -0700</bug_when>
    <thetext>Comment on attachment 346608
Added a missing change log

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        is set or not since the precense of an element queue should not be observable in the case where we&apos;re constructing

nit: presence</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448064</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-06 00:51:15 -0700</bug_when>
    <thetext>Did you mean to r+ the patch with that comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448066</commentid>
    <comment_count>7</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-08-06 00:57:05 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #6)
&gt; Did you mean to r+ the patch with that comment?

The patch looks good to me, but maybe someone else should review since I worked on this issue in bug 188190.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448068</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-06 00:58:42 -0700</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #7)
&gt; (In reply to Ryosuke Niwa from comment #6)
&gt; &gt; Did you mean to r+ the patch with that comment?
&gt; 
&gt; The patch looks good to me, but maybe someone else should review since I
&gt; worked on this issue in bug 188190.

Fair enough although this code change is quite bit different from what you made in that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448072</commentid>
    <comment_count>9</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-08-06 01:03:58 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #8)
&gt; (In reply to Frédéric Wang (:fredw) from comment #7)
&gt; &gt; (In reply to Ryosuke Niwa from comment #6)
&gt; &gt; &gt; Did you mean to r+ the patch with that comment?
&gt; &gt; 
&gt; &gt; The patch looks good to me, but maybe someone else should review since I
&gt; &gt; worked on this issue in bug 188190.
&gt; 
&gt; Fair enough although this code change is quite bit different from what you
&gt; made in that bug.

Right, let&apos;s take this then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448156</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-06 10:45:44 -0700</bug_when>
    <thetext>Committed r234608: &lt;https://trac.webkit.org/changeset/234608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448561</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-07 14:02:58 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448562</commentid>
    <comment_count>12</comment_count>
      <attachid>346728</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-07 14:03:00 -0700</bug_when>
    <thetext>Created attachment 346728
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448563</commentid>
    <comment_count>13</comment_count>
      <attachid>346728</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-07 14:03:39 -0700</bug_when>
    <thetext>Comment on attachment 346728
Patch for landing

Oops, wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448570</commentid>
    <comment_count>14</comment_count>
      <attachid>346730</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-07 14:06:11 -0700</bug_when>
    <thetext>Created attachment 346730
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448571</commentid>
    <comment_count>15</comment_count>
      <attachid>346731</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-07 14:06:51 -0700</bug_when>
    <thetext>Created attachment 346731
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448572</commentid>
    <comment_count>16</comment_count>
      <attachid>346731</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-07 14:07:17 -0700</bug_when>
    <thetext>Comment on attachment 346731
Patch for landing

Ugh... wrong bug again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346607</attachid>
            <date>2018-08-05 18:59:47 -0700</date>
            <delta_ts>2018-08-05 19:00:49 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-188336-20180805185946.patch</filename>
            <type>text/plain</type>
            <size>4301</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q4OWIzYzUxN2Y1YTU1
NGIzMzY1YTBiMGJlYjYzODM0ODI3ZDUzNS4uMDlkYTlmZDIzOGE4MjlhNzBmOTg5YTRhMWExZTQx
ZmI5NGQ5NGY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTA4LTA1ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUwgcGFyc2VyIHNob3Vs
ZCBleGVjdXRlIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3Igc2V0dGluZyBhdHRyaWJ1dGVz
IGltbWVkaWF0ZWx5IGFmdGVyIGNyZWF0aW5nIGEgY3VzdG9tIGVsZW1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODMzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1c2ggYW5kIHBvcCBhbiBlbGVt
ZW50IHF1ZXVlIGZyb20gdGhlIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBzdGFjayB3aGVuIGNv
bnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50OgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRo
ZS10b2tlbgorCisgICAgICAgIFRvIGRvIHRoaXMsIHdlIGluc3RhbnRpYXRlIEN1c3RvbUVsZW1l
bnRSZWFjdGlvblN0YWNrIGluIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNl
ZFRyZWVCdWlsZGVyCisgICAgICAgIHdoZXJlIHdlIHN5bmNocm9ub3VzbHkgY29uc3RydWN0IGEg
Y3VzdG9tIGVsZW1lbnQuIFdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgd2hldGhlciAqd2ls
bCBleGVjdXRlIHNjcmlwdCoKKyAgICAgICAgaXMgc2V0IG9yIG5vdCBzaW5jZSB0aGUgcHJlY2Vu
c2Ugb2YgYW4gZWxlbWVudCBxdWV1ZSBzaG91bGQgbm90IGJlIG9ic2VydmFibGUgaW4gdGhlIGNh
c2Ugd2hlcmUgd2UncmUgY29uc3RydWN0aW5nCisgICAgICAgIGEgZmFsbGJhY2sgZWxlbWVudCAo
c2luY2UgaXQgd291bGQgbm90IGVucXVldWUgYW55IG5ldyBjdXN0b20gZWxlbWVudCByZWFjdGlv
bikuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi5o
dG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJl
ZUJ1aWxkZXIpOiBJbnN0YW50aWF0ZSBDdXN0b21FbGVtZW50UmVhY3Rpb25TdGFjay4gTm90ZSB0
aGF0IHdlCisgICAgICAgIGRvbid0IGluc2VydCB0aGUgY3VzdG9tIGVsZW1lbnQgaW50byB0aGUg
cGFyc2VyIHVudGlsIHdlIGZpbmlzaCBwcm9jZXNzaW5nIHRoZSBjdXN0b20gZWxlbWVudCByZWFj
dGlvbnMuCisKIDIwMTgtMDgtMDUgIE1zMmdlciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdIFJlbW92ZSB1bnNvdW5kIGFzc2VydGlvbnMgaW4gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGM5Y2MzYWM5MWUwODFmYzRhYjI3NmMxYWFjZWZm
ZjQwYzcyZjNkOTAuLjNmM2U3OTkzZWQ5YzczNTM4MWMzMTRlODk3YTdiODU5ZTFlNjM0YjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNw
cApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudFBhcnNlci5oIgogCisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMjA4LDkgKzIwOSwxMiBAQCB2b2lkIEhUTUxE
b2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKCkKICAgICAgICAg
QVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJzZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLWFuLWVsZW1l
bnQtZm9yLXRoZS10b2tlbgotICAgICAgICBhdXRvJiBlbGVtZW50SW50ZXJmYWNlID0gY29uc3Ry
dWN0aW9uRGF0YS0+ZWxlbWVudEludGVyZmFjZS5nZXQoKTsKLSAgICAgICAgYXV0byBuZXdFbGVt
ZW50ID0gZWxlbWVudEludGVyZmFjZS5jb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNrKCpkb2N1
bWVudCgpLCBjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lKTsKLSAgICAgICAgbV90cmVlQnVpbGRlci0+
ZGlkQ3JlYXRlQ3VzdG9tT3JGYWxsYmFja0VsZW1lbnQoV1RGTW92ZShuZXdFbGVtZW50KSwgKmNv
bnN0cnVjdGlvbkRhdGEpOworICAgICAgICB7CisgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVh
Y3Rpb25TdGFjayByZWFjdGlvblN0YWNrKGRvY3VtZW50KCktPmV4ZWNTdGF0ZSgpKTsKKyAgICAg
ICAgICAgIGF1dG8mIGVsZW1lbnRJbnRlcmZhY2UgPSBjb25zdHJ1Y3Rpb25EYXRhLT5lbGVtZW50
SW50ZXJmYWNlLmdldCgpOworICAgICAgICAgICAgYXV0byBuZXdFbGVtZW50ID0gZWxlbWVudElu
dGVyZmFjZS5jb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNrKCpkb2N1bWVudCgpLCBjb25zdHJ1
Y3Rpb25EYXRhLT5uYW1lKTsKKyAgICAgICAgICAgIG1fdHJlZUJ1aWxkZXItPmRpZENyZWF0ZUN1
c3RvbU9yRmFsbGJhY2tFbGVtZW50KFdURk1vdmUobmV3RWxlbWVudCksICpjb25zdHJ1Y3Rpb25E
YXRhKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvcGFyc2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMtYW5kLWNoaWxkcmVuLWV4cGVjdGVk
LnR4dAppbmRleCBlMjMxN2FhNjNmN2RjYzU2MGUyMDM4ZjFkZmFlNWQ2OThhYzg5ZjQyLi5iYzBj
MzAwZTc2OGY1ZWZjNGI1YWE2MDgwMDk3ZGZiZjQxYjhlMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJz
ZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1l
bnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi1leHBlY3RlZC50
eHQKQEAgLTMsNSArMyw1IEBAIFBBU1MgSFRNTCBwYXJzZXIgbXVzdCBzZXQgdGhlIGF0dHJpYnV0
ZXMKIFBBU1MgSFRNTCBwYXJzZXIgbXVzdCBhcHBlbmQgY2hpbGQgbm9kZXMgCiBQQVNTIEhUTUwg
cGFyc2VyIG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGVzIG9yIGFwcGVuZCBjaGlsZHJlbiBiZWZvcmUg
Y2FsbGluZyBjb25zdHJ1Y3RvciAKIEZBSUwgSFRNTCBwYXJzZXIgc2hvdWxkIGNhbGwgY29ubmVj
dGVkQ2FsbGJhY2sgYmVmb3JlIGFwcGVuZGluZyBjaGlsZCBub2Rlcy4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMCBidXQgZ290IDIKLUZBSUwgSFRNTCBwYXJzZXIgbXVzdCBlbnF1ZXVlIGF0dHJp
YnV0ZUNoYW5nZWQgcmVhY3Rpb25zIGFzc2VydF9lcXVhbHM6IGF0dHJpYnV0ZUNoYW5nZWRDYWxs
YmFjayBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhcHBlbmRpbmcgYSBjaGlsZCBleHBlY3RlZCAw
IGJ1dCBnb3QgMgorUEFTUyBIVE1MIHBhcnNlciBtdXN0IGVucXVldWUgYXR0cmlidXRlQ2hhbmdl
ZCByZWFjdGlvbnMgCiBoZWxsbyB3b3JsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346608</attachid>
            <date>2018-08-05 19:00:51 -0700</date>
            <delta_ts>2018-08-07 14:07:26 -0700</delta_ts>
            <desc>Added a missing change log</desc>
            <filename>bug-188336-20180805190050.patch</filename>
            <type>text/plain</type>
            <size>5150</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q4OWIzYzUxN2Y1YTU1
NGIzMzY1YTBiMGJlYjYzODM0ODI3ZDUzNS4uMDlkYTlmZDIzOGE4MjlhNzBmOTg5YTRhMWExZTQx
ZmI5NGQ5NGY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTA4LTA1ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUwgcGFyc2VyIHNob3Vs
ZCBleGVjdXRlIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3Igc2V0dGluZyBhdHRyaWJ1dGVz
IGltbWVkaWF0ZWx5IGFmdGVyIGNyZWF0aW5nIGEgY3VzdG9tIGVsZW1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODMzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1c2ggYW5kIHBvcCBhbiBlbGVt
ZW50IHF1ZXVlIGZyb20gdGhlIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBzdGFjayB3aGVuIGNv
bnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50OgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRo
ZS10b2tlbgorCisgICAgICAgIFRvIGRvIHRoaXMsIHdlIGluc3RhbnRpYXRlIEN1c3RvbUVsZW1l
bnRSZWFjdGlvblN0YWNrIGluIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNl
ZFRyZWVCdWlsZGVyCisgICAgICAgIHdoZXJlIHdlIHN5bmNocm9ub3VzbHkgY29uc3RydWN0IGEg
Y3VzdG9tIGVsZW1lbnQuIFdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgd2hldGhlciAqd2ls
bCBleGVjdXRlIHNjcmlwdCoKKyAgICAgICAgaXMgc2V0IG9yIG5vdCBzaW5jZSB0aGUgcHJlY2Vu
c2Ugb2YgYW4gZWxlbWVudCBxdWV1ZSBzaG91bGQgbm90IGJlIG9ic2VydmFibGUgaW4gdGhlIGNh
c2Ugd2hlcmUgd2UncmUgY29uc3RydWN0aW5nCisgICAgICAgIGEgZmFsbGJhY2sgZWxlbWVudCAo
c2luY2UgaXQgd291bGQgbm90IGVucXVldWUgYW55IG5ldyBjdXN0b20gZWxlbWVudCByZWFjdGlv
bikuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi5o
dG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJl
ZUJ1aWxkZXIpOiBJbnN0YW50aWF0ZSBDdXN0b21FbGVtZW50UmVhY3Rpb25TdGFjay4gTm90ZSB0
aGF0IHdlCisgICAgICAgIGRvbid0IGluc2VydCB0aGUgY3VzdG9tIGVsZW1lbnQgaW50byB0aGUg
cGFyc2VyIHVudGlsIHdlIGZpbmlzaCBwcm9jZXNzaW5nIHRoZSBjdXN0b20gZWxlbWVudCByZWFj
dGlvbnMuCisKIDIwMTgtMDgtMDUgIE1zMmdlciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdIFJlbW92ZSB1bnNvdW5kIGFzc2VydGlvbnMgaW4gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGM5Y2MzYWM5MWUwODFmYzRhYjI3NmMxYWFjZWZm
ZjQwYzcyZjNkOTAuLjNmM2U3OTkzZWQ5YzczNTM4MWMzMTRlODk3YTdiODU5ZTFlNjM0YjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNw
cApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudFBhcnNlci5oIgogCisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMjA4LDkgKzIwOSwxMiBAQCB2b2lkIEhUTUxE
b2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKCkKICAgICAgICAg
QVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJzZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLWFuLWVsZW1l
bnQtZm9yLXRoZS10b2tlbgotICAgICAgICBhdXRvJiBlbGVtZW50SW50ZXJmYWNlID0gY29uc3Ry
dWN0aW9uRGF0YS0+ZWxlbWVudEludGVyZmFjZS5nZXQoKTsKLSAgICAgICAgYXV0byBuZXdFbGVt
ZW50ID0gZWxlbWVudEludGVyZmFjZS5jb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNrKCpkb2N1
bWVudCgpLCBjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lKTsKLSAgICAgICAgbV90cmVlQnVpbGRlci0+
ZGlkQ3JlYXRlQ3VzdG9tT3JGYWxsYmFja0VsZW1lbnQoV1RGTW92ZShuZXdFbGVtZW50KSwgKmNv
bnN0cnVjdGlvbkRhdGEpOworICAgICAgICB7CisgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVh
Y3Rpb25TdGFjayByZWFjdGlvblN0YWNrKGRvY3VtZW50KCktPmV4ZWNTdGF0ZSgpKTsKKyAgICAg
ICAgICAgIGF1dG8mIGVsZW1lbnRJbnRlcmZhY2UgPSBjb25zdHJ1Y3Rpb25EYXRhLT5lbGVtZW50
SW50ZXJmYWNlLmdldCgpOworICAgICAgICAgICAgYXV0byBuZXdFbGVtZW50ID0gZWxlbWVudElu
dGVyZmFjZS5jb25zdHJ1Y3RFbGVtZW50V2l0aEZhbGxiYWNrKCpkb2N1bWVudCgpLCBjb25zdHJ1
Y3Rpb25EYXRhLT5uYW1lKTsKKyAgICAgICAgICAgIG1fdHJlZUJ1aWxkZXItPmRpZENyZWF0ZUN1
c3RvbU9yRmFsbGJhY2tFbGVtZW50KFdURk1vdmUobmV3RWxlbWVudCksICpjb25zdHJ1Y3Rpb25E
YXRhKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCAxYmMwYWEzMWIxZDlkMzg2MDc1OGEzYmRlMzJhNjYwMTkxYzQ4
ZDFjLi44ZmQ4YjZkMjEzMjViNGUzNjUxMjAyNWM2NDI3MmU1MjZiOTMzOWU2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wOC0wNSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBIVE1MIHBhcnNlciBzaG91bGQg
ZXhlY3V0ZSBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIHNldHRpbmcgYXR0cmlidXRlcyBp
bW1lZGlhdGVseSBhZnRlciBjcmVhdGluZyBhIGN1c3RvbSBlbGVtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgzMzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIHRoZSB0ZXN0IG5v
dyB0aGF0IHRoZSByZWxldmFudCB0ZXN0IGNhc2UgaXMgcGFzc2luZy4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1zZXRzLWF0dHJp
YnV0ZXMtYW5kLWNoaWxkcmVuLWV4cGVjdGVkLnR4dDoKKwogMjAxOC0wOC0wMyAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBpbm5lckhUTUwgc2hvdWxkIG5vdCBz
eW5jaHJvbm91c2x5IGNyZWF0ZSBhIGN1c3RvbSBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJz
ZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
cGFyc2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMtYW5kLWNoaWxkcmVuLWV4cGVjdGVkLnR4dApp
bmRleCBlMjMxN2FhNjNmN2RjYzU2MGUyMDM4ZjFkZmFlNWQ2OThhYzg5ZjQyLi5iYzBjMzAwZTc2
OGY1ZWZjNGI1YWE2MDgwMDk3ZGZiZjQxYjhlMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFy
c2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Bh
cnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi1leHBlY3RlZC50eHQKQEAg
LTMsNSArMyw1IEBAIFBBU1MgSFRNTCBwYXJzZXIgbXVzdCBzZXQgdGhlIGF0dHJpYnV0ZXMKIFBB
U1MgSFRNTCBwYXJzZXIgbXVzdCBhcHBlbmQgY2hpbGQgbm9kZXMgCiBQQVNTIEhUTUwgcGFyc2Vy
IG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGVzIG9yIGFwcGVuZCBjaGlsZHJlbiBiZWZvcmUgY2FsbGlu
ZyBjb25zdHJ1Y3RvciAKIEZBSUwgSFRNTCBwYXJzZXIgc2hvdWxkIGNhbGwgY29ubmVjdGVkQ2Fs
bGJhY2sgYmVmb3JlIGFwcGVuZGluZyBjaGlsZCBub2Rlcy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgMCBidXQgZ290IDIKLUZBSUwgSFRNTCBwYXJzZXIgbXVzdCBlbnF1ZXVlIGF0dHJpYnV0ZUNo
YW5nZWQgcmVhY3Rpb25zIGFzc2VydF9lcXVhbHM6IGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayBz
aG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhcHBlbmRpbmcgYSBjaGlsZCBleHBlY3RlZCAwIGJ1dCBn
b3QgMgorUEFTUyBIVE1MIHBhcnNlciBtdXN0IGVucXVldWUgYXR0cmlidXRlQ2hhbmdlZCByZWFj
dGlvbnMgCiBoZWxsbyB3b3JsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346728</attachid>
            <date>2018-08-07 14:03:00 -0700</date>
            <delta_ts>2018-08-07 14:03:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188336-20180807140259.patch</filename>
            <type>text/plain</type>
            <size>36854</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q4OWIzYzUxN2Y1YTU1
NGIzMzY1YTBiMGJlYjYzODM0ODI3ZDUzNS4uZmY0NWJhZjI3MWRhNzlhY2M3NWQ0NWU5ODc2OGZl
NGIyNWZjMzk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTA4LTA2ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGRvY3VtZW50Lm9wZW4gYW5k
IGRvY3VtZW50LndyaXRlIG11c3QgdGhyb3cgd2hpbGUgdGhlIEhUTUwgcGFyc2VyIGlzIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzMxOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDI4NDMwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIE1ha2UgZG9jdW1lbnQub3BlbiwgZG9jdW1lbnQud3JpdGUsIGRvY3VtZW50Lndy
aXRlbG4sIGFuZCBkb2N1bWVudC5jbG9zZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBkdXJpbmcK
KyAgICAgICAgYSBzeW5jaHJvbm91cyBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3Rpb24gYXMgc3Bl
Y2lmaWVkOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9w
YXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbgorICAgICAgICBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRp
b24uaHRtbCN0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlcgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1p
bnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jdXN0
b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItcmVh
Y3Rpb25zLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6Om9wZW5Gb3JCaW5kaW5ncyk6IFRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gbV90aHJv
d09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50IGlzIG5vbi16ZXJvLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNsb3NlRm9yQmluZGluZ3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp3cml0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OndyaXRlbG4pOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogUmUtb3JkZXJlZCB0
aGUgcmVsYXRlZCBpbnN0YW5jZSB2YXJpYWJsZXMgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGlu
IHRoZSBzcGVjLCBhbmQgdXBkYXRlZCBzcGVjIFVSTHMuCisgICAgICAgICogZG9tL1Rocm93T25E
eW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyOjpUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5jcmVt
ZW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyOjp+VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3Jl
bWVudGVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2Vk
VHJlZUJ1aWxkZXIpOiBJbnN0YW50aWF0ZSBUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNv
dW50SW5jcmVtZW50ZXIuCisKKzIwMTgtMDgtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgSFRNTCBwYXJzZXIgc2hvdWxkIGV4ZWN1dGUgY3VzdG9tIGVsZW1l
bnQgcmVhY3Rpb25zIGZvciBzZXR0aW5nIGF0dHJpYnV0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgY3Jl
YXRpbmcgYSBjdXN0b20gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBX
YW5nLgorCisgICAgICAgIFB1c2ggYW5kIHBvcCBhbiBlbGVtZW50IHF1ZXVlIGZyb20gdGhlIGN1
c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBzdGFjayB3aGVuIGNvbnN0cnVjdGluZyBhIGN1c3RvbSBl
bGVtZW50OgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9w
YXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbgorCisgICAgICAgIFRv
IGRvIHRoaXMsIHdlIGluc3RhbnRpYXRlIEN1c3RvbUVsZW1lbnRSZWFjdGlvblN0YWNrIGluIEhU
TUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyCisgICAgICAg
IHdoZXJlIHdlIHN5bmNocm9ub3VzbHkgY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQuIFdlIGRv
bid0IGhhdmUgdG8gd29ycnkgYWJvdXQgd2hldGhlciAqd2lsbCBleGVjdXRlIHNjcmlwdCoKKyAg
ICAgICAgaXMgc2V0IG9yIG5vdCBzaW5jZSB0aGUgcHJlY2Vuc2Ugb2YgYW4gZWxlbWVudCBxdWV1
ZSBzaG91bGQgbm90IGJlIG9ic2VydmFibGUgaW4gdGhlIGNhc2Ugd2hlcmUgd2UncmUgY29uc3Ry
dWN0aW5nCisgICAgICAgIGEgZmFsbGJhY2sgZWxlbWVudCAoc2luY2UgaXQgd291bGQgbm90IGVu
cXVldWUgYW55IG5ldyBjdXN0b20gZWxlbWVudCByZWFjdGlvbikuCisKKyAgICAgICAgVGVzdHM6
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi5odG1sCisKKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERv
Y3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIpOiBJbnN0YW50aWF0
ZSBDdXN0b21FbGVtZW50UmVhY3Rpb25TdGFjay4gTm90ZSB0aGF0IHdlCisgICAgICAgIGRvbid0
IGluc2VydCB0aGUgY3VzdG9tIGVsZW1lbnQgaW50byB0aGUgcGFyc2VyIHVudGlsIHdlIGZpbmlz
aCBwcm9jZXNzaW5nIHRoZSBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMuCisKIDIwMTgtMDgtMDUg
IE1zMmdlciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFJlbW92
ZSB1bnNvdW5kIGFzc2VydGlvbnMgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjZWU4ZDdlZjdjMzM2ZTI1NTY0ZTlhMjE3Y2RhMDAyODQxOTk5ODQ5Li4xOTk0NTEwMzM5
ZDI3MDk5NWQ1MTY3OTQyZjFmOTRhODNjNmZiMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDg1MSw2ICsxMDg1MSw3IEBA
CiAJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcmVkUG9zaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQxNzA2MjEyNTY2MkIzMDA2QjI4RkMgLyog
QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QjQxNzA2MzEyNTY2MkIzMDA2QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGx5QmxvY2tFbGVt
ZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNDM3NkVGMjEx
N0U4NzIwMDlEMDNBMCAvKiBUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5jcmVt
ZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3Vu
dEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTBCMURDMTdD
RDRDMEYwMDg3RjYzQyAvKiBGb3JtTmFtZWRJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvcm1OYW1lZEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUI1MzJFQTExQkE5Mjg1NzAwMzhBODI3IC8qIFNsb3RBc3NpZ25tZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsb3RBc3NpZ25tZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1MzJFQTIxQkE5Mjg1NzAwMzhBODI3IC8qIFNsb3RBc3Np
Z25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsb3RBc3NpZ25tZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjU2Myw2ICsyNjU2NCw3IEBACiAJ
CQkJQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oICovLAog
CQkJCUU0RDk4OEI1MTdCRkVCMjEwMDg0RkI4OCAvKiBUZXh0Tm9kZVRyYXZlcnNhbC5jcHAgKi8s
CiAJCQkJRTREOTg4QjMxN0JGRDFGNjAwODRGQjg4IC8qIFRleHROb2RlVHJhdmVyc2FsLmggKi8s
CisJCQkJOUI0Mzc2RUYyMTE3RTg3MjAwOUQwM0EwIC8qIFRocm93T25EeW5hbWljTWFya3VwSW5z
ZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oICovLAogCQkJCTBGNTRERDA1MTg4MUQ1RjUwMDNFRURC
QiAvKiBUb3VjaC5oICovLAogCQkJCTBGNTRERDA2MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaEV2
ZW50LmggKi8sCiAJCQkJMEY1NEREMDcxODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5oICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDBlYmU2ZmY3Zjk4NGU3MjM3NzJmZTE0ZjNj
NTE0NDA4NGZiZTQ2Yi4uNTIwMzI1N2FiNjQ3NjJmOTk1ZWU1ODZjODU4MDI0N2Y0NzFiOGExYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNjA5LDcgKzI2MDksNyBAQCBFeGNlcHRpb25P
cjxSZWZQdHI8V2luZG93UHJveHk+PiBEb2N1bWVudDo6b3BlbkZvckJpbmRpbmdzKERPTVdpbmRv
dyYgYWN0aXZlV2luZAogLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciB0aGUgJ3R5cGUnIGFuZCAn
cmVwbGFjZScgcGFyYW1ldGVycy4KIEV4Y2VwdGlvbk9yPERvY3VtZW50Jj4gRG9jdW1lbnQ6Om9w
ZW5Gb3JCaW5kaW5ncyhEb2N1bWVudCogcmVzcG9uc2libGVEb2N1bWVudCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBpZiAoIWlzSFRNTERvY3VtZW50KCkpCisgICAgaWYg
KCFpc0hUTUxEb2N1bWVudCgpIHx8IG1fdGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3Vu
dCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWxzbyB0aHJvdyBpZiAiZG9jdW1lbnQncyB0aHJvdy1v
bi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24gY291bnRlciBpcyBncmVhdGVyIHRoYW4gMCIuCkBA
IC0yNzUzLDcgKzI3NTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1bWVudDo6Y2xvc2VGb3JC
aW5kaW5ncygpCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmb2xsb3cgdGhlIHNwZWNpZmljYXRp
b24gbW9yZSBjbG9zZWx5OgogICAgIC8vICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tZG9jdW1lbnQtY2xvc2UKIAotICAgIGlmICgh
aXNIVE1MRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzSFRNTERvY3VtZW50KCkgfHwgbV90aHJvd09u
RHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhbHNvIHRo
cm93IGlmICJkb2N1bWVudCdzIHRocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3Vu
dGVyIGlzIGdyZWF0ZXIgdGhhbiAwIi4KQEAgLTI5ODQsNyArMjk4NCw3IEBAIHZvaWQgRG9jdW1l
bnQ6OndyaXRlKERvY3VtZW50KiByZXNwb25zaWJsZURvY3VtZW50LCBTZWdtZW50ZWRTdHJpbmcm
JiB0ZXh0KQogCiBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1bWVudDo6d3JpdGUoRG9jdW1lbnQqIHJl
c3BvbnNpYmxlRG9jdW1lbnQsIFZlY3RvcjxTdHJpbmc+JiYgc3RyaW5ncykKIHsKLSAgICBpZiAo
IWlzSFRNTERvY3VtZW50KCkpCisgICAgaWYgKCFpc0hUTUxEb2N1bWVudCgpIHx8IG1fdGhyb3dP
bkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWxzbyB0
aHJvdyBpZiAiZG9jdW1lbnQncyB0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24gY291
bnRlciBpcyBncmVhdGVyIHRoYW4gMCIuCkBAIC0zMDAxLDcgKzMwMDEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBEb2N1bWVudDo6d3JpdGUoRG9jdW1lbnQqIHJlc3BvbnNpYmxlRG9jdW1lbnQsIFZl
Y3RvcjxTdHJpbmc+JgogCiBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1bWVudDo6d3JpdGVsbihEb2N1
bWVudCogcmVzcG9uc2libGVEb2N1bWVudCwgVmVjdG9yPFN0cmluZz4mJiBzdHJpbmdzKQogewot
ICAgIGlmICghaXNIVE1MRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzSFRNTERvY3VtZW50KCkgfHwg
bV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50KQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBhbHNvIHRocm93IGlmICJkb2N1bWVudCdzIHRocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2Vy
dGlvbiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAwIi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
ODNiMDg4OWMwOTk4NDk4NGZhMjY4MzU0YThmNDcxNDViZTdjMjgyYi4uZjBkZTAxYTQyZDJhNThh
NzM3N2RjZDVlYjk4ZmUyMjJlODBkYWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0ODAs
OCArMTQ4MCw5IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIERvY3Vt
ZW50UGFyc2VyWWllbGRUb2tlbjsKICAgICBmcmllbmQgY2xhc3MgTm9kZTsKLSAgICBmcmllbmQg
Y2xhc3MgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI7CisgICAgZnJpZW5k
IGNsYXNzIFRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcjsKICAg
ICBmcmllbmQgY2xhc3MgSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyOwor
ICAgIGZyaWVuZCBjbGFzcyBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsK
IAogICAgIGJvb2wgc2hvdWxkSW5oZXJpdENvbnRlbnRTZWN1cml0eVBvbGljeUZyb21Pd25lcigp
IGNvbnN0OwogCkBAIC0xODU0LDEyICsxODU1LDE1IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbG9h
ZEV2ZW50RGVsYXlDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2xhc3RTdHlsZVVwZGF0ZVNp
emVGb3JUZXN0aW5nIHsgMCB9OwogCi0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2lnbm9yZS1kZXN0cnVjdGl2ZS13cml0ZXMtY291
bnRlcgotICAgIHVuc2lnbmVkIG1faWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50IHsgMCB9Owor
ICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2R5bmFtaWMtbWFy
a3VwLWluc2VydGlvbi5odG1sI3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3Vu
dGVyCisgICAgdW5zaWduZWQgbV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50IHsg
MCB9OwogCi0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2Vi
YXBwYXBpcy5odG1sI2lnbm9yZS1vcGVucy1kdXJpbmctdW5sb2FkLWNvdW50ZXIKKyAgICAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNl
cnRpb24uaHRtbCNpZ25vcmUtb3BlbnMtZHVyaW5nLXVubG9hZC1jb3VudGVyCiAgICAgdW5zaWdu
ZWQgbV9pZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50IHsgMCB9OwogCisgICAgLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9u
Lmh0bWwjaWdub3JlLWRlc3RydWN0aXZlLXdyaXRlcy1jb3VudGVyCisgICAgdW5zaWduZWQgbV9p
Z25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQgeyAwIH07CisKICAgICB1bnNpZ25lZCBtX2FjdGl2
ZVBhcnNlckNvdW50IHsgMCB9OwogICAgIHVuc2lnbmVkIG1fc3R5bGVSZWNhbGNDb3VudCB7IDAg
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Rocm93T25EeW5hbWljTWFya3Vw
SW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rocm93T25E
eW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzZTcx
ZmEzNzFmMWE2ZjMwZmI0YTVmYWY4NWY4Yjc3NGI4YTFkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3Jl
bWVudGVyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUaHJv
d09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5jcmVtZW50ZXIgeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRl
cik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgKytkb2N1bWVudC5tX3Rocm93T25EeW5hbWljTWFy
a3VwSW5zZXJ0aW9uQ291bnQ7CisgICAgfQorCisgICAgflRocm93T25EeW5hbWljTWFya3VwSW5z
ZXJ0aW9uQ291bnRJbmNyZW1lbnRlcigpCisgICAgeworICAgICAgICBBU1NFUlQobV9kb2N1bWVu
dC0+bV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50KTsKKyAgICAgICAgLS1tX2Rv
Y3VtZW50LT5tX3Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnQ7CisgICAgfQorCitw
cml2YXRlOgorICAgIFJlZjxEb2N1bWVudD4gbV9kb2N1bWVudDsKK307CisgICAgCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAppbmRleCBjOWNjM2FjOTFlMDgxZmM0YWIyNzZjMWFhY2VmZmY0MGM3
MmYzZDkwLi5hZDJhYjZjZGI5NzRiMjcwZDUzZTY2NDY2ZTk0NTQxOWM3MDA3MjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1l
bnRQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQwLDYgKzQxLDcgQEAKICNpbmNsdWRlICJMaW5rTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjcmlw
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50
SW5jcmVtZW50ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDgsOSArMjEwLDE0
IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxk
ZXIoKQogICAgICAgICBBU1NFUlQoIW1fdHJlZUJ1aWxkZXItPmhhc1BhcnNlckJsb2NraW5nU2Ny
aXB0V29yaygpKTsKIAogICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNj
cmVhdGUtYW4tZWxlbWVudC1mb3ItdGhlLXRva2VuCi0gICAgICAgIGF1dG8mIGVsZW1lbnRJbnRl
cmZhY2UgPSBjb25zdHJ1Y3Rpb25EYXRhLT5lbGVtZW50SW50ZXJmYWNlLmdldCgpOwotICAgICAg
ICBhdXRvIG5ld0VsZW1lbnQgPSBlbGVtZW50SW50ZXJmYWNlLmNvbnN0cnVjdEVsZW1lbnRXaXRo
RmFsbGJhY2soKmRvY3VtZW50KCksIGNvbnN0cnVjdGlvbkRhdGEtPm5hbWUpOwotICAgICAgICBt
X3RyZWVCdWlsZGVyLT5kaWRDcmVhdGVDdXN0b21PckZhbGxiYWNrRWxlbWVudChXVEZNb3ZlKG5l
d0VsZW1lbnQpLCAqY29uc3RydWN0aW9uRGF0YSk7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8v
IFByZXZlbnQgZG9jdW1lbnQub3Blbi93cml0ZSBkdXJpbmcgcmVhY3Rpb25zIGJ5IGFsbG9jYXRp
bmcgdGhlIGluY3JlbWVudGVyIGJlZm9yZSB0aGUgcmVhY3Rpb25zIHN0YWNrLgorICAgICAgICAg
ICAgVGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyIGluY3JlbWVu
dGVyKCpkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblN0YWNr
IHJlYWN0aW9uU3RhY2soZG9jdW1lbnQoKS0+ZXhlY1N0YXRlKCkpOworICAgICAgICAgICAgYXV0
byYgZWxlbWVudEludGVyZmFjZSA9IGNvbnN0cnVjdGlvbkRhdGEtPmVsZW1lbnRJbnRlcmZhY2Uu
Z2V0KCk7CisgICAgICAgICAgICBhdXRvIG5ld0VsZW1lbnQgPSBlbGVtZW50SW50ZXJmYWNlLmNv
bnN0cnVjdEVsZW1lbnRXaXRoRmFsbGJhY2soKmRvY3VtZW50KCksIGNvbnN0cnVjdGlvbkRhdGEt
Pm5hbWUpOworICAgICAgICAgICAgbV90cmVlQnVpbGRlci0+ZGlkQ3JlYXRlQ3VzdG9tT3JGYWxs
YmFja0VsZW1lbnQoV1RGTW92ZShuZXdFbGVtZW50KSwgKmNvbnN0cnVjdGlvbkRhdGEpOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ODFjYTQ1ZTM0MTI3YWU2
Y2UxZWI4Yjc5OTk2YTY0YjI1ZjRhMGEwLi5hZjNiNDI2MzY0N2I1MmM0YzdlODUzZjJhNWRmOGI5
NzJkMTY5ZGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDgtMDYgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgZG9jdW1lbnQub3BlbiBhbmQgZG9jdW1l
bnQud3JpdGUgbXVzdCB0aHJvdyB3aGlsZSB0aGUgSFRNTCBwYXJzZXIgaXMgc3luY2hyb25vdXNs
eSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Mjg0MzAxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgQWRkZWQgVzNDIHN0eWxlIHRlc3RoYXJuZXNzLmpzIHRlc3RzLiBUaGUgV1BUIHRlc3QgYWRk
ZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8xMjAz
NworICAgICAgICBkb2Vzbid0IHRlc3QgbmVhcmx5IGFzIG1hbnkgZWRnZSBjYXNlcy4KKworICAg
ICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLWRlc3RpbmF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9u
LWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMt
bWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24t
Y291bnRlci1yZWFjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1
c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1y
ZWFjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTgtMDgtMDUgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtNZWRpYUNhcGFiaWxpdGllc10gUGxhdGZv
cm0gaW50ZWdyYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDFiYzBhYTMx
YjFkOWQzODYwNzU4YTNiZGUzMmE2NjAxOTFjNDhkMWMuLjgxYjhiYTg2OTI4MWRlMDQ0ZWYzYjJk
MmYwNGJlYjE2ZGMzOTEzN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE4LTA4LTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEhUTUwgcGFyc2VyIHNob3VsZCBleGVjdXRlIGN1c3RvbSBlbGVtZW50IHJlYWN0
aW9ucyBmb3Igc2V0dGluZyBhdHRyaWJ1dGVzIGltbWVkaWF0ZWx5IGFmdGVyIGNyZWF0aW5nIGEg
Y3VzdG9tIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4ODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKwor
ICAgICAgICBSZWJhc2VsaW5lIHRoZSB0ZXN0IG5vdyB0aGF0IHRoZSByZWxldmFudCB0ZXN0IGNh
c2UgaXMgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxl
bWVudHMvcGFyc2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMtYW5kLWNoaWxkcmVuLWV4cGVjdGVk
LnR4dDoKKwogMjAxOC0wOC0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBpbm5lckhUTUwgc2hvdWxkIG5vdCBzeW5jaHJvbm91c2x5IGNyZWF0ZSBhIGN1c3Rv
bSBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9y
ZXNvdXJjZXMvbmF2aWdhdGlvbi1kZXN0aW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL25hdmlnYXRpb24tZGVzdGluYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZGU4ZDJjNmViMTNlYTBkOGI2MzM3ODAxNjA4MTE1NTllMjgzOTUwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL25h
dmlnYXRpb24tZGVzdGluYXRpb24uaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxwPk5hdmlnYXRlZCE8L3A+Cis8c2NyaXB0PgorcGFyZW50LnBv
c3RNZXNzYWdlKCdkaWROYXZpZ2F0ZScsICcqJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9u
LWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1
cC1pbnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5
NzZmZTc3MDQ3OWVkZWJjODY3NDQ5YmZlMTg5NjBhN2MzMTgzOWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1
cC1pbnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKKworUEFTUyBkb2N1bWVudC5vcGVuKCkgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJv
ciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNT
IGRvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJy
b3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IAorUEFT
UyBkb2N1bWVudC5vcGVuKFVSTCkgbXVzdCBOT1QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Ig
d2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IAorUEFTUyBk
b2N1bWVudC5jbG9zZSgpIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5j
aHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC53
cml0ZSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBj
b25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQud3JpdGVsbiBtdXN0
IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3Rp
bmcgYSBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQub3BlbigpIG9mIGFub3RoZXIgZG9j
dW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91
c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC5vcGVuKCJ0
ZXh0L2h0bWwiKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRT
dGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVu
dCAKK1BBU1MgZG9jdW1lbnQuY2xvc2UoKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRo
cm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3Rpbmcg
YSBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQud3JpdGUgb2YgYW5vdGhlciBkb2N1bWVu
dCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkg
Y29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlbG4gb2Yg
YW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVu
IHN5bmNocm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFy
a3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXIt
Y29uc3RydWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE0YzdiMGRiZmU2ZDEzZTRmMDM0NDk4NjJjMTc0
MTQ3Nzc2MDMzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVj
dC5odG1sCkBAIC0wLDAgKzEsMTE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBjcmVhdGUgYW4gZWxlbWVudCBmb3IgYSB0b2tlbiBt
dXN0IGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGRvY3VtZW50J3MgdGhyb3ctb24tZHluYW1pYy1t
YXJrdXAtaW5zZXJ0aW9uIGNvdW50ZXI8L3RpdGxlPgorPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Via2l0Lm9yZyI+Cis8bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ikludm9raW5nIGRvY3VtZW50Lm9wZW4sIGRvY3VtZW50Lndy
aXRlLCBkb2N1bWVudC53cml0ZWxuLCBhbmQgZG9jdW1lbnQud3JpdGUgbXVzdCB0aHJvdyBhbiBl
eGNlcHRpb24gd2hlbiB0aGUgSFRNTCBwYXJzZXIgaXMgY3JlYXRpbmcgYSBjdXN0b20gZWxlbWVu
dCBmb3IgYSB0b2tlbiI+Cis8bWV0YSBuYW1lPSJoZWxwIiBjb250ZW50PSJodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQt
Zm9yLXRoZS10b2tlbiI+Cis8bWV0YSBuYW1lPSJoZWxwIiBjb250ZW50PSJodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCN0
aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlciI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCithc3luYyBmdW5jdGlv
biBjb25zdHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRlc3QsIGNhbGxfZnVuY3Rpb24p
Cit7CisgICAgY29uc3Qgd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRlc3Qp
OworICAgIGNvbnN0IGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50OworCisgICAgZG9jdW1lbnQu
b3BlbigpOworCisgICAgbGV0IGV4ZWN1dGVkID0gZmFsc2U7CisgICAgbGV0IGV4Y2VwdGlvbiA9
IG51bGw7CisgICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRzIHdpbmRvdy5IVE1MRWxlbWVu
dCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2FsbF9mdW5jdGlvbihkb2N1bWVudCwgd2lu
ZG93KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgZXhj
ZXB0aW9uID0gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleGVjdXRlZCA9IHRy
dWU7CisgICAgICAgIH0KKyAgICB9CisgICAgd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgn
c29tZS1lbGVtZW50JywgQ3VzdG9tRWxlbWVudCk7CisKKyAgICBkb2N1bWVudC53cml0ZSgnPCFE
T0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+PHNvbWUtZWxlbWVudD48L3NvbWUtZWxlbWVudD48L2Jv
ZHk+PC9odG1sPicpOworICAgIGRvY3VtZW50LmNsb3NlKCk7CisKKyAgICBhc3NlcnRfdHJ1ZShl
eGVjdXRlZCwgJ011c3Qgc3luY2hyb25vdXNseSBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50
Jyk7CisgICAgcmV0dXJuIHt3aW5kb3csIGRvY3VtZW50LCBleGNlcHRpb259OworfQorCitwcm9t
aXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNv
bnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBkb2N1
bWVudC5vcGVuKCkpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJv
cid9LCAoKSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIElu
dmFsaWRTdGF0ZUVycm9yJyk7Cit9LCAnZG9jdW1lbnQub3BlbigpIG11c3QgdGhyb3cgYW4gSW52
YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBl
bGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3Qg
cmVzdWx0ID0gYXdhaXQgY29uc3RydWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0aGlzLCAo
ZG9jdW1lbnQpID0+IGRvY3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcpKTsKKyAgICBhc3NlcnRfdGhy
b3dzKHtuYW1lOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhj
ZXB0aW9uOyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3Vt
ZW50Lm9wZW4oInRleHQvaHRtbCIpIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hl
biBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7CisKKy8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2R5bmFtaWMtbWFya3VwLWluc2Vy
dGlvbi5odG1sI2RvbS1kb2N1bWVudC1vcGVuLXdpbmRvdworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1
bmN0aW9uICgpIHsKKyAgICBsZXQgbG9hZF9wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHdpbmRvdy5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZlbnQuZGF0YSkpOwor
ICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9wYXJz
ZXIodGhpcywgKGRvY3VtZW50LCB3aW5kb3cpID0+IGRvY3VtZW50Lm9wZW4oJ3Jlc291cmNlcy9u
YXZpZ2F0aW9uLWRlc3RpbmF0aW9uLmh0bWwnLCAnX3NlbGYnLCAnJykpOworICAgIGFzc2VydF9l
cXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBs
b2FkX3Byb21pc2UsICdkaWROYXZpZ2F0ZScpOworfSwgJ2RvY3VtZW50Lm9wZW4oVVJMKSBtdXN0
IE5PVCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3Ry
dWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9u
ICgpIHsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2VsZW1lbnRf
aW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gZG9jdW1lbnQuY2xvc2UoKSk7CisgICAgYXNz
ZXJ0X3Rocm93cyh7bmFtZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+IHsgdGhyb3cgcmVz
dWx0LmV4Y2VwdGlvbjsgfSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3InKTsKK30s
ICdkb2N1bWVudC5jbG9zZSgpIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBz
eW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29uc3Ry
dWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50
LndyaXRlKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJ
bnZhbGlkU3RhdGVFcnJvcid9LCAoKSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdN
dXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yJyk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1
bHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYicpLCBudWxsLCAnTXVzdCBub3QgaW5zZXJ0IG5l
dyBjb250ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3VsdC5kb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuaW5uZXJIVE1MLmluY2x1ZGVzKCdzb21lIHRleHQnKSwgJ011c3Qgbm90IGluc2VydCBu
ZXcgY29udGVudCcpOworfSwgJ2RvY3VtZW50LndyaXRlIG11c3QgdGhyb3cgYW4gSW52YWxpZFN0
YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50
Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0
ID0gYXdhaXQgY29uc3RydWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0aGlzLCAoZG9jdW1l
bnQpID0+IGRvY3VtZW50LndyaXRlbG4oJzxiPnNvbWUgdGV4dDwvYj4nKSk7CisgICAgYXNzZXJ0
X3Rocm93cyh7bmFtZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+IHsgdGhyb3cgcmVzdWx0
LmV4Y2VwdGlvbjsgfSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3InKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiJyksIG51bGwsICdN
dXN0IG5vdCBpbnNlcnQgbmV3IGNvbnRlbnQnKTsKKyAgICBhc3NlcnRfZmFsc2UocmVzdWx0LmRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwuaW5jbHVkZXMoJ3NvbWUgdGV4dCcpLCAn
TXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7Cit9LCAnZG9jdW1lbnQud3JpdGVsbiBtdXN0
IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3Rp
bmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkg
eworICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0
KHRoaXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVu
dF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC5v
cGVuKCkpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7Cit9LCAn
ZG9jdW1lbnQub3BlbigpIG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52
YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBl
bGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3Qg
YW5vdGhlcl93aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAg
Y29uc3QgcmVzdWx0ID0gYXdhaXQgY29uc3RydWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0
aGlzLCAoZG9jdW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRvY3VtZW50Lm9wZW4oJ3RleHQvaHRt
bCcpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworfSwgJ2Rv
Y3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhy
b3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBh
IGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7Cisg
ICAgY29uc3QgYW5vdGhlcl93aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhp
cyk7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29uc3RydWN0X2N1c3RvbV9lbGVtZW50X2lu
X3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRvY3VtZW50LmNsb3Nl
KCkpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7Cit9LCAnZG9j
dW1lbnQuY2xvc2UoKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxl
bWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IGFu
b3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRoaXMpOworICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhp
cywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC53cml0ZSgnPGI+c29tZSB0
ZXh0PC9iPicpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOwor
ICAgIGFzc2VydF9lcXVhbHMoYW5vdGhlcl93aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
YicpLm91dGVySFRNTCwgJzxiPnNvbWUgdGV4dDwvYj4nKTsKK30sICdkb2N1bWVudC53cml0ZSBv
ZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdo
ZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0g
YXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRoaXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9
PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC53cml0ZWxuKCc8Yj5zb21lIHRleHQ8L2I+JykpOwor
ICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhhbm90aGVyX3dpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiJykub3V0ZXJIVE1M
LCAnPGI+c29tZSB0ZXh0PC9iPicpOworfSwgJ2RvY3VtZW50LndyaXRlbG4gb2YgYW5vdGhlciBk
b2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9u
b3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhyb3ctb24tZHlu
YW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItcmVhY3Rpb25zLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMTllZDExOTQ1YmQ2OTAxM2M3NGFhNWIwOWJmZTJmZGIyNjM0Y2Y4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhyb3ctb24tZHlu
YW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItcmVhY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEzIEBACisKK1BBU1MgZG9jdW1lbnQub3BlbigpIG11c3QgdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3Ig
YSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQu
b3BlbigidGV4dC9odG1sIikgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHBy
b2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0
cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC5vcGVuKFVSTCkgbXVzdCBOT1Qg
dGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50
IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCAK
K1BBU1MgZG9jdW1lbnQuY2xvc2UoKSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdo
ZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMg
Y29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlIG11c3QgdGhy
b3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJl
YWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCAKK1BB
U1MgZG9jdW1lbnQud3JpdGVsbiBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4g
cHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29u
c3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50Lm9wZW4oKSBvZiBhbm90aGVy
IGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vz
c2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0
ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG9mIGFu
b3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBw
cm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25z
dHJ1Y3RlZCBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQuY2xvc2UoKSBvZiBhbm90aGVy
IGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vz
c2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0
ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlIG9mIGFub3RoZXIgZG9jdW1l
bnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1
c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0
b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQud3JpdGVsbiBvZiBhbm90aGVyIGRvY3VtZW50IG11
c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20g
ZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVs
ZW1lbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Ro
cm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAt
aW5zZXJ0aW9uLWNvdW50ZXItcmVhY3Rpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjZDdjNjBlNzA1
MzRiNWFhNDk5N2IzZjZlY2U1NTdhNGJjYzgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlv
bi1jb3VudGVyLXJlYWN0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTE3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBjcmVhdGUgYW4gZWxl
bWVudCBmb3IgYSB0b2tlbiBtdXN0IGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGRvY3VtZW50J3Mg
dGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uIGNvdW50ZXI8L3RpdGxlPgorPG1ldGEg
bmFtZT0iYXV0aG9yIiB0aXRsZT0iUnlvc3VrZSBOaXdhIiBocmVmPSJtYWlsdG86cm5pd2FAd2Vi
a2l0Lm9yZyI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ikludm9raW5nIGRvY3VtZW50
Lm9wZW4sIGRvY3VtZW50LndyaXRlLCBkb2N1bWVudC53cml0ZWxuLCBhbmQgZG9jdW1lbnQud3Jp
dGUgbXVzdCB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiB0aGUgSFRNTCBwYXJzZXIgaXMgY3JlYXRp
bmcgYSBjdXN0b20gZWxlbWVudCBmb3IgYSB0b2tlbiI+Cis8bWV0YSBuYW1lPSJoZWxwIiBjb250
ZW50PSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwj
Y3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbiI+Cis8bWV0YSBuYW1lPSJoZWxwIiBjb250
ZW50PSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1
cC1pbnNlcnRpb24uaHRtbCN0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRl
ciI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgorCithc3luYyBmdW5jdGlvbiBjdXN0b21fZWxlbWVudF9yZWFjdGlvbnNfaW5fcGFyc2VyKHRl
c3QsIGNhbGxfZnVuY3Rpb24pCit7CisgICAgY29uc3Qgd2luZG93ID0gYXdhaXQgY3JlYXRlX3dp
bmRvd19pbl90ZXN0KHRlc3QpOworICAgIGNvbnN0IGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50
OworCisgICAgZG9jdW1lbnQub3BlbigpOworCisgICAgbGV0IGV4ZWN1dGVkID0gZmFsc2U7Cisg
ICAgbGV0IGV4Y2VwdGlvbiA9IG51bGw7CisgICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRz
IHdpbmRvdy5IVE1MRWxlbWVudCB7CisgICAgICAgIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhu
YW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICAgICAgY2FsbF9mdW5jdGlvbihkb2N1bWVudCwgd2luZG93KTsKKyAgICAgICAgICAgIH0gY2F0
Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gZXJyb3I7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBleGVjdXRlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBbJ3RpdGxlJ107CisgICAgd2lu
ZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnc29tZS1lbGVtZW50JywgQ3VzdG9tRWxlbWVudCk7
CisKKyAgICBkb2N1bWVudC53cml0ZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+PHNvbWUt
ZWxlbWVudCB0aXRsZT0ic29tZSB0aXRsZSI+PC9zb21lLWVsZW1lbnQ+PC9ib2R5PjwvaHRtbD4n
KTsKKyAgICBkb2N1bWVudC5jbG9zZSgpOworCisgICAgYXNzZXJ0X3RydWUoZXhlY3V0ZWQsICdN
dXN0IGltbWVkaWF0ZWx5IHByb2Nlc3MgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBzZXR0
aW5nIGF0dHJpYnV0ZXMnKTsKKyAgICByZXR1cm4ge2ZyYW1lRWxlbWVudCwgd2luZG93LCBkb2N1
bWVudCwgZXhjZXB0aW9ufTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsK
KyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjdXN0b21fZWxlbWVudF9yZWFjdGlvbnNfaW5fcGFy
c2VyKHRoaXMsIChkb2N1bWVudCkgPT4gZG9jdW1lbnQub3BlbigpKTsKKyAgICBhc3NlcnRfdGhy
b3dzKHtuYW1lOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhj
ZXB0aW9uOyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3Vt
ZW50Lm9wZW4oKSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2lu
ZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQg
Y3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAg
ICBjb25zdCByZXN1bHQgPSBhd2FpdCBjdXN0b21fZWxlbWVudF9yZWFjdGlvbnNfaW5fcGFyc2Vy
KHRoaXMsIChkb2N1bWVudCkgPT4gZG9jdW1lbnQub3BlbigndGV4dC9odG1sJykpOworICAgIGFz
c2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAoKSA9PiB7IHRocm93IHJl
c3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yJyk7Cit9
LCAnZG9jdW1lbnQub3BlbigidGV4dC9odG1sIikgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNo
cm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKKy8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2R5bmFtaWMtbWFya3VwLWluc2VydGlvbi5odG1sI2Rv
bS1kb2N1bWVudC1vcGVuLXdpbmRvdworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsK
KyAgICBsZXQgbG9hZF9wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHdpbmRvdy5v
bm1lc3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZlbnQuZGF0YSkpOworICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIodGhpcywgKGRv
Y3VtZW50LCB3aW5kb3cpID0+IGRvY3VtZW50Lm9wZW4oJ3Jlc291cmNlcy9uYXZpZ2F0aW9uLWRl
c3RpbmF0aW9uLmh0bWwnLCAnX3NlbGYnLCAnJykpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0
LmV4Y2VwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBsb2FkX3Byb21pc2Us
ICdkaWROYXZpZ2F0ZScpOworfSwgJ2RvY3VtZW50Lm9wZW4oVVJMKSBtdXN0IE5PVCB0aHJvdyBh
biBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rp
b25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3By
b21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
Y3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRv
Y3VtZW50LmNsb3NlKCkpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVF
cnJvcid9LCAoKSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFu
IEludmFsaWRTdGF0ZUVycm9yJyk7Cit9LCAnZG9jdW1lbnQuY2xvc2UoKSBtdXN0IHRocm93IGFu
IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlv
bnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBj
dXN0b21fZWxlbWVudF9yZWFjdGlvbnNfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gZG9j
dW1lbnQud3JpdGUoJzxiPnNvbWUgdGV4dDwvYj4nKSk7CisgICAgYXNzZXJ0X3Rocm93cyh7bmFt
ZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+IHsgdGhyb3cgcmVzdWx0LmV4Y2VwdGlvbjsg
fSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3InKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHJlc3VsdC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiJyksIG51bGwsICdNdXN0IG5vdCBpbnNl
cnQgbmV3IGNvbnRlbnQnKTsKKyAgICBhc3NlcnRfZmFsc2UocmVzdWx0LmRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5pbm5lckhUTUwuaW5jbHVkZXMoJ3NvbWUgdGV4dCcpLCAnTXVzdCBub3QgaW5z
ZXJ0IG5ldyBjb250ZW50Jyk7Cit9LCAnZG9jdW1lbnQud3JpdGUgbXVzdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZv
ciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9t
X2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50
LndyaXRlbG4oJzxiPnNvbWUgdGV4dDwvYj4nKSk7CisgICAgYXNzZXJ0X3Rocm93cyh7bmFtZTog
J0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+IHsgdGhyb3cgcmVzdWx0LmV4Y2VwdGlvbjsgfSwg
J011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3InKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJl
c3VsdC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiJyksIG51bGwsICdNdXN0IG5vdCBpbnNlcnQg
bmV3IGNvbnRlbnQnKTsKKyAgICBhc3NlcnRfZmFsc2UocmVzdWx0LmRvY3VtZW50LmRvY3VtZW50
RWxlbWVudC5pbm5lckhUTUwuaW5jbHVkZXMoJ3NvbWUgdGV4dCcpLCAnTXVzdCBub3QgaW5zZXJ0
IG5ldyBjb250ZW50Jyk7Cit9LCAnZG9jdW1lbnQud3JpdGVsbiBtdXN0IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9y
IGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25zdCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0
IGNyZWF0ZV93aW5kb3dfaW5fdGVzdCh0aGlzKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBj
dXN0b21fZWxlbWVudF9yZWFjdGlvbnNfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gYW5v
dGhlcl93aW5kb3cuZG9jdW1lbnQub3BlbigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5l
eGNlcHRpb24sIG51bGwpOworfSwgJ2RvY3VtZW50Lm9wZW4oKSBvZiBhbm90aGVyIGRvY3VtZW50
IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0
b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9t
IGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25z
dCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5fdGVzdCh0aGlzKTsKKyAg
ICBjb25zdCByZXN1bHQgPSBhd2FpdCBjdXN0b21fZWxlbWVudF9yZWFjdGlvbnNfaW5fcGFyc2Vy
KHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhlcl93aW5kb3cuZG9jdW1lbnQub3BlbigndGV4dC9o
dG1sJykpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7Cit9LCAn
ZG9jdW1lbnQub3BlbigidGV4dC9odG1sIikgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0
aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQg
cmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgYW5vdGhlcl93
aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAgY29uc3QgcmVz
dWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9j
dW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRvY3VtZW50LmNsb3NlKCkpOworICAgIGFzc2VydF9l
cXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7Cit9LCAnZG9jdW1lbnQuY2xvc2UoKSBvZiBh
bm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4g
cHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29u
c3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9u
ICgpIHsKKyAgICBjb25zdCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5f
dGVzdCh0aGlzKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjdXN0b21fZWxlbWVudF9yZWFj
dGlvbnNfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhlcl93aW5kb3cuZG9jdW1l
bnQud3JpdGUoJzxiPnNvbWUgdGV4dDwvYj4nKSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQu
ZXhjZXB0aW9uLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFub3RoZXJfd2luZG93LmRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2InKS5vdXRlckhUTUwsICc8Yj5zb21lIHRleHQ8L2I+Jyk7Cit9
LCAnZG9jdW1lbnQud3JpdGUgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25z
IGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21p
c2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgYW5vdGhlcl93aW5kb3cgPSBh
d2FpdCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAgY29uc3QgcmVzdWx0ID0gYXdh
aXQgY3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+
IGFub3RoZXJfd2luZG93LmRvY3VtZW50LndyaXRlbG4oJzxiPnNvbWUgdGV4dDwvYj4nKSk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZXhjZXB0aW9uLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGFub3RoZXJfd2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2InKS5vdXRlckhUTUws
ICc8Yj5zb21lIHRleHQ8L2I+Jyk7Cit9LCAnZG9jdW1lbnQud3JpdGVsbiBvZiBhbm90aGVyIGRv
Y3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2lu
ZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQg
Y3VzdG9tIGVsZW1lbnQnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1zZXRzLWF0dHJpYnV0ZXMtYW5kLWNoaWxkcmVuLWV4
cGVjdGVkLnR4dAppbmRleCBlMjMxN2FhNjNmN2RjYzU2MGUyMDM4ZjFkZmFlNWQ2OThhYzg5ZjQy
Li5iYzBjMzAwZTc2OGY1ZWZjNGI1YWE2MDgwMDk3ZGZiZjQxYjhlMGVjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9wYXJzZXIvcGFyc2VyLXNldHMtYXR0cmlidXRlcy1hbmQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3BhcnNlci9wYXJzZXItc2V0cy1hdHRyaWJ1dGVzLWFuZC1jaGlsZHJlbi1leHBl
Y3RlZC50eHQKQEAgLTMsNSArMyw1IEBAIFBBU1MgSFRNTCBwYXJzZXIgbXVzdCBzZXQgdGhlIGF0
dHJpYnV0ZXMKIFBBU1MgSFRNTCBwYXJzZXIgbXVzdCBhcHBlbmQgY2hpbGQgbm9kZXMgCiBQQVNT
IEhUTUwgcGFyc2VyIG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGVzIG9yIGFwcGVuZCBjaGlsZHJlbiBi
ZWZvcmUgY2FsbGluZyBjb25zdHJ1Y3RvciAKIEZBSUwgSFRNTCBwYXJzZXIgc2hvdWxkIGNhbGwg
Y29ubmVjdGVkQ2FsbGJhY2sgYmVmb3JlIGFwcGVuZGluZyBjaGlsZCBub2Rlcy4gYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgMCBidXQgZ290IDIKLUZBSUwgSFRNTCBwYXJzZXIgbXVzdCBlbnF1ZXVl
IGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb25zIGFzc2VydF9lcXVhbHM6IGF0dHJpYnV0ZUNoYW5n
ZWRDYWxsYmFjayBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhcHBlbmRpbmcgYSBjaGlsZCBleHBl
Y3RlZCAwIGJ1dCBnb3QgMgorUEFTUyBIVE1MIHBhcnNlciBtdXN0IGVucXVldWUgYXR0cmlidXRl
Q2hhbmdlZCByZWFjdGlvbnMgCiBoZWxsbyB3b3JsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346730</attachid>
            <date>2018-08-07 14:06:11 -0700</date>
            <delta_ts>2018-08-07 14:06:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188336-20180807140611.patch</filename>
            <type>text/plain</type>
            <size>33869</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDlkYTlmZDIzOGE4Mjlh
NzBmOTg5YTRhMWExZTQxZmI5NGQ5NGY0OC4uZmY0NWJhZjI3MWRhNzlhY2M3NWQ0NWU5ODc2OGZl
NGIyNWZjMzk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw5ICsxLDM5IEBACisyMDE4LTA4LTA2ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGRvY3VtZW50Lm9wZW4gYW5k
IGRvY3VtZW50LndyaXRlIG11c3QgdGhyb3cgd2hpbGUgdGhlIEhUTUwgcGFyc2VyIGlzIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzMxOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDI4NDMwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIE1ha2UgZG9jdW1lbnQub3BlbiwgZG9jdW1lbnQud3JpdGUsIGRvY3VtZW50Lndy
aXRlbG4sIGFuZCBkb2N1bWVudC5jbG9zZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBkdXJpbmcK
KyAgICAgICAgYSBzeW5jaHJvbm91cyBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3Rpb24gYXMgc3Bl
Y2lmaWVkOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9w
YXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbgorICAgICAgICBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRp
b24uaHRtbCN0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlcgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1p
bnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jdXN0
b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItcmVh
Y3Rpb25zLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6Om9wZW5Gb3JCaW5kaW5ncyk6IFRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gbV90aHJv
d09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50IGlzIG5vbi16ZXJvLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNsb3NlRm9yQmluZGluZ3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp3cml0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OndyaXRlbG4pOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogUmUtb3JkZXJlZCB0
aGUgcmVsYXRlZCBpbnN0YW5jZSB2YXJpYWJsZXMgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGlu
IHRoZSBzcGVjLCBhbmQgdXBkYXRlZCBzcGVjIFVSTHMuCisgICAgICAgICogZG9tL1Rocm93T25E
eW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyOjpUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5jcmVt
ZW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyOjp+VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3Jl
bWVudGVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2Vk
VHJlZUJ1aWxkZXIpOiBJbnN0YW50aWF0ZSBUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNv
dW50SW5jcmVtZW50ZXIuCisKIDIwMTgtMDgtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgSFRNTCBwYXJzZXIgc2hvdWxkIGV4ZWN1dGUgY3VzdG9tIGVsZW1l
bnQgcmVhY3Rpb25zIGZvciBzZXR0aW5nIGF0dHJpYnV0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgY3Jl
YXRpbmcgYSBjdXN0b20gZWxlbWVudAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg4MzM2CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KIAogICAgICAgICBQdXNo
IGFuZCBwb3AgYW4gZWxlbWVudCBxdWV1ZSBmcm9tIHRoZSBjdXN0b20gZWxlbWVudCByZWFjdGlv
bnMgc3RhY2sgd2hlbiBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudDoKICAgICAgICAgaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2NyZWF0ZS1h
bi1lbGVtZW50LWZvci10aGUtdG9rZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZWU4ZDdlZjdjMzM2ZTI1NTY0ZTlhMjE3Y2Rh
MDAyODQxOTk5ODQ5Li4xOTk0NTEwMzM5ZDI3MDk5NWQ1MTY3OTQyZjFmOTRhODNjNmZiMWRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMDg1MSw2ICsxMDg1MSw3IEBACiAJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbmRlcmVkUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQx
NzA2MjEyNTY2MkIzMDA2QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQxNzA2MzEyNTY2MkIzMDA2QjI4RkMgLyog
QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTlCNDM3NkVGMjExN0U4NzIwMDlEMDNBMCAvKiBUaHJvd09uRHluYW1pY01h
cmt1cEluc2VydGlvbkNvdW50SW5jcmVtZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyb3dPbkR5
bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCNTBCMURDMTdDRDRDMEYwMDg3RjYzQyAvKiBGb3JtTmFtZWRJdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1OYW1lZEl0ZW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1MzJFQTExQkE5Mjg1NzAwMzhBODI3IC8qIFNsb3RB
c3NpZ25tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsb3RB
c3NpZ25tZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1MzJFQTIxQkE5
Mjg1NzAwMzhBODI3IC8qIFNsb3RBc3NpZ25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNsb3RBc3NpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjU2Myw2ICsyNjU2NCw3IEBACiAJCQkJQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRl
eHRFdmVudElucHV0VHlwZS5oICovLAogCQkJCUU0RDk4OEI1MTdCRkVCMjEwMDg0RkI4OCAvKiBU
ZXh0Tm9kZVRyYXZlcnNhbC5jcHAgKi8sCiAJCQkJRTREOTg4QjMxN0JGRDFGNjAwODRGQjg4IC8q
IFRleHROb2RlVHJhdmVyc2FsLmggKi8sCisJCQkJOUI0Mzc2RUYyMTE3RTg3MjAwOUQwM0EwIC8q
IFRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oICovLAogCQkJ
CTBGNTRERDA1MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oICovLAogCQkJCTBGNTRERDA2MTg4
MUQ1RjUwMDNFRURCQiAvKiBUb3VjaEV2ZW50LmggKi8sCiAJCQkJMEY1NEREMDcxODgxRDVGNTAw
M0VFREJCIC8qIFRvdWNoTGlzdC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDBl
YmU2ZmY3Zjk4NGU3MjM3NzJmZTE0ZjNjNTE0NDA4NGZiZTQ2Yi4uNTIwMzI1N2FiNjQ3NjJmOTk1
ZWU1ODZjODU4MDI0N2Y0NzFiOGExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNjA5
LDcgKzI2MDksNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBEb2N1bWVudDo6
b3BlbkZvckJpbmRpbmdzKERPTVdpbmRvdyYgYWN0aXZlV2luZAogLy8gRklYTUU6IEFkZCBzdXBw
b3J0IGZvciB0aGUgJ3R5cGUnIGFuZCAncmVwbGFjZScgcGFyYW1ldGVycy4KIEV4Y2VwdGlvbk9y
PERvY3VtZW50Jj4gRG9jdW1lbnQ6Om9wZW5Gb3JCaW5kaW5ncyhEb2N1bWVudCogcmVzcG9uc2li
bGVEb2N1bWVudCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBpZiAoIWlz
SFRNTERvY3VtZW50KCkpCisgICAgaWYgKCFpc0hUTUxEb2N1bWVudCgpIHx8IG1fdGhyb3dPbkR5
bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWxzbyB0aHJv
dyBpZiAiZG9jdW1lbnQncyB0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24gY291bnRl
ciBpcyBncmVhdGVyIHRoYW4gMCIuCkBAIC0yNzUzLDcgKzI3NTMsNyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBEb2N1bWVudDo6Y2xvc2VGb3JCaW5kaW5ncygpCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBmb2xsb3cgdGhlIHNwZWNpZmljYXRpb24gbW9yZSBjbG9zZWx5OgogICAgIC8vICAgICAgICBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tZG9j
dW1lbnQtY2xvc2UKIAotICAgIGlmICghaXNIVE1MRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzSFRN
TERvY3VtZW50KCkgfHwgbV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50KQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBhbHNvIHRocm93IGlmICJkb2N1bWVudCdzIHRocm93LW9uLWR5bmFt
aWMtbWFya3VwLWluc2VydGlvbiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAwIi4KQEAgLTI5ODQs
NyArMjk4NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlKERvY3VtZW50KiByZXNwb25zaWJsZURv
Y3VtZW50LCBTZWdtZW50ZWRTdHJpbmcmJiB0ZXh0KQogCiBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1
bWVudDo6d3JpdGUoRG9jdW1lbnQqIHJlc3BvbnNpYmxlRG9jdW1lbnQsIFZlY3RvcjxTdHJpbmc+
JiYgc3RyaW5ncykKIHsKLSAgICBpZiAoIWlzSFRNTERvY3VtZW50KCkpCisgICAgaWYgKCFpc0hU
TUxEb2N1bWVudCgpIHx8IG1fdGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudCkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYWxzbyB0aHJvdyBpZiAiZG9jdW1lbnQncyB0aHJvdy1vbi1keW5h
bWljLW1hcmt1cC1pbnNlcnRpb24gY291bnRlciBpcyBncmVhdGVyIHRoYW4gMCIuCkBAIC0zMDAx
LDcgKzMwMDEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1bWVudDo6d3JpdGUoRG9jdW1lbnQq
IHJlc3BvbnNpYmxlRG9jdW1lbnQsIFZlY3RvcjxTdHJpbmc+JgogCiBFeGNlcHRpb25Pcjx2b2lk
PiBEb2N1bWVudDo6d3JpdGVsbihEb2N1bWVudCogcmVzcG9uc2libGVEb2N1bWVudCwgVmVjdG9y
PFN0cmluZz4mJiBzdHJpbmdzKQogewotICAgIGlmICghaXNIVE1MRG9jdW1lbnQoKSkKKyAgICBp
ZiAoIWlzSFRNTERvY3VtZW50KCkgfHwgbV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNv
dW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhbHNvIHRocm93IGlmICJkb2N1bWVudCdzIHRocm93
LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAwIi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODNiMDg4OWMwOTk4NDk4NGZhMjY4MzU0YThmNDcxNDVi
ZTdjMjgyYi4uZjBkZTAxYTQyZDJhNThhNzM3N2RjZDVlYjk4ZmUyMjJlODBkYWNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE0ODAsOCArMTQ4MCw5IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIERvY3VtZW50UGFyc2VyWWllbGRUb2tlbjsKICAgICBmcmllbmQg
Y2xhc3MgTm9kZTsKLSAgICBmcmllbmQgY2xhc3MgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50
SW5jcmVtZW50ZXI7CisgICAgZnJpZW5kIGNsYXNzIFRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0
aW9uQ291bnRJbmNyZW1lbnRlcjsKICAgICBmcmllbmQgY2xhc3MgSWdub3JlT3BlbnNEdXJpbmdV
bmxvYWRDb3VudEluY3JlbWVudGVyOworICAgIGZyaWVuZCBjbGFzcyBJZ25vcmVEZXN0cnVjdGl2
ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsKIAogICAgIGJvb2wgc2hvdWxkSW5oZXJpdENvbnRlbnRT
ZWN1cml0eVBvbGljeUZyb21Pd25lcigpIGNvbnN0OwogCkBAIC0xODU0LDEyICsxODU1LDE1IEBA
IHByaXZhdGU6CiAgICAgaW50IG1fbG9hZEV2ZW50RGVsYXlDb3VudCB7IDAgfTsKICAgICB1bnNp
Z25lZCBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nIHsgMCB9OwogCi0gICAgLy8gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2lnbm9y
ZS1kZXN0cnVjdGl2ZS13cml0ZXMtY291bnRlcgotICAgIHVuc2lnbmVkIG1faWdub3JlRGVzdHJ1
Y3RpdmVXcml0ZUNvdW50IHsgMCB9OworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL2R5bmFtaWMtbWFya3VwLWluc2VydGlvbi5odG1sI3Rocm93LW9uLWR5bmFt
aWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyCisgICAgdW5zaWduZWQgbV90aHJvd09uRHluYW1p
Y01hcmt1cEluc2VydGlvbkNvdW50IHsgMCB9OwogCi0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2lnbm9yZS1vcGVucy1kdXJpbmct
dW5sb2FkLWNvdW50ZXIKKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCNpZ25vcmUtb3BlbnMtZHVyaW5nLXVu
bG9hZC1jb3VudGVyCiAgICAgdW5zaWduZWQgbV9pZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
IHsgMCB9OwogCisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
ZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjaWdub3JlLWRlc3RydWN0aXZlLXdyaXRlcy1j
b3VudGVyCisgICAgdW5zaWduZWQgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQgeyAwIH07
CisKICAgICB1bnNpZ25lZCBtX2FjdGl2ZVBhcnNlckNvdW50IHsgMCB9OwogICAgIHVuc2lnbmVk
IG1fc3R5bGVSZWNhbGNDb3VudCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1l
bnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgzZTcxZmEzNzFmMWE2ZjMwZmI0YTVmYWY4NWY4Yjc3NGI4YTFk
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGhyb3dPbkR5bmFtaWNN
YXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5j
cmVtZW50ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocm93T25EeW5hbWljTWFya3Vw
SW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVGhyb3dP
bkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyKERvY3VtZW50JiBkb2N1bWVu
dCkKKyAgICAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgKytkb2N1
bWVudC5tX3Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnQ7CisgICAgfQorCisgICAg
flRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcigpCisgICAgewor
ICAgICAgICBBU1NFUlQobV9kb2N1bWVudC0+bV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlv
bkNvdW50KTsKKyAgICAgICAgLS1tX2RvY3VtZW50LT5tX3Rocm93T25EeW5hbWljTWFya3VwSW5z
ZXJ0aW9uQ291bnQ7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlZjxEb2N1bWVudD4gbV9kb2N1
bWVudDsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCAzZjNlNzk5M2Vk
OWM3MzUzODFjMzE0ZTg5N2E3Yjg1OWUxZTYzNGI5Li5hZDJhYjZjZGI5NzRiMjcwZDUzZTY2NDY2
ZTk0NTQxOWM3MDA3MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJMaW5rTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjcmlw
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50
SW5jcmVtZW50ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMTAsNiArMjExLDgg
QEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRl
cigpCiAKICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLWFu
LWVsZW1lbnQtZm9yLXRoZS10b2tlbgogICAgICAgICB7CisgICAgICAgICAgICAvLyBQcmV2ZW50
IGRvY3VtZW50Lm9wZW4vd3JpdGUgZHVyaW5nIHJlYWN0aW9ucyBieSBhbGxvY2F0aW5nIHRoZSBp
bmNyZW1lbnRlciBiZWZvcmUgdGhlIHJlYWN0aW9ucyBzdGFjay4KKyAgICAgICAgICAgIFRocm93
T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlciBpbmNyZW1lbnRlcigqZG9j
dW1lbnQoKSk7CiAgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25TdGFjayByZWFjdGlv
blN0YWNrKGRvY3VtZW50KCktPmV4ZWNTdGF0ZSgpKTsKICAgICAgICAgICAgIGF1dG8mIGVsZW1l
bnRJbnRlcmZhY2UgPSBjb25zdHJ1Y3Rpb25EYXRhLT5lbGVtZW50SW50ZXJmYWNlLmdldCgpOwog
ICAgICAgICAgICAgYXV0byBuZXdFbGVtZW50ID0gZWxlbWVudEludGVyZmFjZS5jb25zdHJ1Y3RF
bGVtZW50V2l0aEZhbGxiYWNrKCpkb2N1bWVudCgpLCBjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ODFjYTQ1ZTM0MTI3YWU2Y2UxZWI4Yjc5OTk2YTY0YjI1ZjRhMGEwLi5hZjNiNDI2
MzY0N2I1MmM0YzdlODUzZjJhNWRmOGI5NzJkMTY5ZGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTgtMDgtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
ZG9jdW1lbnQub3BlbiBhbmQgZG9jdW1lbnQud3JpdGUgbXVzdCB0aHJvdyB3aGlsZSB0aGUgSFRN
TCBwYXJzZXIgaXMgc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MzE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Mjg0MzAxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkZWQgVzNDIHN0eWxlIHRlc3RoYXJuZXNzLmpz
IHRlc3RzLiBUaGUgV1BUIHRlc3QgYWRkZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvcHVsbC8xMjAzNworICAgICAgICBkb2Vzbid0IHRlc3QgbmVhcmx5IGFz
IG1hbnkgZWRnZSBjYXNlcy4KKworICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLWRlc3RpbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVy
LWNvbnN0cnVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVj
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1k
eW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1h
cmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTgtMDgt
MDUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtN
ZWRpYUNhcGFiaWxpdGllc10gUGxhdGZvcm0gaW50ZWdyYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDhmZDhiNmQyMTMyNWI0ZTM2NTEyMDI1YzY0MjcyZTUyNmI5MzM5ZTYu
LjgxYjhiYTg2OTI4MWRlMDQ0ZWYzYjJkMmYwNGJlYjE2ZGMzOTEzN2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMyw3ICszLDcgQEAKICAgICAgICAgSFRNTCBwYXJzZXIgc2hv
dWxkIGV4ZWN1dGUgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBzZXR0aW5nIGF0dHJpYnV0
ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgY3JlYXRpbmcgYSBjdXN0b20gZWxlbWVudAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4MzM2CiAKLSAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6ly
aWMgV2FuZy4KIAogICAgICAgICBSZWJhc2VsaW5lIHRoZSB0ZXN0IG5vdyB0aGF0IHRoZSByZWxl
dmFudCB0ZXN0IGNhc2UgaXMgcGFzc2luZy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL25hdmlnYXRpb24tZGVzdGluYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLWRl
c3RpbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRlOGQyYzZlYjEzZWEwZDhiNjMzNzgwMTYwODEx
NTU5ZTI4Mzk1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLWRlc3RpbmF0aW9uLmh0bWwKQEAgLTAsMCArMSw5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5OYXZpZ2F0ZWQhPC9wPgor
PHNjcmlwdD4KK3BhcmVudC5wb3N0TWVzc2FnZSgnZGlkTmF2aWdhdGUnLCAnKicpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3Rv
bS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1jb25z
dHJ1Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhy
b3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItY29uc3RydWN0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOTc2ZmU3NzA0NzllZGViYzg2NzQ0OWJmZTE4OTYwYTdjMzE4Mzlh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhy
b3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItY29uc3RydWN0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACisKK1BBU1MgZG9jdW1lbnQub3BlbigpIG11c3QgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1
c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC5vcGVuKCJ0ZXh0L2h0bWwiKSBtdXN0IHRocm93
IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBj
dXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQub3BlbihVUkwpIG11c3QgTk9UIHRocm93IGFu
IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0
b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQuY2xvc2UoKSBtdXN0IHRocm93IGFuIEludmFsaWRT
dGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVu
dCAKK1BBU1MgZG9jdW1lbnQud3JpdGUgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRv
Y3VtZW50LndyaXRlbG4gbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50Lm9w
ZW4oKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVy
cm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCAKK1BB
U1MgZG9jdW1lbnQub3BlbigidGV4dC9odG1sIikgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5v
dCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LmNsb3NlKCkgb2YgYW5vdGhlciBk
b2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9u
b3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRl
IG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Ig
d2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IAorUEFTUyBk
b2N1bWVudC53cml0ZWxuIG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52
YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBl
bGVtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90
aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3Vw
LWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNGM3YjBkYmZl
NmQxM2U0ZjAzNDQ5ODYyYzE3NDE0Nzc3NjAzM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRp
b24tY291bnRlci1jb25zdHJ1Y3QuaHRtbApAQCAtMCwwICsxLDExNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogY3JlYXRlIGFuIGVs
ZW1lbnQgZm9yIGEgdG9rZW4gbXVzdCBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBkb2N1bWVudCdz
IHRocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3VudGVyPC90aXRsZT4KKzxtZXRh
IG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdl
YmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJJbnZva2luZyBkb2N1bWVu
dC5vcGVuLCBkb2N1bWVudC53cml0ZSwgZG9jdW1lbnQud3JpdGVsbiwgYW5kIGRvY3VtZW50Lndy
aXRlIG11c3QgdGhyb3cgYW4gZXhjZXB0aW9uIHdoZW4gdGhlIEhUTUwgcGFyc2VyIGlzIGNyZWF0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgZm9yIGEgdG9rZW4iPgorPG1ldGEgbmFtZT0iaGVscCIgY29u
dGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1s
I2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4iPgorPG1ldGEgbmFtZT0iaGVscCIgY29u
dGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJr
dXAtaW5zZXJ0aW9uLmh0bWwjdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50
ZXIiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKworYXN5bmMgZnVuY3Rpb24gY29uc3RydWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0
ZXN0LCBjYWxsX2Z1bmN0aW9uKQoreworICAgIGNvbnN0IHdpbmRvdyA9IGF3YWl0IGNyZWF0ZV93
aW5kb3dfaW5fdGVzdCh0ZXN0KTsKKyAgICBjb25zdCBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVu
dDsKKworICAgIGRvY3VtZW50Lm9wZW4oKTsKKworICAgIGxldCBleGVjdXRlZCA9IGZhbHNlOwor
ICAgIGxldCBleGNlcHRpb24gPSBudWxsOworICAgIGNsYXNzIEN1c3RvbUVsZW1lbnQgZXh0ZW5k
cyB3aW5kb3cuSFRNTEVsZW1lbnQgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAg
ICAgIHN1cGVyKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNhbGxfZnVu
Y3Rpb24oZG9jdW1lbnQsIHdpbmRvdyk7CisgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewor
ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGVycm9yOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZXhlY3V0ZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHdpbmRvdy5jdXN0
b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtZWxlbWVudCcsIEN1c3RvbUVsZW1lbnQpOworCisgICAg
ZG9jdW1lbnQud3JpdGUoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxib2R5Pjxzb21lLWVsZW1lbnQ+
PC9zb21lLWVsZW1lbnQ+PC9ib2R5PjwvaHRtbD4nKTsKKyAgICBkb2N1bWVudC5jbG9zZSgpOwor
CisgICAgYXNzZXJ0X3RydWUoZXhlY3V0ZWQsICdNdXN0IHN5bmNocm9ub3VzbHkgaW5zdGFudGlh
dGUgYSBjdXN0b20gZWxlbWVudCcpOworICAgIHJldHVybiB7d2luZG93LCBkb2N1bWVudCwgZXhj
ZXB0aW9ufTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25z
dCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRoaXMs
IChkb2N1bWVudCkgPT4gZG9jdW1lbnQub3BlbigpKTsKKyAgICBhc3NlcnRfdGhyb3dzKHtuYW1l
OiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhjZXB0aW9uOyB9
LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3VtZW50Lm9wZW4o
KSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25z
dHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rp
b24gKCkgeworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVu
dF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBkb2N1bWVudC5vcGVuKCd0ZXh0L2h0bWwn
KSk7CisgICAgYXNzZXJ0X3Rocm93cyh7bmFtZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+
IHsgdGhyb3cgcmVzdWx0LmV4Y2VwdGlvbjsgfSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3InKTsKK30sICdkb2N1bWVudC5vcGVuKCJ0ZXh0L2h0bWwiKSBtdXN0IHRocm93IGFuIElu
dmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20g
ZWxlbWVudCcpOworCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9k
eW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCNkb20tZG9jdW1lbnQtb3Blbi13aW5kb3cKK3By
b21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgbGV0IGxvYWRfcHJvbWlzZSA9IG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50KSA9PiByZXNv
bHZlKGV2ZW50LmRhdGEpKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3Vz
dG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCwgd2luZG93KSA9PiBkb2N1bWVu
dC5vcGVuKCdyZXNvdXJjZXMvbmF2aWdhdGlvbi1kZXN0aW5hdGlvbi5odG1sJywgJ19zZWxmJywg
JycpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgbG9hZF9wcm9taXNlLCAnZGlkTmF2aWdhdGUnKTsKK30sICdkb2N1
bWVudC5vcGVuKFVSTCkgbXVzdCBOT1QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBz
eW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29uc3Ry
dWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50
LmNsb3NlKCkpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9
LCAoKSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yJyk7Cit9LCAnZG9jdW1lbnQuY2xvc2UoKSBtdXN0IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxl
bWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRv
Y3VtZW50KSA9PiBkb2N1bWVudC53cml0ZSgnPGI+c29tZSB0ZXh0PC9iPicpKTsKKyAgICBhc3Nl
cnRfdGhyb3dzKHtuYW1lOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1
bHQuZXhjZXB0aW9uOyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworICAg
IGFzc2VydF9lcXVhbHMocmVzdWx0LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2InKSwgbnVsbCwg
J011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworICAgIGFzc2VydF9mYWxzZShyZXN1bHQu
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTC5pbmNsdWRlcygnc29tZSB0ZXh0Jyks
ICdNdXN0IG5vdCBpbnNlcnQgbmV3IGNvbnRlbnQnKTsKK30sICdkb2N1bWVudC53cml0ZSBtdXN0
IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3Rp
bmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkg
eworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9w
YXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBkb2N1bWVudC53cml0ZWxuKCc8Yj5zb21lIHRleHQ8
L2I+JykpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAo
KSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRT
dGF0ZUVycm9yJyk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignYicpLCBudWxsLCAnTXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7CisgICAgYXNz
ZXJ0X2ZhbHNlKHJlc3VsdC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1
ZGVzKCdzb21lIHRleHQnKSwgJ011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworfSwgJ2Rv
Y3VtZW50LndyaXRlbG4gbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25zdCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNy
ZWF0ZV93aW5kb3dfaW5fdGVzdCh0aGlzKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25z
dHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhl
cl93aW5kb3cuZG9jdW1lbnQub3BlbigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNl
cHRpb24sIG51bGwpOworfSwgJ2RvY3VtZW50Lm9wZW4oKSBvZiBhbm90aGVyIGRvY3VtZW50IG11
c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25z
dHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rp
b24gKCkgeworICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19p
bl90ZXN0KHRoaXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21f
ZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1
bWVudC5vcGVuKCd0ZXh0L2h0bWwnKSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZXhjZXB0
aW9uLCBudWxsKTsKK30sICdkb2N1bWVudC5vcGVuKCJ0ZXh0L2h0bWwiKSBvZiBhbm90aGVyIGRv
Y3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25v
dXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRl
X3dpbmRvd19pbl90ZXN0KHRoaXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVj
dF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dp
bmRvdy5kb2N1bWVudC5jbG9zZSgpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRp
b24sIG51bGwpOworfSwgJ2RvY3VtZW50LmNsb3NlKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0
IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3Ry
dWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9u
ICgpIHsKKyAgICBjb25zdCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5f
dGVzdCh0aGlzKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2Vs
ZW1lbnRfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhlcl93aW5kb3cuZG9jdW1l
bnQud3JpdGUoJzxiPnNvbWUgdGV4dDwvYj4nKSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQu
ZXhjZXB0aW9uLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFub3RoZXJfd2luZG93LmRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2InKS5vdXRlckhUTUwsICc8Yj5zb21lIHRleHQ8L2I+Jyk7Cit9
LCAnZG9jdW1lbnQud3JpdGUgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9t
IGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25z
dCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5fdGVzdCh0aGlzKTsKKyAg
ICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2Vy
KHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhlcl93aW5kb3cuZG9jdW1lbnQud3JpdGVsbignPGI+
c29tZSB0ZXh0PC9iPicpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51
bGwpOworICAgIGFzc2VydF9lcXVhbHMoYW5vdGhlcl93aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignYicpLm91dGVySFRNTCwgJzxiPnNvbWUgdGV4dDwvYj4nKTsKK30sICdkb2N1bWVudC53
cml0ZWxuIG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNv
dW50ZXItcmVhY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9u
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5ZWQxMTk0NWJkNjkwMTNjNzRhYTViMDliZmUy
ZmRiMjYzNGNmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitQQVNTIGRvY3VtZW50Lm9wZW4oKSBt
dXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxl
bWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1l
bnQgCitQQVNTIGRvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG11c3QgdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3Ig
YSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQu
b3BlbihVUkwpIG11c3QgTk9UIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vz
c2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0
ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LmNsb3NlKCkgbXVzdCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25z
IGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1
bWVudC53cml0ZSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2lu
ZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQg
Y3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlbG4gbXVzdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZv
ciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVu
dC5vcGVuKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5
bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC5vcGVu
KCJ0ZXh0L2h0bWwiKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9y
IGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50
LmNsb3NlKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5
bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC53cml0
ZSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9y
IHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25v
dXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlbG4gb2Yg
YW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVu
IHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNv
bnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRl
ci1yZWFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93
LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9ucy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM2Y2Q3YzYwZTcwNTM0YjVhYTQ5OTdiM2Y2ZWNlNTU3YTRiY2M4MTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5h
bWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMuaHRtbApAQCAtMCwwICsxLDEx
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVt
ZW50czogY3JlYXRlIGFuIGVsZW1lbnQgZm9yIGEgdG9rZW4gbXVzdCBpbmNyZW1lbnQgYW5kIGRl
Y3JlbWVudCBkb2N1bWVudCdzIHRocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3Vu
dGVyPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJl
Zj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJJbnZva2luZyBkb2N1bWVudC5vcGVuLCBkb2N1bWVudC53cml0ZSwgZG9jdW1lbnQud3JpdGVs
biwgYW5kIGRvY3VtZW50LndyaXRlIG11c3QgdGhyb3cgYW4gZXhjZXB0aW9uIHdoZW4gdGhlIEhU
TUwgcGFyc2VyIGlzIGNyZWF0aW5nIGEgY3VzdG9tIGVsZW1lbnQgZm9yIGEgdG9rZW4iPgorPG1l
dGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvcGFyc2luZy5odG1sI2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4iPgorPG1l
dGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjdGhyb3ctb24tZHluYW1pYy1tYXJr
dXAtaW5zZXJ0aW9uLWNvdW50ZXIiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVs
ZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPHNjcmlwdD4KKworYXN5bmMgZnVuY3Rpb24gY3VzdG9tX2VsZW1lbnRfcmVh
Y3Rpb25zX2luX3BhcnNlcih0ZXN0LCBjYWxsX2Z1bmN0aW9uKQoreworICAgIGNvbnN0IHdpbmRv
dyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5fdGVzdCh0ZXN0KTsKKyAgICBjb25zdCBkb2N1bWVu
dCA9IHdpbmRvdy5kb2N1bWVudDsKKworICAgIGRvY3VtZW50Lm9wZW4oKTsKKworICAgIGxldCBl
eGVjdXRlZCA9IGZhbHNlOworICAgIGxldCBleGNlcHRpb24gPSBudWxsOworICAgIGNsYXNzIEN1
c3RvbUVsZW1lbnQgZXh0ZW5kcyB3aW5kb3cuSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1
dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSB7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgIGNhbGxfZnVuY3Rpb24oZG9jdW1lbnQsIHdpbmRvdyk7
CisgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlv
biA9IGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhlY3V0ZWQgPSB0cnVlOwor
ICAgICAgICB9CisgICAgfQorICAgIEN1c3RvbUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVzID0g
Wyd0aXRsZSddOworICAgIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtZWxlbWVu
dCcsIEN1c3RvbUVsZW1lbnQpOworCisgICAgZG9jdW1lbnQud3JpdGUoJzwhRE9DVFlQRSBodG1s
PjxodG1sPjxib2R5Pjxzb21lLWVsZW1lbnQgdGl0bGU9InNvbWUgdGl0bGUiPjwvc29tZS1lbGVt
ZW50PjwvYm9keT48L2h0bWw+Jyk7CisgICAgZG9jdW1lbnQuY2xvc2UoKTsKKworICAgIGFzc2Vy
dF90cnVlKGV4ZWN1dGVkLCAnTXVzdCBpbW1lZGlhdGVseSBwcm9jZXNzIGN1c3RvbSBlbGVtZW50
IHJlYWN0aW9ucyBmb3Igc2V0dGluZyBhdHRyaWJ1dGVzJyk7CisgICAgcmV0dXJuIHtmcmFtZUVs
ZW1lbnQsIHdpbmRvdywgZG9jdW1lbnQsIGV4Y2VwdGlvbn07Cit9CisKK3Byb21pc2VfdGVzdChh
c3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1l
bnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50Lm9wZW4o
KSk7CisgICAgYXNzZXJ0X3Rocm93cyh7bmFtZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+
IHsgdGhyb3cgcmVzdWx0LmV4Y2VwdGlvbjsgfSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3InKTsKK30sICdkb2N1bWVudC5vcGVuKCkgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNo
cm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3lu
YyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRf
cmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50Lm9wZW4oJ3Rl
eHQvaHRtbCcpKTsKKyAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnSW52YWxpZFN0YXRlRXJyb3In
fSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhjZXB0aW9uOyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG11c3QgdGhy
b3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJl
YWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCcpOwor
CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1
cC1pbnNlcnRpb24uaHRtbCNkb20tZG9jdW1lbnQtb3Blbi13aW5kb3cKK3Byb21pc2VfdGVzdChh
c3luYyBmdW5jdGlvbiAoKSB7CisgICAgbGV0IGxvYWRfcHJvbWlzZSA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50KSA9PiByZXNvbHZlKGV2ZW50LmRh
dGEpKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjdXN0b21fZWxlbWVudF9yZWFjdGlvbnNf
aW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCwgd2luZG93KSA9PiBkb2N1bWVudC5vcGVuKCdyZXNv
dXJjZXMvbmF2aWdhdGlvbi1kZXN0aW5hdGlvbi5odG1sJywgJ19zZWxmJywgJycpKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgbG9hZF9wcm9taXNlLCAnZGlkTmF2aWdhdGUnKTsKK30sICdkb2N1bWVudC5vcGVuKFVS
TCkgbXVzdCBOT1QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1
c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0
b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIodGhp
cywgKGRvY3VtZW50KSA9PiBkb2N1bWVudC5jbG9zZSgpKTsKKyAgICBhc3NlcnRfdGhyb3dzKHtu
YW1lOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhjZXB0aW9u
OyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3VtZW50LmNs
b3NlKCkgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3Vz
dG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3Rv
bSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlz
LCAoZG9jdW1lbnQpID0+IGRvY3VtZW50LndyaXRlKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAg
IGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAoKSA9PiB7IHRocm93
IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yJyk7
CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYicpLCBu
dWxsLCAnTXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKHJl
c3VsdC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1ZGVzKCdzb21lIHRl
eHQnKSwgJ011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworfSwgJ2RvY3VtZW50LndyaXRl
IG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBl
bGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxl
bWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIodGhpcywgKGRv
Y3VtZW50KSA9PiBkb2N1bWVudC53cml0ZWxuKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAgIGFz
c2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAoKSA9PiB7IHRocm93IHJl
c3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYicpLCBudWxs
LCAnTXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3Vs
dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1ZGVzKCdzb21lIHRleHQn
KSwgJ011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworfSwgJ2RvY3VtZW50LndyaXRlbG4g
bXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVs
ZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVt
ZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgYW5v
dGhlcl93aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlz
LCAoZG9jdW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRvY3VtZW50Lm9wZW4oKSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHQuZXhjZXB0aW9uLCBudWxsKTsKK30sICdkb2N1bWVudC5vcGVuKCkg
b2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3Vz
IGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5j
dGlvbiAoKSB7CisgICAgY29uc3QgYW5vdGhlcl93aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93
X2luX3Rlc3QodGhpcyk7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRf
cmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRv
Y3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNl
cHRpb24sIG51bGwpOworfSwgJ2RvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG9mIGFub3RoZXIg
ZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNz
aW5nIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3Rl
ZCBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgewor
ICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRo
aXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19p
bl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC5jbG9z
ZSgpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworfSwgJ2Rv
Y3VtZW50LmNsb3NlKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZv
ciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgYW5vdGhlcl93aW5kb3cgPSBhd2Fp
dCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
Y3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGFu
b3RoZXJfd2luZG93LmRvY3VtZW50LndyaXRlKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAgIGFz
c2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhh
bm90aGVyX3dpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiJykub3V0ZXJIVE1MLCAnPGI+
c29tZSB0ZXh0PC9iPicpOworfSwgJ2RvY3VtZW50LndyaXRlIG9mIGFub3RoZXIgZG9jdW1lbnQg
bXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3Rv
bSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20g
ZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0
IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRoaXMpOworICAg
IGNvbnN0IHJlc3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIo
dGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC53cml0ZWxuKCc8Yj5z
b21lIHRleHQ8L2I+JykpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVs
bCk7CisgICAgYXNzZXJ0X2VxdWFscyhhbm90aGVyX3dpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCdiJykub3V0ZXJIVE1MLCAnPGI+c29tZSB0ZXh0PC9iPicpOworfSwgJ2RvY3VtZW50Lndy
aXRlbG4gb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNo
cm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346731</attachid>
            <date>2018-08-07 14:06:51 -0700</date>
            <delta_ts>2018-08-07 14:07:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188336-20180807140650.patch</filename>
            <type>text/plain</type>
            <size>33869</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDlkYTlmZDIzOGE4Mjlh
NzBmOTg5YTRhMWExZTQxZmI5NGQ5NGY0OC4uZmY0NWJhZjI3MWRhNzlhY2M3NWQ0NWU5ODc2OGZl
NGIyNWZjMzk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw5ICsxLDM5IEBACisyMDE4LTA4LTA2ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGRvY3VtZW50Lm9wZW4gYW5k
IGRvY3VtZW50LndyaXRlIG11c3QgdGhyb3cgd2hpbGUgdGhlIEhUTUwgcGFyc2VyIGlzIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzMxOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDI4NDMwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgor
CisgICAgICAgIE1ha2UgZG9jdW1lbnQub3BlbiwgZG9jdW1lbnQud3JpdGUsIGRvY3VtZW50Lndy
aXRlbG4sIGFuZCBkb2N1bWVudC5jbG9zZSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBkdXJpbmcK
KyAgICAgICAgYSBzeW5jaHJvbm91cyBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3Rpb24gYXMgc3Bl
Y2lmaWVkOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9w
YXJzaW5nLmh0bWwjY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbgorICAgICAgICBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRp
b24uaHRtbCN0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlcgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1p
bnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jdXN0
b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItcmVh
Y3Rpb25zLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6Om9wZW5Gb3JCaW5kaW5ncyk6IFRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gbV90aHJv
d09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50IGlzIG5vbi16ZXJvLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNsb3NlRm9yQmluZGluZ3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp3cml0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OndyaXRlbG4pOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogUmUtb3JkZXJlZCB0
aGUgcmVsYXRlZCBpbnN0YW5jZSB2YXJpYWJsZXMgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGlu
IHRoZSBzcGVjLCBhbmQgdXBkYXRlZCBzcGVjIFVSTHMuCisgICAgICAgICogZG9tL1Rocm93T25E
eW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyOjpUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5jcmVt
ZW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25D
b3VudEluY3JlbWVudGVyOjp+VGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3Jl
bWVudGVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2Vk
VHJlZUJ1aWxkZXIpOiBJbnN0YW50aWF0ZSBUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNv
dW50SW5jcmVtZW50ZXIuCisKIDIwMTgtMDgtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgSFRNTCBwYXJzZXIgc2hvdWxkIGV4ZWN1dGUgY3VzdG9tIGVsZW1l
bnQgcmVhY3Rpb25zIGZvciBzZXR0aW5nIGF0dHJpYnV0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgY3Jl
YXRpbmcgYSBjdXN0b20gZWxlbWVudAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg4MzM2CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KIAogICAgICAgICBQdXNo
IGFuZCBwb3AgYW4gZWxlbWVudCBxdWV1ZSBmcm9tIHRoZSBjdXN0b20gZWxlbWVudCByZWFjdGlv
bnMgc3RhY2sgd2hlbiBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudDoKICAgICAgICAgaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2NyZWF0ZS1h
bi1lbGVtZW50LWZvci10aGUtdG9rZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZWU4ZDdlZjdjMzM2ZTI1NTY0ZTlhMjE3Y2Rh
MDAyODQxOTk5ODQ5Li4xOTk0NTEwMzM5ZDI3MDk5NWQ1MTY3OTQyZjFmOTRhODNjNmZiMWRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMDg1MSw2ICsxMDg1MSw3IEBACiAJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbmRlcmVkUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQx
NzA2MjEyNTY2MkIzMDA2QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQxNzA2MzEyNTY2MkIzMDA2QjI4RkMgLyog
QXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTlCNDM3NkVGMjExN0U4NzIwMDlEMDNBMCAvKiBUaHJvd09uRHluYW1pY01h
cmt1cEluc2VydGlvbkNvdW50SW5jcmVtZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyb3dPbkR5
bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCNTBCMURDMTdDRDRDMEYwMDg3RjYzQyAvKiBGb3JtTmFtZWRJdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1OYW1lZEl0ZW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1MzJFQTExQkE5Mjg1NzAwMzhBODI3IC8qIFNsb3RB
c3NpZ25tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNsb3RB
c3NpZ25tZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1MzJFQTIxQkE5
Mjg1NzAwMzhBODI3IC8qIFNsb3RBc3NpZ25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNsb3RBc3NpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjU2Myw2ICsyNjU2NCw3IEBACiAJCQkJQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRl
eHRFdmVudElucHV0VHlwZS5oICovLAogCQkJCUU0RDk4OEI1MTdCRkVCMjEwMDg0RkI4OCAvKiBU
ZXh0Tm9kZVRyYXZlcnNhbC5jcHAgKi8sCiAJCQkJRTREOTg4QjMxN0JGRDFGNjAwODRGQjg4IC8q
IFRleHROb2RlVHJhdmVyc2FsLmggKi8sCisJCQkJOUI0Mzc2RUYyMTE3RTg3MjAwOUQwM0EwIC8q
IFRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oICovLAogCQkJ
CTBGNTRERDA1MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaC5oICovLAogCQkJCTBGNTRERDA2MTg4
MUQ1RjUwMDNFRURCQiAvKiBUb3VjaEV2ZW50LmggKi8sCiAJCQkJMEY1NEREMDcxODgxRDVGNTAw
M0VFREJCIC8qIFRvdWNoTGlzdC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDBl
YmU2ZmY3Zjk4NGU3MjM3NzJmZTE0ZjNjNTE0NDA4NGZiZTQ2Yi4uNTIwMzI1N2FiNjQ3NjJmOTk1
ZWU1ODZjODU4MDI0N2Y0NzFiOGExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNjA5
LDcgKzI2MDksNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBEb2N1bWVudDo6
b3BlbkZvckJpbmRpbmdzKERPTVdpbmRvdyYgYWN0aXZlV2luZAogLy8gRklYTUU6IEFkZCBzdXBw
b3J0IGZvciB0aGUgJ3R5cGUnIGFuZCAncmVwbGFjZScgcGFyYW1ldGVycy4KIEV4Y2VwdGlvbk9y
PERvY3VtZW50Jj4gRG9jdW1lbnQ6Om9wZW5Gb3JCaW5kaW5ncyhEb2N1bWVudCogcmVzcG9uc2li
bGVEb2N1bWVudCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBpZiAoIWlz
SFRNTERvY3VtZW50KCkpCisgICAgaWYgKCFpc0hUTUxEb2N1bWVudCgpIHx8IG1fdGhyb3dPbkR5
bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWxzbyB0aHJv
dyBpZiAiZG9jdW1lbnQncyB0aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24gY291bnRl
ciBpcyBncmVhdGVyIHRoYW4gMCIuCkBAIC0yNzUzLDcgKzI3NTMsNyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBEb2N1bWVudDo6Y2xvc2VGb3JCaW5kaW5ncygpCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBmb2xsb3cgdGhlIHNwZWNpZmljYXRpb24gbW9yZSBjbG9zZWx5OgogICAgIC8vICAgICAgICBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tZG9j
dW1lbnQtY2xvc2UKIAotICAgIGlmICghaXNIVE1MRG9jdW1lbnQoKSkKKyAgICBpZiAoIWlzSFRN
TERvY3VtZW50KCkgfHwgbV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50KQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBhbHNvIHRocm93IGlmICJkb2N1bWVudCdzIHRocm93LW9uLWR5bmFt
aWMtbWFya3VwLWluc2VydGlvbiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAwIi4KQEAgLTI5ODQs
NyArMjk4NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlKERvY3VtZW50KiByZXNwb25zaWJsZURv
Y3VtZW50LCBTZWdtZW50ZWRTdHJpbmcmJiB0ZXh0KQogCiBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1
bWVudDo6d3JpdGUoRG9jdW1lbnQqIHJlc3BvbnNpYmxlRG9jdW1lbnQsIFZlY3RvcjxTdHJpbmc+
JiYgc3RyaW5ncykKIHsKLSAgICBpZiAoIWlzSFRNTERvY3VtZW50KCkpCisgICAgaWYgKCFpc0hU
TUxEb2N1bWVudCgpIHx8IG1fdGhyb3dPbkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudCkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYWxzbyB0aHJvdyBpZiAiZG9jdW1lbnQncyB0aHJvdy1vbi1keW5h
bWljLW1hcmt1cC1pbnNlcnRpb24gY291bnRlciBpcyBncmVhdGVyIHRoYW4gMCIuCkBAIC0zMDAx
LDcgKzMwMDEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1bWVudDo6d3JpdGUoRG9jdW1lbnQq
IHJlc3BvbnNpYmxlRG9jdW1lbnQsIFZlY3RvcjxTdHJpbmc+JgogCiBFeGNlcHRpb25Pcjx2b2lk
PiBEb2N1bWVudDo6d3JpdGVsbihEb2N1bWVudCogcmVzcG9uc2libGVEb2N1bWVudCwgVmVjdG9y
PFN0cmluZz4mJiBzdHJpbmdzKQogewotICAgIGlmICghaXNIVE1MRG9jdW1lbnQoKSkKKyAgICBp
ZiAoIWlzSFRNTERvY3VtZW50KCkgfHwgbV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNv
dW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhbHNvIHRocm93IGlmICJkb2N1bWVudCdzIHRocm93
LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAwIi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODNiMDg4OWMwOTk4NDk4NGZhMjY4MzU0YThmNDcxNDVi
ZTdjMjgyYi4uZjBkZTAxYTQyZDJhNThhNzM3N2RjZDVlYjk4ZmUyMjJlODBkYWNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE0ODAsOCArMTQ4MCw5IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIERvY3VtZW50UGFyc2VyWWllbGRUb2tlbjsKICAgICBmcmllbmQg
Y2xhc3MgTm9kZTsKLSAgICBmcmllbmQgY2xhc3MgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50
SW5jcmVtZW50ZXI7CisgICAgZnJpZW5kIGNsYXNzIFRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0
aW9uQ291bnRJbmNyZW1lbnRlcjsKICAgICBmcmllbmQgY2xhc3MgSWdub3JlT3BlbnNEdXJpbmdV
bmxvYWRDb3VudEluY3JlbWVudGVyOworICAgIGZyaWVuZCBjbGFzcyBJZ25vcmVEZXN0cnVjdGl2
ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsKIAogICAgIGJvb2wgc2hvdWxkSW5oZXJpdENvbnRlbnRT
ZWN1cml0eVBvbGljeUZyb21Pd25lcigpIGNvbnN0OwogCkBAIC0xODU0LDEyICsxODU1LDE1IEBA
IHByaXZhdGU6CiAgICAgaW50IG1fbG9hZEV2ZW50RGVsYXlDb3VudCB7IDAgfTsKICAgICB1bnNp
Z25lZCBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nIHsgMCB9OwogCi0gICAgLy8gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2lnbm9y
ZS1kZXN0cnVjdGl2ZS13cml0ZXMtY291bnRlcgotICAgIHVuc2lnbmVkIG1faWdub3JlRGVzdHJ1
Y3RpdmVXcml0ZUNvdW50IHsgMCB9OworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL2R5bmFtaWMtbWFya3VwLWluc2VydGlvbi5odG1sI3Rocm93LW9uLWR5bmFt
aWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyCisgICAgdW5zaWduZWQgbV90aHJvd09uRHluYW1p
Y01hcmt1cEluc2VydGlvbkNvdW50IHsgMCB9OwogCi0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2lnbm9yZS1vcGVucy1kdXJpbmct
dW5sb2FkLWNvdW50ZXIKKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCNpZ25vcmUtb3BlbnMtZHVyaW5nLXVu
bG9hZC1jb3VudGVyCiAgICAgdW5zaWduZWQgbV9pZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
IHsgMCB9OwogCisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
ZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjaWdub3JlLWRlc3RydWN0aXZlLXdyaXRlcy1j
b3VudGVyCisgICAgdW5zaWduZWQgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQgeyAwIH07
CisKICAgICB1bnNpZ25lZCBtX2FjdGl2ZVBhcnNlckNvdW50IHsgMCB9OwogICAgIHVuc2lnbmVk
IG1fc3R5bGVSZWNhbGNDb3VudCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1l
bnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgzZTcxZmEzNzFmMWE2ZjMwZmI0YTVmYWY4NWY4Yjc3NGI4YTFk
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGhyb3dPbkR5bmFtaWNN
YXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50SW5j
cmVtZW50ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocm93T25EeW5hbWljTWFya3Vw
SW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVGhyb3dP
bkR5bmFtaWNNYXJrdXBJbnNlcnRpb25Db3VudEluY3JlbWVudGVyKERvY3VtZW50JiBkb2N1bWVu
dCkKKyAgICAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgKytkb2N1
bWVudC5tX3Rocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnQ7CisgICAgfQorCisgICAg
flRocm93T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlcigpCisgICAgewor
ICAgICAgICBBU1NFUlQobV9kb2N1bWVudC0+bV90aHJvd09uRHluYW1pY01hcmt1cEluc2VydGlv
bkNvdW50KTsKKyAgICAgICAgLS1tX2RvY3VtZW50LT5tX3Rocm93T25EeW5hbWljTWFya3VwSW5z
ZXJ0aW9uQ291bnQ7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlZjxEb2N1bWVudD4gbV9kb2N1
bWVudDsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCAzZjNlNzk5M2Vk
OWM3MzUzODFjMzE0ZTg5N2E3Yjg1OWUxZTYzNGI5Li5hZDJhYjZjZGI5NzRiMjcwZDUzZTY2NDY2
ZTk0NTQxOWM3MDA3MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJMaW5rTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjcmlw
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJUaHJvd09uRHluYW1pY01hcmt1cEluc2VydGlvbkNvdW50
SW5jcmVtZW50ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMTAsNiArMjExLDgg
QEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRl
cigpCiAKICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLWFu
LWVsZW1lbnQtZm9yLXRoZS10b2tlbgogICAgICAgICB7CisgICAgICAgICAgICAvLyBQcmV2ZW50
IGRvY3VtZW50Lm9wZW4vd3JpdGUgZHVyaW5nIHJlYWN0aW9ucyBieSBhbGxvY2F0aW5nIHRoZSBp
bmNyZW1lbnRlciBiZWZvcmUgdGhlIHJlYWN0aW9ucyBzdGFjay4KKyAgICAgICAgICAgIFRocm93
T25EeW5hbWljTWFya3VwSW5zZXJ0aW9uQ291bnRJbmNyZW1lbnRlciBpbmNyZW1lbnRlcigqZG9j
dW1lbnQoKSk7CiAgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVhY3Rpb25TdGFjayByZWFjdGlv
blN0YWNrKGRvY3VtZW50KCktPmV4ZWNTdGF0ZSgpKTsKICAgICAgICAgICAgIGF1dG8mIGVsZW1l
bnRJbnRlcmZhY2UgPSBjb25zdHJ1Y3Rpb25EYXRhLT5lbGVtZW50SW50ZXJmYWNlLmdldCgpOwog
ICAgICAgICAgICAgYXV0byBuZXdFbGVtZW50ID0gZWxlbWVudEludGVyZmFjZS5jb25zdHJ1Y3RF
bGVtZW50V2l0aEZhbGxiYWNrKCpkb2N1bWVudCgpLCBjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ODFjYTQ1ZTM0MTI3YWU2Y2UxZWI4Yjc5OTk2YTY0YjI1ZjRhMGEwLi5hZjNiNDI2
MzY0N2I1MmM0YzdlODUzZjJhNWRmOGI5NzJkMTY5ZGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTgtMDgtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
ZG9jdW1lbnQub3BlbiBhbmQgZG9jdW1lbnQud3JpdGUgbXVzdCB0aHJvdyB3aGlsZSB0aGUgSFRN
TCBwYXJzZXIgaXMgc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MzE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Mjg0MzAxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQWRkZWQgVzNDIHN0eWxlIHRlc3RoYXJuZXNzLmpz
IHRlc3RzLiBUaGUgV1BUIHRlc3QgYWRkZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvcHVsbC8xMjAzNworICAgICAgICBkb2Vzbid0IHRlc3QgbmVhcmx5IGFz
IG1hbnkgZWRnZSBjYXNlcy4KKworICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLWRlc3RpbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVy
LWNvbnN0cnVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVj
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1k
eW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1h
cmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTgtMDgt
MDUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtN
ZWRpYUNhcGFiaWxpdGllc10gUGxhdGZvcm0gaW50ZWdyYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDhmZDhiNmQyMTMyNWI0ZTM2NTEyMDI1YzY0MjcyZTUyNmI5MzM5ZTYu
LjgxYjhiYTg2OTI4MWRlMDQ0ZWYzYjJkMmYwNGJlYjE2ZGMzOTEzN2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMyw3ICszLDcgQEAKICAgICAgICAgSFRNTCBwYXJzZXIgc2hv
dWxkIGV4ZWN1dGUgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBzZXR0aW5nIGF0dHJpYnV0
ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgY3JlYXRpbmcgYSBjdXN0b20gZWxlbWVudAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4MzM2CiAKLSAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6ly
aWMgV2FuZy4KIAogICAgICAgICBSZWJhc2VsaW5lIHRoZSB0ZXN0IG5vdyB0aGF0IHRoZSByZWxl
dmFudCB0ZXN0IGNhc2UgaXMgcGFzc2luZy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL25hdmlnYXRpb24tZGVzdGluYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLWRl
c3RpbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRlOGQyYzZlYjEzZWEwZDhiNjMzNzgwMTYwODEx
NTU5ZTI4Mzk1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLWRlc3RpbmF0aW9uLmh0bWwKQEAgLTAsMCArMSw5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5OYXZpZ2F0ZWQhPC9wPgor
PHNjcmlwdD4KK3BhcmVudC5wb3N0TWVzc2FnZSgnZGlkTmF2aWdhdGUnLCAnKicpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3Rv
bS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1jb25z
dHJ1Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhy
b3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItY29uc3RydWN0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOTc2ZmU3NzA0NzllZGViYzg2NzQ0OWJmZTE4OTYwYTdjMzE4Mzlh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvdGhy
b3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXItY29uc3RydWN0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACisKK1BBU1MgZG9jdW1lbnQub3BlbigpIG11c3QgdGhyb3cg
YW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1
c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC5vcGVuKCJ0ZXh0L2h0bWwiKSBtdXN0IHRocm93
IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBj
dXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQub3BlbihVUkwpIG11c3QgTk9UIHRocm93IGFu
IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0
b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQuY2xvc2UoKSBtdXN0IHRocm93IGFuIEludmFsaWRT
dGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVu
dCAKK1BBU1MgZG9jdW1lbnQud3JpdGUgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRv
Y3VtZW50LndyaXRlbG4gbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50Lm9w
ZW4oKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVy
cm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCAKK1BB
U1MgZG9jdW1lbnQub3BlbigidGV4dC9odG1sIikgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5v
dCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LmNsb3NlKCkgb2YgYW5vdGhlciBk
b2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9u
b3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRl
IG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Ig
d2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50IAorUEFTUyBk
b2N1bWVudC53cml0ZWxuIG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52
YWxpZFN0YXRlRXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBl
bGVtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90
aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3Vw
LWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNGM3YjBkYmZl
NmQxM2U0ZjAzNDQ5ODYyYzE3NDE0Nzc3NjAzM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRp
b24tY291bnRlci1jb25zdHJ1Y3QuaHRtbApAQCAtMCwwICsxLDExNyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVtZW50czogY3JlYXRlIGFuIGVs
ZW1lbnQgZm9yIGEgdG9rZW4gbXVzdCBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBkb2N1bWVudCdz
IHRocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3VudGVyPC90aXRsZT4KKzxtZXRh
IG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdl
YmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJJbnZva2luZyBkb2N1bWVu
dC5vcGVuLCBkb2N1bWVudC53cml0ZSwgZG9jdW1lbnQud3JpdGVsbiwgYW5kIGRvY3VtZW50Lndy
aXRlIG11c3QgdGhyb3cgYW4gZXhjZXB0aW9uIHdoZW4gdGhlIEhUTUwgcGFyc2VyIGlzIGNyZWF0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgZm9yIGEgdG9rZW4iPgorPG1ldGEgbmFtZT0iaGVscCIgY29u
dGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1s
I2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4iPgorPG1ldGEgbmFtZT0iaGVscCIgY29u
dGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJr
dXAtaW5zZXJ0aW9uLmh0bWwjdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50
ZXIiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKworYXN5bmMgZnVuY3Rpb24gY29uc3RydWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0
ZXN0LCBjYWxsX2Z1bmN0aW9uKQoreworICAgIGNvbnN0IHdpbmRvdyA9IGF3YWl0IGNyZWF0ZV93
aW5kb3dfaW5fdGVzdCh0ZXN0KTsKKyAgICBjb25zdCBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVu
dDsKKworICAgIGRvY3VtZW50Lm9wZW4oKTsKKworICAgIGxldCBleGVjdXRlZCA9IGZhbHNlOwor
ICAgIGxldCBleGNlcHRpb24gPSBudWxsOworICAgIGNsYXNzIEN1c3RvbUVsZW1lbnQgZXh0ZW5k
cyB3aW5kb3cuSFRNTEVsZW1lbnQgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAg
ICAgIHN1cGVyKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNhbGxfZnVu
Y3Rpb24oZG9jdW1lbnQsIHdpbmRvdyk7CisgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewor
ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGVycm9yOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZXhlY3V0ZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHdpbmRvdy5jdXN0
b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtZWxlbWVudCcsIEN1c3RvbUVsZW1lbnQpOworCisgICAg
ZG9jdW1lbnQud3JpdGUoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxib2R5Pjxzb21lLWVsZW1lbnQ+
PC9zb21lLWVsZW1lbnQ+PC9ib2R5PjwvaHRtbD4nKTsKKyAgICBkb2N1bWVudC5jbG9zZSgpOwor
CisgICAgYXNzZXJ0X3RydWUoZXhlY3V0ZWQsICdNdXN0IHN5bmNocm9ub3VzbHkgaW5zdGFudGlh
dGUgYSBjdXN0b20gZWxlbWVudCcpOworICAgIHJldHVybiB7d2luZG93LCBkb2N1bWVudCwgZXhj
ZXB0aW9ufTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25z
dCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRoaXMs
IChkb2N1bWVudCkgPT4gZG9jdW1lbnQub3BlbigpKTsKKyAgICBhc3NlcnRfdGhyb3dzKHtuYW1l
OiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhjZXB0aW9uOyB9
LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3VtZW50Lm9wZW4o
KSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25z
dHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rp
b24gKCkgeworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVu
dF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBkb2N1bWVudC5vcGVuKCd0ZXh0L2h0bWwn
KSk7CisgICAgYXNzZXJ0X3Rocm93cyh7bmFtZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+
IHsgdGhyb3cgcmVzdWx0LmV4Y2VwdGlvbjsgfSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3InKTsKK30sICdkb2N1bWVudC5vcGVuKCJ0ZXh0L2h0bWwiKSBtdXN0IHRocm93IGFuIElu
dmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20g
ZWxlbWVudCcpOworCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9k
eW5hbWljLW1hcmt1cC1pbnNlcnRpb24uaHRtbCNkb20tZG9jdW1lbnQtb3Blbi13aW5kb3cKK3By
b21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgbGV0IGxvYWRfcHJvbWlzZSA9IG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50KSA9PiByZXNv
bHZlKGV2ZW50LmRhdGEpKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3Vz
dG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCwgd2luZG93KSA9PiBkb2N1bWVu
dC5vcGVuKCdyZXNvdXJjZXMvbmF2aWdhdGlvbi1kZXN0aW5hdGlvbi5odG1sJywgJ19zZWxmJywg
JycpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgbG9hZF9wcm9taXNlLCAnZGlkTmF2aWdhdGUnKTsKK30sICdkb2N1
bWVudC5vcGVuKFVSTCkgbXVzdCBOT1QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBz
eW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29uc3Ry
dWN0X2N1c3RvbV9lbGVtZW50X2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50
LmNsb3NlKCkpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9
LCAoKSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yJyk7Cit9LCAnZG9jdW1lbnQuY2xvc2UoKSBtdXN0IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxl
bWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRv
Y3VtZW50KSA9PiBkb2N1bWVudC53cml0ZSgnPGI+c29tZSB0ZXh0PC9iPicpKTsKKyAgICBhc3Nl
cnRfdGhyb3dzKHtuYW1lOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1
bHQuZXhjZXB0aW9uOyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworICAg
IGFzc2VydF9lcXVhbHMocmVzdWx0LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2InKSwgbnVsbCwg
J011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworICAgIGFzc2VydF9mYWxzZShyZXN1bHQu
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTC5pbmNsdWRlcygnc29tZSB0ZXh0Jyks
ICdNdXN0IG5vdCBpbnNlcnQgbmV3IGNvbnRlbnQnKTsKK30sICdkb2N1bWVudC53cml0ZSBtdXN0
IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25zdHJ1Y3Rp
bmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkg
eworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21fZWxlbWVudF9pbl9w
YXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBkb2N1bWVudC53cml0ZWxuKCc8Yj5zb21lIHRleHQ8
L2I+JykpOworICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAo
KSA9PiB7IHRocm93IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRT
dGF0ZUVycm9yJyk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignYicpLCBudWxsLCAnTXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7CisgICAgYXNz
ZXJ0X2ZhbHNlKHJlc3VsdC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1
ZGVzKCdzb21lIHRleHQnKSwgJ011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworfSwgJ2Rv
Y3VtZW50LndyaXRlbG4gbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNo
cm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25zdCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNy
ZWF0ZV93aW5kb3dfaW5fdGVzdCh0aGlzKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25z
dHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhl
cl93aW5kb3cuZG9jdW1lbnQub3BlbigpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNl
cHRpb24sIG51bGwpOworfSwgJ2RvY3VtZW50Lm9wZW4oKSBvZiBhbm90aGVyIGRvY3VtZW50IG11
c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25vdXNseSBjb25z
dHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rp
b24gKCkgeworICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19p
bl90ZXN0KHRoaXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVjdF9jdXN0b21f
ZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1
bWVudC5vcGVuKCd0ZXh0L2h0bWwnKSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZXhjZXB0
aW9uLCBudWxsKTsKK30sICdkb2N1bWVudC5vcGVuKCJ0ZXh0L2h0bWwiKSBvZiBhbm90aGVyIGRv
Y3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gc3luY2hyb25v
dXNseSBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRl
X3dpbmRvd19pbl90ZXN0KHRoaXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnN0cnVj
dF9jdXN0b21fZWxlbWVudF9pbl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dp
bmRvdy5kb2N1bWVudC5jbG9zZSgpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRp
b24sIG51bGwpOworfSwgJ2RvY3VtZW50LmNsb3NlKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0
IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3Ry
dWN0aW5nIGEgY3VzdG9tIGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9u
ICgpIHsKKyAgICBjb25zdCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5f
dGVzdCh0aGlzKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2Vs
ZW1lbnRfaW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhlcl93aW5kb3cuZG9jdW1l
bnQud3JpdGUoJzxiPnNvbWUgdGV4dDwvYj4nKSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQu
ZXhjZXB0aW9uLCBudWxsKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFub3RoZXJfd2luZG93LmRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2InKS5vdXRlckhUTUwsICc8Yj5zb21lIHRleHQ8L2I+Jyk7Cit9
LCAnZG9jdW1lbnQud3JpdGUgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHN5bmNocm9ub3VzbHkgY29uc3RydWN0aW5nIGEgY3VzdG9t
IGVsZW1lbnQnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uICgpIHsKKyAgICBjb25z
dCBhbm90aGVyX3dpbmRvdyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5fdGVzdCh0aGlzKTsKKyAg
ICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25zdHJ1Y3RfY3VzdG9tX2VsZW1lbnRfaW5fcGFyc2Vy
KHRoaXMsIChkb2N1bWVudCkgPT4gYW5vdGhlcl93aW5kb3cuZG9jdW1lbnQud3JpdGVsbignPGI+
c29tZSB0ZXh0PC9iPicpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51
bGwpOworICAgIGFzc2VydF9lcXVhbHMoYW5vdGhlcl93aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignYicpLm91dGVySFRNTCwgJzxiPnNvbWUgdGV4dDwvYj4nKTsKK30sICdkb2N1bWVudC53
cml0ZWxuIG9mIGFub3RoZXIgZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3Igd2hlbiBzeW5jaHJvbm91c2x5IGNvbnN0cnVjdGluZyBhIGN1c3RvbSBlbGVtZW50Jyk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNv
dW50ZXItcmVhY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9u
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5ZWQxMTk0NWJkNjkwMTNjNzRhYTViMDliZmUy
ZmRiMjYzNGNmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitQQVNTIGRvY3VtZW50Lm9wZW4oKSBt
dXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxl
bWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1l
bnQgCitQQVNTIGRvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG11c3QgdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3Ig
YSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCAKK1BBU1MgZG9jdW1lbnQu
b3BlbihVUkwpIG11c3QgTk9UIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vz
c2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0
ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LmNsb3NlKCkgbXVzdCB0aHJvdyBhbiBJ
bnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25z
IGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1
bWVudC53cml0ZSBtdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2lu
ZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQg
Y3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlbG4gbXVzdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZv
ciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVu
dC5vcGVuKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5
bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC5vcGVu
KCJ0ZXh0L2h0bWwiKSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9y
IGEgc3luY2hyb25vdXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50
LmNsb3NlKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5
bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorUEFTUyBkb2N1bWVudC53cml0
ZSBvZiBhbm90aGVyIGRvY3VtZW50IG11c3Qgbm90IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9y
IHdoZW4gcHJvY2Vzc2luZyBjdXN0b20gZWxlbWVudCByZWFjdGlvbnMgZm9yIGEgc3luY2hyb25v
dXMgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGRvY3VtZW50LndyaXRlbG4gb2Yg
YW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVu
IHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNv
bnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRl
ci1yZWFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93
LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9ucy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM2Y2Q3YzYwZTcwNTM0YjVhYTQ5OTdiM2Y2ZWNlNTU3YTRiY2M4MTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5h
bWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMuaHRtbApAQCAtMCwwICsxLDEx
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkN1c3RvbSBFbGVt
ZW50czogY3JlYXRlIGFuIGVsZW1lbnQgZm9yIGEgdG9rZW4gbXVzdCBpbmNyZW1lbnQgYW5kIGRl
Y3JlbWVudCBkb2N1bWVudCdzIHRocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBjb3Vu
dGVyPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJl
Zj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJJbnZva2luZyBkb2N1bWVudC5vcGVuLCBkb2N1bWVudC53cml0ZSwgZG9jdW1lbnQud3JpdGVs
biwgYW5kIGRvY3VtZW50LndyaXRlIG11c3QgdGhyb3cgYW4gZXhjZXB0aW9uIHdoZW4gdGhlIEhU
TUwgcGFyc2VyIGlzIGNyZWF0aW5nIGEgY3VzdG9tIGVsZW1lbnQgZm9yIGEgdG9rZW4iPgorPG1l
dGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvcGFyc2luZy5odG1sI2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4iPgorPG1l
dGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjdGhyb3ctb24tZHluYW1pYy1tYXJr
dXAtaW5zZXJ0aW9uLWNvdW50ZXIiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVs
ZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPHNjcmlwdD4KKworYXN5bmMgZnVuY3Rpb24gY3VzdG9tX2VsZW1lbnRfcmVh
Y3Rpb25zX2luX3BhcnNlcih0ZXN0LCBjYWxsX2Z1bmN0aW9uKQoreworICAgIGNvbnN0IHdpbmRv
dyA9IGF3YWl0IGNyZWF0ZV93aW5kb3dfaW5fdGVzdCh0ZXN0KTsKKyAgICBjb25zdCBkb2N1bWVu
dCA9IHdpbmRvdy5kb2N1bWVudDsKKworICAgIGRvY3VtZW50Lm9wZW4oKTsKKworICAgIGxldCBl
eGVjdXRlZCA9IGZhbHNlOworICAgIGxldCBleGNlcHRpb24gPSBudWxsOworICAgIGNsYXNzIEN1
c3RvbUVsZW1lbnQgZXh0ZW5kcyB3aW5kb3cuSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1
dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSB7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgIGNhbGxfZnVuY3Rpb24oZG9jdW1lbnQsIHdpbmRvdyk7
CisgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlv
biA9IGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhlY3V0ZWQgPSB0cnVlOwor
ICAgICAgICB9CisgICAgfQorICAgIEN1c3RvbUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVzID0g
Wyd0aXRsZSddOworICAgIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3NvbWUtZWxlbWVu
dCcsIEN1c3RvbUVsZW1lbnQpOworCisgICAgZG9jdW1lbnQud3JpdGUoJzwhRE9DVFlQRSBodG1s
PjxodG1sPjxib2R5Pjxzb21lLWVsZW1lbnQgdGl0bGU9InNvbWUgdGl0bGUiPjwvc29tZS1lbGVt
ZW50PjwvYm9keT48L2h0bWw+Jyk7CisgICAgZG9jdW1lbnQuY2xvc2UoKTsKKworICAgIGFzc2Vy
dF90cnVlKGV4ZWN1dGVkLCAnTXVzdCBpbW1lZGlhdGVseSBwcm9jZXNzIGN1c3RvbSBlbGVtZW50
IHJlYWN0aW9ucyBmb3Igc2V0dGluZyBhdHRyaWJ1dGVzJyk7CisgICAgcmV0dXJuIHtmcmFtZUVs
ZW1lbnQsIHdpbmRvdywgZG9jdW1lbnQsIGV4Y2VwdGlvbn07Cit9CisKK3Byb21pc2VfdGVzdChh
c3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1l
bnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50Lm9wZW4o
KSk7CisgICAgYXNzZXJ0X3Rocm93cyh7bmFtZTogJ0ludmFsaWRTdGF0ZUVycm9yJ30sICgpID0+
IHsgdGhyb3cgcmVzdWx0LmV4Y2VwdGlvbjsgfSwgJ011c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRl
RXJyb3InKTsKK30sICdkb2N1bWVudC5vcGVuKCkgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNo
cm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3lu
YyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRf
cmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGRvY3VtZW50Lm9wZW4oJ3Rl
eHQvaHRtbCcpKTsKKyAgICBhc3NlcnRfdGhyb3dzKHtuYW1lOiAnSW52YWxpZFN0YXRlRXJyb3In
fSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhjZXB0aW9uOyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG11c3QgdGhy
b3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBlbGVtZW50IHJl
YWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCcpOwor
CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9keW5hbWljLW1hcmt1
cC1pbnNlcnRpb24uaHRtbCNkb20tZG9jdW1lbnQtb3Blbi13aW5kb3cKK3Byb21pc2VfdGVzdChh
c3luYyBmdW5jdGlvbiAoKSB7CisgICAgbGV0IGxvYWRfcHJvbWlzZSA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50KSA9PiByZXNvbHZlKGV2ZW50LmRh
dGEpKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjdXN0b21fZWxlbWVudF9yZWFjdGlvbnNf
aW5fcGFyc2VyKHRoaXMsIChkb2N1bWVudCwgd2luZG93KSA9PiBkb2N1bWVudC5vcGVuKCdyZXNv
dXJjZXMvbmF2aWdhdGlvbi1kZXN0aW5hdGlvbi5odG1sJywgJ19zZWxmJywgJycpKTsKKyAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgbG9hZF9wcm9taXNlLCAnZGlkTmF2aWdhdGUnKTsKK30sICdkb2N1bWVudC5vcGVuKFVS
TCkgbXVzdCBOT1QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1
c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0
b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIodGhp
cywgKGRvY3VtZW50KSA9PiBkb2N1bWVudC5jbG9zZSgpKTsKKyAgICBhc3NlcnRfdGhyb3dzKHtu
YW1lOiAnSW52YWxpZFN0YXRlRXJyb3InfSwgKCkgPT4geyB0aHJvdyByZXN1bHQuZXhjZXB0aW9u
OyB9LCAnTXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvcicpOworfSwgJ2RvY3VtZW50LmNs
b3NlKCkgbXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3Vz
dG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3Rv
bSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlz
LCAoZG9jdW1lbnQpID0+IGRvY3VtZW50LndyaXRlKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAg
IGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAoKSA9PiB7IHRocm93
IHJlc3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yJyk7
CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYicpLCBu
dWxsLCAnTXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKHJl
c3VsdC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1ZGVzKCdzb21lIHRl
eHQnKSwgJ011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworfSwgJ2RvY3VtZW50LndyaXRl
IG11c3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3RvbSBl
bGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20gZWxl
bWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIodGhpcywgKGRv
Y3VtZW50KSA9PiBkb2N1bWVudC53cml0ZWxuKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAgIGFz
c2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkU3RhdGVFcnJvcid9LCAoKSA9PiB7IHRocm93IHJl
c3VsdC5leGNlcHRpb247IH0sICdNdXN0IHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYicpLCBudWxs
LCAnTXVzdCBub3QgaW5zZXJ0IG5ldyBjb250ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3Vs
dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1ZGVzKCdzb21lIHRleHQn
KSwgJ011c3Qgbm90IGluc2VydCBuZXcgY29udGVudCcpOworfSwgJ2RvY3VtZW50LndyaXRlbG4g
bXVzdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVs
ZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVt
ZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgYW5v
dGhlcl93aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlz
LCAoZG9jdW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRvY3VtZW50Lm9wZW4oKSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHQuZXhjZXB0aW9uLCBudWxsKTsKK30sICdkb2N1bWVudC5vcGVuKCkg
b2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciB3
aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNocm9ub3Vz
IGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5j
dGlvbiAoKSB7CisgICAgY29uc3QgYW5vdGhlcl93aW5kb3cgPSBhd2FpdCBjcmVhdGVfd2luZG93
X2luX3Rlc3QodGhpcyk7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3VzdG9tX2VsZW1lbnRf
cmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGFub3RoZXJfd2luZG93LmRv
Y3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNl
cHRpb24sIG51bGwpOworfSwgJ2RvY3VtZW50Lm9wZW4oInRleHQvaHRtbCIpIG9mIGFub3RoZXIg
ZG9jdW1lbnQgbXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNz
aW5nIGN1c3RvbSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3Rl
ZCBjdXN0b20gZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgewor
ICAgIGNvbnN0IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRo
aXMpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19p
bl9wYXJzZXIodGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC5jbG9z
ZSgpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5leGNlcHRpb24sIG51bGwpOworfSwgJ2Rv
Y3VtZW50LmNsb3NlKCkgb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZh
bGlkU3RhdGVFcnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZv
ciBhIHN5bmNocm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKK3Byb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgYW5vdGhlcl93aW5kb3cgPSBhd2Fp
dCBjcmVhdGVfd2luZG93X2luX3Rlc3QodGhpcyk7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
Y3VzdG9tX2VsZW1lbnRfcmVhY3Rpb25zX2luX3BhcnNlcih0aGlzLCAoZG9jdW1lbnQpID0+IGFu
b3RoZXJfd2luZG93LmRvY3VtZW50LndyaXRlKCc8Yj5zb21lIHRleHQ8L2I+JykpOworICAgIGFz
c2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhh
bm90aGVyX3dpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdiJykub3V0ZXJIVE1MLCAnPGI+
c29tZSB0ZXh0PC9iPicpOworfSwgJ2RvY3VtZW50LndyaXRlIG9mIGFub3RoZXIgZG9jdW1lbnQg
bXVzdCBub3QgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGN1c3Rv
bSBlbGVtZW50IHJlYWN0aW9ucyBmb3IgYSBzeW5jaHJvbm91cyBjb25zdHJ1Y3RlZCBjdXN0b20g
ZWxlbWVudCcpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24gKCkgeworICAgIGNvbnN0
IGFub3RoZXJfd2luZG93ID0gYXdhaXQgY3JlYXRlX3dpbmRvd19pbl90ZXN0KHRoaXMpOworICAg
IGNvbnN0IHJlc3VsdCA9IGF3YWl0IGN1c3RvbV9lbGVtZW50X3JlYWN0aW9uc19pbl9wYXJzZXIo
dGhpcywgKGRvY3VtZW50KSA9PiBhbm90aGVyX3dpbmRvdy5kb2N1bWVudC53cml0ZWxuKCc8Yj5z
b21lIHRleHQ8L2I+JykpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LmV4Y2VwdGlvbiwgbnVs
bCk7CisgICAgYXNzZXJ0X2VxdWFscyhhbm90aGVyX3dpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCdiJykub3V0ZXJIVE1MLCAnPGI+c29tZSB0ZXh0PC9iPicpOworfSwgJ2RvY3VtZW50Lndy
aXRlbG4gb2YgYW5vdGhlciBkb2N1bWVudCBtdXN0IG5vdCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVF
cnJvciB3aGVuIHByb2Nlc3NpbmcgY3VzdG9tIGVsZW1lbnQgcmVhY3Rpb25zIGZvciBhIHN5bmNo
cm9ub3VzIGNvbnN0cnVjdGVkIGN1c3RvbSBlbGVtZW50Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>