<?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>186335</bug_id>
          
          <creation_ts>2018-06-05 20:19:21 -0700</creation_ts>
          <short_desc>Add Accept-Encoding: identity to Range requests</short_desc>
          <delta_ts>2018-06-06 21:03:39 -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>Service Workers</component>
          <version>Safari Technology Preview</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jake Archibald">jaffathecake</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1430338</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2018-06-05 20:19:21 -0700</bug_when>
    <thetext>Spec change: https://github.com/whatwg/fetch/pull/751
Tests: https://github.com/web-platform-tests/wpt/pull/11291

Turns out a significant number of servers ignore Range headers unless &quot;Accept-Encoding: identity&quot; is set. This spec change applies that header to all requests with a Range header.

Safari already does this for media requests, although the header is applied before the service worker, when it should be afterwards.

Related issues:
https://bugs.webkit.org/show_bug.cgi?id=186050
https://bugs.webkit.org/show_bug.cgi?id=184447</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430362</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-05 21:58:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/40837190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430488</commentid>
    <comment_count>2</comment_count>
      <attachid>342056</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-06 10:15:51 -0700</bug_when>
    <thetext>Created attachment 342056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430537</commentid>
    <comment_count>3</comment_count>
      <attachid>342056</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-06-06 11:44:53 -0700</bug_when>
    <thetext>Comment on attachment 342056
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:214
&gt; +    // FIXME: We should ask the media engine to not set this header.

Please file a Radar and include the number here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430690</commentid>
    <comment_count>4</comment_count>
      <attachid>342113</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-06 20:23:00 -0700</bug_when>
    <thetext>Created attachment 342113
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430692</commentid>
    <comment_count>5</comment_count>
      <attachid>342113</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-06 21:03:37 -0700</bug_when>
    <thetext>Comment on attachment 342113
Patch for landing

Clearing flags on attachment: 342113

Committed r232571: &lt;https://trac.webkit.org/changeset/232571&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430693</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-06 21:03:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342056</attachid>
            <date>2018-06-06 10:15:51 -0700</date>
            <delta_ts>2018-06-06 20:22:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186335-20180606101550.patch</filename>
            <type>text/plain</type>
            <size>35535</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEyZjExZGNkNTczNTVi
NDE4OGI3NTJhYzllYjdhZTI4OTVlMjhlYS4uM2RkM2I2MzhkMDE3MzM1ZGNkZWQ5ZThhOGVkZDE1
ZmM1Y2VkNDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA2LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQWNjZXB0LUVuY29k
aW5nOiBpZGVudGl0eSB0byBSYW5nZSByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
MDgzNzE5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5l
cmFsLmFueS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55Lndvcmtlci5odG1sCisKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUhUVFBSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUFjY2VwdEVuY29kaW5nSGVhZGVyKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6CisKIDIwMTgtMDYt
MDUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
T3BlbkdMIGRpc3BsYXkgbWFzayB0byBzY3JlZW4gZGF0YSBzdHJ1Y3QuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA3
YzJiZjI3ZTBiODcyYTY4NTJkNDNkYjAzZWIzZWIxMWIzZGM2ZmVjLi5hNzAzZTVlNDBmMmE2Yjc4
Y2M5M2JiN2UzN2ZjZjIxYTZkYmZmOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTcyNyw2ICs3MjcsNyBAQCB2
b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUgdHlwZSwgQwogICAgIH0KIAogICAgIHJlcXVlc3QudXBkYXRlQWNjb3Jk
aW5nQ2FjaGVNb2RlKCk7CisgICAgcmVxdWVzdC51cGRhdGVBY2NlcHRFbmNvZGluZ0hlYWRlcigp
OwogfQogCiBzdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbkZvclR5
cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggMDAxMmU5NjRiMzBk
ZmYyNDI5YjJkYjMzMjc3Yjc1Y2RjZjQwOWMyNC4uNDk2NDUwYjIxYjM2YmY1ZmU5NmRjYmJhMTFm
ZTA0ZTA3OGFjNjQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTIwNiw2ICsyMDYsMTcgQEAgdm9pZCBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUFjY29yZGluZ0NhY2hlTW9kZSgpCiAgICAgfQogfQog
Cit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6dXBkYXRlQWNjZXB0RW5jb2RpbmdIZWFkZXIo
KQoreworICAgIGlmICghbV9yZXNvdXJjZVJlcXVlc3QuaGFzSFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpSYW5nZSkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgYXNrIHRoZSBtZWRpYSBlbmdpbmUgdG8gbm90IHNldCB0aGlzIGhlYWRlci4KKyAgICBB
U1NFUlQoIW1fcmVzb3VyY2VSZXF1ZXN0Lmhhc0hUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFt
ZTo6QWNjZXB0RW5jb2RpbmcpIHx8IG1fb3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpBdWRpbyB8fCBtX29wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbjo6VmlkZW8pOworCisgICAgbV9yZXNvdXJjZVJlcXVlc3QuYWRk
SFRUUEhlYWRlckZpZWxkSWZOb3RQcmVzZW50KEhUVFBIZWFkZXJOYW1lOjpBY2NlcHRFbmNvZGlu
ZywgQVNDSUlMaXRlcmFsKCJpZGVudGl0eSIpKTsKK30KKwogdm9pZCBDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKCkKIHsKICAgICBVUkwgdXJs
ID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKG1fcmVzb3Vy
Y2VSZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaAppbmRleCA5MGU5NmMyMDQ2Y2U2ZGE4YjhmZTgwNWU0NzAy
YmZkMmEzZTE0Mjk3Li4zYTgyNWM3N2FmOWQxMzhkNWJlNDU3ZGJhYjYxZDExMWEyNGQyMmRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZ3JhZGVJbnNlY3Vy
ZVJlcXVlc3RJZk5lZWRlZChEb2N1bWVudCYpOwogICAgIHZvaWQgc2V0QWNjZXB0SGVhZGVySWZO
b25lKENhY2hlZFJlc291cmNlOjpUeXBlKTsKICAgICB2b2lkIHVwZGF0ZUFjY29yZGluZ0NhY2hl
TW9kZSgpOworICAgIHZvaWQgdXBkYXRlQWNjZXB0RW5jb2RpbmdIZWFkZXIoKTsKKwogICAgIHZv
aWQgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoKTsKICNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQogICAgIHZvaWQgYXBwbHlCbG9ja2VkU3RhdHVzKGNvbnN0IENvbnRlbnRF
eHRlbnNpb25zOjpCbG9ja2VkU3RhdHVzJiwgUGFnZSopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggNWJlMTcxMGJhZjM2N2Q4MmJlZjgxYmE3MTQ1NzRhMjcyZTQ5ZmJiYy4uMDJj
ZWZkOTkxY2NjZjA1ZDYxMmYyM2U4ZTkzNGE5NjM5Y2E0YTI5MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTgtMDYtMDYgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBY2NlcHQtRW5jb2Rpbmc6IGlkZW50
aXR5IHRvIFJhbmdlIHJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODYzMzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwODM3MTkwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVzb3Vy
Y2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55Lmpz
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJh
bC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55Lndvcmtlci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC53aW5kb3cuanM6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMv
YmFzaWMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Jh
bmdlL3Jlc291cmNlcy9sb25nLXdhdi5weTogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9wYXJ0aWFsLXNjcmlwdC5weTogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9yYW5nZS1z
dy5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jl
c291cmNlcy9zdGFzaC10YWtlLnB5OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3V0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2lu
ZG93LmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uv
dzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAyMDE4LTA2LTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyIHJlZ2lzdHJhdGlvbiBzaG91
bGQgc3RvcmUgYW55IHNjcmlwdCBmZXRjaGVkIHRocm91Z2ggaW1wb3J0U2NyaXB0cwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbgppbmRleCA4MTFiOTg5YzQ4Njg0YTRkMWNjZDBhM2YyMWI1ZWUxMGMyMWYy
MTBiLi5kNzcxNjg1ZGI1MzIxYTU2MGNjNzhmOWIzOWE2YmYyZGQxYmE2ZTQ0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMu
anNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbgpAQCAtMTQ0LDYgKzE0NCw4IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9mZWF0dXJlLXBvbGljeS9yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9mZWF0dXJlLXBvbGljeS9yZXNvdXJjZXMvIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2giOiAiaW1wb3J0IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkiOiAiaW1wb3J0IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9y
YW5nZSI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Z1bGxzY3JlZW4iOiAi
c2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ2FtZXBhZCI6ICJza2lwIiwgCiAgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9nZW5lcmljLXNlbnNvciI6ICJza2lwIiwgCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Jhbmdl
L2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY2YTlmMzg3ZDZiNTI5ZjhjZTczMGU1MzRlZDIwMjE0OTVlMDk3MDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3JhbmdlL2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFT
UyBSYW5nZSBoZWFkZXIgc2V0dGluZyBhbGxvd2VkIGZvciBndWFyZCB0eXBlOiBub25lIAorUEFT
UyBSYW5nZSBoZWFkZXIgc2V0dGluZyBhbGxvd2VkIGZvciBndWFyZCB0eXBlOiByZXNwb25zZSAK
K1BBU1MgUmFuZ2UgaGVhZGVyIHNldHRpbmcgYWxsb3dlZCBmb3IgZ3VhcmQgdHlwZTogcmVxdWVz
dCAKK1BBU1MgUHJpdmlsZWdlZCBoZWFkZXIgbm90IGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6IHJl
cXVlc3Qtbm8tY29ycyAKK1BBU1MgRmV0Y2ggd2l0aCByYW5nZSBoZWFkZXIgd2lsbCBiZSBzZW50
IHdpdGggQWNjZXB0LUVuY29kaW5nOiBpZGVudGl0eSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFu
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9yYW5nZS9nZW5lcmFsLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55Lmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjU2YWMxY2VlYTI1MTFkOTYwY2RiMjFiMjVhMjg0NmViMDkyYjhjNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkuanMKQEAgLTAsMCArMSw5MCBAQAorLy8gTUVU
QTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKworLy8gSGVscGVycyB0aGF0IHJldHVybiBoZWFk
ZXJzIG9iamVjdHMgd2l0aCBhIHBhcnRpY3VsYXIgZ3VhcmQKK2Z1bmN0aW9uIGhlYWRlcnNHdWFy
ZE5vbmUoZmlsbCkgeworICBpZiAoZmlsbCkgcmV0dXJuIG5ldyBIZWFkZXJzKGZpbGwpOworICBy
ZXR1cm4gbmV3IEhlYWRlcnMoKTsKK30KKworZnVuY3Rpb24gaGVhZGVyc0d1YXJkUmVzcG9uc2Uo
ZmlsbCkgeworICBjb25zdCBvcHRzID0ge307CisgIGlmIChmaWxsKSBvcHRzLmhlYWRlcnMgPSBm
aWxsOworICByZXR1cm4gbmV3IFJlc3BvbnNlKCcnLCBvcHRzKS5oZWFkZXJzOworfQorCitmdW5j
dGlvbiBoZWFkZXJzR3VhcmRSZXF1ZXN0KGZpbGwpIHsKKyAgY29uc3Qgb3B0cyA9IHt9OworICBp
ZiAoZmlsbCkgb3B0cy5oZWFkZXJzID0gZmlsbDsKKyAgcmV0dXJuIG5ldyBSZXF1ZXN0KCcuLycs
IG9wdHMpLmhlYWRlcnM7Cit9CisKK2Z1bmN0aW9uIGhlYWRlcnNHdWFyZFJlcXVlc3ROb0NvcnMo
ZmlsbCkgeworICBjb25zdCBvcHRzID0geyBtb2RlOiAnbm8tY29ycycgfTsKKyAgaWYgKGZpbGwp
IG9wdHMuaGVhZGVycyA9IGZpbGw7CisgIHJldHVybiBuZXcgUmVxdWVzdCgnLi8nLCBvcHRzKS5o
ZWFkZXJzOworfQorCitjb25zdCBoZWFkZXJHdWFyZFR5cGVzID0gWworICBbJ25vbmUnLCBoZWFk
ZXJzR3VhcmROb25lXSwKKyAgWydyZXNwb25zZScsIGhlYWRlcnNHdWFyZFJlc3BvbnNlXSwKKyAg
WydyZXF1ZXN0JywgaGVhZGVyc0d1YXJkUmVxdWVzdF0KK107CisKK2ZvciAoY29uc3QgW2d1YXJk
VHlwZSwgY3JlYXRlSGVhZGVyc10gb2YgaGVhZGVyR3VhcmRUeXBlcykgeworICB0ZXN0KCgpID0+
IHsKKyAgICAvLyBUaGVyZSBhcmUgdGhyZWUgd2F5cyB0byBzZXQgaGVhZGVycy4KKyAgICAvLyBG
aWxsaW5nLCBhcHBlbmRpbmcsIGFuZCBzZXR0aW5nLiBUZXN0IGVhY2g6CisgICAgbGV0IGhlYWRl
cnMgPSBjcmVhdGVIZWFkZXJzKHsgUmFuZ2U6ICdmb28nIH0pOworICAgIGFzc2VydF9lcXVhbHMo
aGVhZGVycy5nZXQoJ1JhbmdlJyksICdmb28nKTsKKworICAgIGhlYWRlcnMgPSBjcmVhdGVIZWFk
ZXJzKCk7CisgICAgaGVhZGVycy5hcHBlbmQoJ1JhbmdlJywgJ2ZvbycpOworICAgIGFzc2VydF9l
cXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksICdmb28nKTsKKworICAgIGhlYWRlcnMgPSBjcmVh
dGVIZWFkZXJzKCk7CisgICAgaGVhZGVycy5zZXQoJ1JhbmdlJywgJ2ZvbycpOworICAgIGFzc2Vy
dF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksICdmb28nKTsKKyAgfSwgYFJhbmdlIGhlYWRl
ciBzZXR0aW5nIGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6ICR7Z3VhcmRUeXBlfWApOworfQorCit0
ZXN0KCgpID0+IHsKKyAgbGV0IGhlYWRlcnMgPSBoZWFkZXJzR3VhcmRSZXF1ZXN0Tm9Db3JzKHsg
UmFuZ2U6ICdmb28nIH0pOworICBhc3NlcnRfZmFsc2UoaGVhZGVycy5oYXMoJ1JhbmdlJykpOwor
CisgIGhlYWRlcnMgPSBoZWFkZXJzR3VhcmRSZXF1ZXN0Tm9Db3JzKCk7CisgIGhlYWRlcnMuYXBw
ZW5kKCdSYW5nZScsICdmb28nKTsKKyAgYXNzZXJ0X2ZhbHNlKGhlYWRlcnMuaGFzKCdSYW5nZScp
KTsKKworICBoZWFkZXJzID0gaGVhZGVyc0d1YXJkUmVxdWVzdE5vQ29ycygpOworICBoZWFkZXJz
LnNldCgnUmFuZ2UnLCAnZm9vJyk7CisgIGFzc2VydF9mYWxzZShoZWFkZXJzLmhhcygnUmFuZ2Un
KSk7Cit9LCBgUHJpdmlsZWdlZCBoZWFkZXIgbm90IGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6IHJl
cXVlc3Qtbm8tY29yc2ApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICBjb25zdCB3
YXZVUkwgPSBuZXcgVVJMKCdyZXNvdXJjZXMvbG9uZy13YXYucHknLCBsb2NhdGlvbik7CisgIGNv
bnN0IHN0YXNoVGFrZVVSTCA9IG5ldyBVUkwoJ3Jlc291cmNlcy9zdGFzaC10YWtlLnB5JywgbG9j
YXRpb24pOworCisgIGZ1bmN0aW9uIGNoYW5nZVRva2VuKCkgeworICAgIGNvbnN0IHN0YXNoVG9r
ZW4gPSB0b2tlbigpOworICAgIHdhdlVSTC5zZWFyY2hQYXJhbXMuc2V0KCdhY2NlcHQtZW5jb2Rp
bmcta2V5Jywgc3Rhc2hUb2tlbik7CisgICAgc3Rhc2hUYWtlVVJMLnNlYXJjaFBhcmFtcy5zZXQo
J2tleScsIHN0YXNoVG9rZW4pOworICB9CisKKyAgY29uc3QgcmFuZ2VIZWFkZXJzID0gWworICAg
ICdieXRlcz0wLTEwJywKKyAgICAnZm9vPTAtMTAnLAorICAgICdmb28nLAorICAgICcnCisgIF07
CisKKyAgZm9yIChjb25zdCByYW5nZUhlYWRlciBvZiByYW5nZUhlYWRlcnMpIHsKKyAgICBjaGFu
Z2VUb2tlbigpOworCisgICAgYXdhaXQgZmV0Y2god2F2VVJMLCB7CisgICAgICBoZWFkZXJzOiB7
IFJhbmdlOiByYW5nZUhlYWRlciB9CisgICAgfSk7CisKKyAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IGZldGNoKHN0YXNoVGFrZVVSTCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCByZXNwb25z
ZS5qc29uKCksICdpZGVudGl0eScsIGBFeHBlY3QgaWRlbnRpdHkgYWNjZXB0LWVuY29kaW5nIGlm
IHJhbmdlIGhlYWRlciBpcyAke0pTT04uc3RyaW5naWZ5KHJhbmdlSGVhZGVyKX1gKTsKKyAgfQor
fSwgYEZldGNoIHdpdGggcmFuZ2UgaGVhZGVyIHdpbGwgYmUgc2VudCB3aXRoIEFjY2VwdC1FbmNv
ZGluZzogaWRlbnRpdHlgKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
cmFuZ2UvZ2VuZXJhbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmE5ZjM4
N2Q2YjUyOWY4Y2U3MzBlNTM0ZWQyMDIxNDk1ZTA5NzAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5l
cmFsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIFJhbmdl
IGhlYWRlciBzZXR0aW5nIGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6IG5vbmUgCitQQVNTIFJhbmdl
IGhlYWRlciBzZXR0aW5nIGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6IHJlc3BvbnNlIAorUEFTUyBS
YW5nZSBoZWFkZXIgc2V0dGluZyBhbGxvd2VkIGZvciBndWFyZCB0eXBlOiByZXF1ZXN0IAorUEFT
UyBQcml2aWxlZ2VkIGhlYWRlciBub3QgYWxsb3dlZCBmb3IgZ3VhcmQgdHlwZTogcmVxdWVzdC1u
by1jb3JzIAorUEFTUyBGZXRjaCB3aXRoIHJhbmdlIGhlYWRlciB3aWxsIGJlIHNlbnQgd2l0aCBB
Y2NlcHQtRW5jb2Rpbmc6IGlkZW50aXR5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55Lndvcmtl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9yYW5nZS9nZW5lcmFsLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFu
eS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAt
LT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwud2luZG93
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9y
YW5nZS9nZW5lcmFsLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmU4MGQ2M2E2YjI2M2Y2ODRjMDEy
ODRiODY3YzEzYTIyMjM2YThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLndpbmRvdy5qcwpA
QCAtMCwwICsxLDI5IEBACisvLyBNRVRBOiBzY3JpcHQ9cmVzb3VyY2VzL3V0aWxzLmpzCisvLyBN
RVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworCitjb25zdCBvbmxvYWQgPSBuZXcgUHJvbWlz
ZShyID0+IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcikpOworCisvLyBJdCdzIHdl
aXJkIHRoYXQgYnJvd3NlcnMgZG8gdGhpcywgYnV0IGl0IHNob3VsZCBjb250aW51ZSB0byB3b3Jr
LgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBsb2FkU2NyaXB0KCdyZXNvdXJj
ZXMvcGFydGlhbC1zY3JpcHQucHk/cHJldGVuZC1vZmZzZXQ9OTAwMDAnKTsKKyAgYXNzZXJ0X3Ry
dWUoc2VsZi5zY3JpcHRFeGVjdXRlZCk7Cit9LCBgU2NyaXB0IGV4ZWN1dGVkIGZyb20gcGFydGlh
bCByZXNwb25zZWApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICBjb25zdCB3YXZV
UkwgPSBuZXcgVVJMKCdyZXNvdXJjZXMvbG9uZy13YXYucHknLCBsb2NhdGlvbik7CisgIGNvbnN0
IHN0YXNoVGFrZVVSTCA9IG5ldyBVUkwoJ3Jlc291cmNlcy9zdGFzaC10YWtlLnB5JywgbG9jYXRp
b24pOworICBjb25zdCBzdGFzaFRva2VuID0gdG9rZW4oKTsKKyAgd2F2VVJMLnNlYXJjaFBhcmFt
cy5zZXQoJ2FjY2VwdC1lbmNvZGluZy1rZXknLCBzdGFzaFRva2VuKTsKKyAgc3Rhc2hUYWtlVVJM
LnNlYXJjaFBhcmFtcy5zZXQoJ2tleScsIHN0YXNoVG9rZW4pOworCisgIC8vIFRoZSB0ZXN0aW5n
IGZyYW1ld29yayB3YWl0cyBmb3Igd2luZG93IG9ubG9hZC4gSWYgdGhlIGF1ZGlvIGVsZW1lbnQK
KyAgLy8gaXMgYXBwZW5kZWQgYmVmb3JlIG9ubG9hZCwgaXQgZXh0ZW5kcyBpdCwgYW5kIHRoZSB0
ZXN0IHRpbWVzIG91dC4KKyAgYXdhaXQgb25sb2FkOworCisgIGNvbnN0IGF1ZGlvID0gYXBwZW5k
QXVkaW8oZG9jdW1lbnQsIHdhdlVSTCk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gYXVkaW8u
YWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCByKSk7CisgIGF1ZGlvLnJlbW92ZSgpOworCisg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goc3Rhc2hUYWtlVVJMKTsKKyAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCByZXNwb25zZS5qc29uKCksICdpZGVudGl0eScsIGBFeHBlY3QgaWRlbnRpdHkg
YWNjZXB0LWVuY29kaW5nIG9uIG1lZGlhIHJlcXVlc3RgKTsKK30sIGBGZXRjaCB3aXRoIHJhbmdl
IGhlYWRlciB3aWxsIGJlIHNlbnQgd2l0aCBBY2NlcHQtRW5jb2Rpbmc6IGlkZW50aXR5YCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3JhbmdlL3Jlc291cmNlcy9iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvYmFzaWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZTc2ZWRkNjViN2JhZjUzMTZmYzlkMGM0ZGE1OWEzNTAyZTRjMjdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9yYW5nZS9yZXNvdXJjZXMvYmFzaWMuaHRtbApAQCAtMCwwICsxIEBACis8IURPQ1RZUEUg
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvbG9uZy13
YXYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWRmMjhlYjc0MWU2NzAwNDYxNzY3Nzc5NTVjNWJkMzQ2OTM4MTU0
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5CkBAIC0wLDAgKzEsMTI4
IEBACisiIiIKK1RoaXMgZ2VuZXJhdGVzIGEgMzAgbWludXRlIHNpbGVudCB3YXYsIGFuZCBpcyBj
YXBhYmxlIG9mCityZXNwb25kaW5nIHRvIFJhbmdlIHJlcXVlc3RzLgorIiIiCitpbXBvcnQgdGlt
ZQoraW1wb3J0IHJlCitpbXBvcnQgc3RydWN0CisKKworZGVmIGNyZWF0ZV93YXZfaGVhZGVyKHNh
bXBsZV9yYXRlLCBiaXRfZGVwdGgsIGNoYW5uZWxzLCBkdXJhdGlvbik6CisgICAgYnl0ZXNfcGVy
X3NhbXBsZSA9IGJpdF9kZXB0aCAvIDgKKyAgICBibG9ja19hbGlnbiA9IGJ5dGVzX3Blcl9zYW1w
bGUgKiBjaGFubmVscworICAgIGJ5dGVfcmF0ZSA9IHNhbXBsZV9yYXRlICogYmxvY2tfYWxpZ24K
KyAgICBzdWJfY2h1bmtfMl9zaXplID0gZHVyYXRpb24gKiBieXRlX3JhdGUKKworICAgIGRhdGEg
PSBiJycKKyAgICAjIENodW5rSUQKKyAgICBkYXRhICs9IGInUklGRicKKyAgICAjIENodW5rU2l6
ZQorICAgIGRhdGEgKz0gc3RydWN0LnBhY2soJzxMJywgMzYgKyBzdWJfY2h1bmtfMl9zaXplKQor
ICAgICMgRm9ybWF0CisgICAgZGF0YSArPSBiJ1dBVkUnCisgICAgIyBTdWJjaHVuazFJRAorICAg
IGRhdGEgKz0gYidmbXQgJworICAgICMgU3ViY2h1bmsxU2l6ZQorICAgIGRhdGEgKz0gc3RydWN0
LnBhY2soJzxMJywgMTYpCisgICAgIyBBdWRpb0Zvcm1hdAorICAgIGRhdGEgKz0gc3RydWN0LnBh
Y2soJzxIJywgMSkKKyAgICAjIE51bUNoYW5uZWxzCisgICAgZGF0YSArPSBzdHJ1Y3QucGFjaygn
PEgnLCBjaGFubmVscykKKyAgICAjIFNhbXBsZVJhdGUKKyAgICBkYXRhICs9IHN0cnVjdC5wYWNr
KCc8TCcsIHNhbXBsZV9yYXRlKQorICAgICMgQnl0ZVJhdGUKKyAgICBkYXRhICs9IHN0cnVjdC5w
YWNrKCc8TCcsIGJ5dGVfcmF0ZSkKKyAgICAjIEJsb2NrQWxpZ24KKyAgICBkYXRhICs9IHN0cnVj
dC5wYWNrKCc8SCcsIGJsb2NrX2FsaWduKQorICAgICMgQml0c1BlclNhbXBsZQorICAgIGRhdGEg
Kz0gc3RydWN0LnBhY2soJzxIJywgYml0X2RlcHRoKQorICAgICMgU3ViY2h1bmsySUQKKyAgICBk
YXRhICs9IGInZGF0YScKKyAgICAjIFN1YmNodW5rMlNpemUKKyAgICBkYXRhICs9IHN0cnVjdC5w
YWNrKCc8TCcsIHN1Yl9jaHVua18yX3NpemUpCisKKyAgICByZXR1cm4gZGF0YQorCisKK2RlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVu
dC1UeXBlIiwgImF1ZGlvL3dhdiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkFjY2VwdC1S
YW5nZXMiLCAiYnl0ZXMiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDYWNoZS1Db250cm9s
IiwgIm5vLWNhY2hlIikKKworICAgIHJhbmdlX2hlYWRlciA9IHJlcXVlc3QuaGVhZGVycy5nZXQo
J1JhbmdlJywgJycpCisgICAgcmFuZ2VfaGVhZGVyX21hdGNoID0gcmFuZ2VfaGVhZGVyIGFuZCBy
ZS5zZWFyY2gocideYnl0ZXM9KFxkKiktKFxkKikkJywgcmFuZ2VfaGVhZGVyKQorICAgIHJhbmdl
X3JlY2VpdmVkX2tleSA9IHJlcXVlc3QuR0VULmZpcnN0KCdyYW5nZS1yZWNlaXZlZC1rZXknLCAn
JykKKyAgICBhY2NlcHRfZW5jb2Rpbmdfa2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoJ2FjY2VwdC1l
bmNvZGluZy1rZXknLCAnJykKKworICAgIGlmIHJhbmdlX3JlY2VpdmVkX2tleSBhbmQgcmFuZ2Vf
aGVhZGVyOgorICAgICAgICAjIFJlbW92ZSBhbnkgY3VycmVudCB2YWx1ZQorICAgICAgICByZXF1
ZXN0LnNlcnZlci5zdGFzaC50YWtlKHJhbmdlX3JlY2VpdmVkX2tleSwgJy9mZXRjaC9yYW5nZS8n
KQorICAgICAgICAjIFRoaXMgaXMgbGF0ZXIgY29sbGVjdGVkIHVzaW5nIHN0YXNoLXRha2UucHkK
KyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHJhbmdlX3JlY2VpdmVkX2tleSwgJ3Jh
bmdlLWhlYWRlci1yZWNlaXZlZCcsICcvZmV0Y2gvcmFuZ2UvJykKKworICAgIGlmIGFjY2VwdF9l
bmNvZGluZ19rZXk6CisgICAgICAgICMgUmVtb3ZlIGFueSBjdXJyZW50IHZhbHVlCisgICAgICAg
IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UoCisgICAgICAgICAgICBhY2NlcHRfZW5jb2Rpbmdf
a2V5LAorICAgICAgICAgICAgJy9mZXRjaC9yYW5nZS8nCisgICAgICAgICkKKyAgICAgICAgIyBU
aGlzIGlzIGxhdGVyIGNvbGxlY3RlZCB1c2luZyBzdGFzaC10YWtlLnB5CisgICAgICAgIHJlcXVl
c3Quc2VydmVyLnN0YXNoLnB1dCgKKyAgICAgICAgICAgIGFjY2VwdF9lbmNvZGluZ19rZXksCisg
ICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdBY2NlcHQtRW5jb2RpbmcnLCAnJyksCisg
ICAgICAgICAgICAnL2ZldGNoL3JhbmdlLycKKyAgICAgICAgKQorCisgICAgIyBBdWRpbyBkZXRh
aWxzCisgICAgc2FtcGxlX3JhdGUgPSA4MDAwCisgICAgYml0X2RlcHRoID0gOAorICAgIGNoYW5u
ZWxzID0gMQorICAgIGR1cmF0aW9uID0gNjAgKiA1CisKKyAgICB0b3RhbF9sZW5ndGggPSAoc2Ft
cGxlX3JhdGUgKiBiaXRfZGVwdGggKiBjaGFubmVscyAqIGR1cmF0aW9uKSAvIDgKKyAgICBieXRl
c19yZW1haW5pbmdfdG9fc2VuZCA9IHRvdGFsX2xlbmd0aAorICAgIGluaXRpYWxfd3JpdGUgPSAn
JworCisgICAgaWYgcmFuZ2VfaGVhZGVyX21hdGNoOgorICAgICAgICByZXNwb25zZS5zdGF0dXMg
PSAyMDYKKyAgICAgICAgc3RhcnQsIGVuZCA9IHJhbmdlX2hlYWRlcl9tYXRjaC5ncm91cHMoKQor
CisgICAgICAgIHN0YXJ0ID0gaW50KHN0YXJ0KQorICAgICAgICBlbmQgPSBpbnQoZW5kKSBpZiBl
bmQgZWxzZSAwCisKKyAgICAgICAgaWYgZW5kOgorICAgICAgICAgICAgYnl0ZXNfcmVtYWluaW5n
X3RvX3NlbmQgPSAoZW5kICsgMSkgLSBzdGFydAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
Ynl0ZXNfcmVtYWluaW5nX3RvX3NlbmQgPSB0b3RhbF9sZW5ndGggLSBzdGFydAorCisgICAgICAg
IHdhdl9oZWFkZXIgPSBjcmVhdGVfd2F2X2hlYWRlcihzYW1wbGVfcmF0ZSwgYml0X2RlcHRoLCBj
aGFubmVscywgZHVyYXRpb24pCisKKyAgICAgICAgaWYgc3RhcnQgPCBsZW4od2F2X2hlYWRlcik6
CisgICAgICAgICAgICBpbml0aWFsX3dyaXRlID0gd2F2X2hlYWRlcltzdGFydDpdCisKKyAgICAg
ICAgICAgIGlmIGJ5dGVzX3JlbWFpbmluZ190b19zZW5kIDwgbGVuKGluaXRpYWxfd3JpdGUpOgor
ICAgICAgICAgICAgICAgIGluaXRpYWxfd3JpdGUgPSBpbml0aWFsX3dyaXRlWzA6Ynl0ZXNfcmVt
YWluaW5nX3RvX3NlbmRdCisKKyAgICAgICAgY29udGVudF9yYW5nZSA9ICJieXRlcyB7fS17fS97
fSIuZm9ybWF0KHN0YXJ0LCBlbmQgb3IgdG90YWxfbGVuZ3RoIC0gMSwgdG90YWxfbGVuZ3RoKQor
CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVJhbmdlIiwgY29udGVudF9y
YW5nZSkKKyAgICBlbHNlOgorICAgICAgICBpbml0aWFsX3dyaXRlID0gY3JlYXRlX3dhdl9oZWFk
ZXIoc2FtcGxlX3JhdGUsIGJpdF9kZXB0aCwgY2hhbm5lbHMsIGR1cmF0aW9uKQorCisgICAgcmVz
cG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtTGVuZ3RoIiwgYnl0ZXNfcmVtYWluaW5nX3RvX3Nl
bmQpCisKKyAgICByZXNwb25zZS53cml0ZV9zdGF0dXNfaGVhZGVycygpCisgICAgcmVzcG9uc2Uu
d3JpdGVyLndyaXRlKGluaXRpYWxfd3JpdGUpCisKKyAgICBieXRlc19yZW1haW5pbmdfdG9fc2Vu
ZCAtPSBsZW4oaW5pdGlhbF93cml0ZSkKKworICAgIHdoaWxlIGJ5dGVzX3JlbWFpbmluZ190b19z
ZW5kID4gMDoKKyAgICAgICAgaWYgbm90IHJlc3BvbnNlLndyaXRlci5mbHVzaCgpOgorICAgICAg
ICAgICAgYnJlYWsKKworICAgICAgICB0b19zZW5kID0gYidceDAwJyAqIG1pbihieXRlc19yZW1h
aW5pbmdfdG9fc2VuZCwgc2FtcGxlX3JhdGUpCisgICAgICAgIGJ5dGVzX3JlbWFpbmluZ190b19z
ZW5kIC09IGxlbih0b19zZW5kKQorCisgICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSh0b19z
ZW5kKQorICAgICAgICAjIFRocm90dGxlIHRoZSBzdHJlYW0KKyAgICAgICAgdGltZS5zbGVlcCgw
LjUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9wYXJ0aWFsLXNjcmlwdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3Bh
cnRpYWwtc2NyaXB0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViNjQyYzYwMWQ4OWRjZDMwNjMyMDc0ZDg3NzI1
MmIwYmJiMDdlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9wYXJ0aWFsLXNjcmlwdC5w
eQpAQCAtMCwwICsxLDMwIEBACisiIiIKK1RoaXMgZ2VuZXJhdGVzIGEgcGFydGlhbCByZXNwb25z
ZSBjb250YWluaW5nIHZhbGlkIEphdmFTY3JpcHQuCisiIiIKKworCitkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CisgICAgcmVxdWlyZV9yYW5nZSA9IHJlcXVlc3QuR0VULmZpcnN0KCdyZXF1
aXJlLXJhbmdlJywgJycpCisgICAgcHJldGVuZF9vZmZzZXQgPSBpbnQocmVxdWVzdC5HRVQuZmly
c3QoJ3ByZXRlbmQtb2Zmc2V0JywgJzAnKSkKKyAgICByYW5nZV9oZWFkZXIgPSByZXF1ZXN0Lmhl
YWRlcnMuZ2V0KCdSYW5nZScsICcnKQorCisgICAgaWYgcmVxdWlyZV9yYW5nZSBhbmQgbm90IHJh
bmdlX2hlYWRlcjoKKyAgICAgICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQxMiwgIlJhbmdlIGhlYWRl
ciByZXF1aXJlZCIpCisgICAgICAgIHJlc3BvbnNlLndyaXRlKCkKKyAgICAgICAgcmV0dXJuCisK
KyAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKQor
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJBY2NlcHQtUmFuZ2VzIiwgImJ5dGVzIikKKyAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldCgiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSIpCisgICAgcmVz
cG9uc2Uuc3RhdHVzID0gMjA2CisKKyAgICB0b19zZW5kID0gJ3NlbGYuc2NyaXB0RXhlY3V0ZWQg
PSB0cnVlOycKKyAgICBsZW5ndGggPSBsZW4odG9fc2VuZCkKKworICAgIGNvbnRlbnRfcmFuZ2Ug
PSAiYnl0ZXMge30te30ve30iLmZvcm1hdCgKKyAgICAgICAgcHJldGVuZF9vZmZzZXQsIHByZXRl
bmRfb2Zmc2V0ICsgbGVuZ3RoIC0gMSwgcHJldGVuZF9vZmZzZXQgKyBsZW5ndGgpCisKKyAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1SYW5nZSIsIGNvbnRlbnRfcmFuZ2UpCisgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtTGVuZ3RoIiwgbGVuZ3RoKQorCisgICAgcmVz
cG9uc2UuY29udGVudCA9IHRvX3NlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3JhbmdlLXN3Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5n
ZS9yZXNvdXJjZXMvcmFuZ2Utc3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MGMwYzQ3MWQzZDVmMzZjNGFi
YTRjYzU4ZGNkNTJjMzhhMDhkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3JhbmdlLXN3
LmpzCkBAIC0wLDAgKzEsMTU5IEBACitpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzJyk7CisKK3NldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworZnVuY3Rpb24g
YXNzZXJ0X3JhbmdlX3JlcXVlc3QocmVxdWVzdCwgZXhwZWN0ZWRSYW5nZUhlYWRlciwgbmFtZSkg
eworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoJ1JhbmdlJyksIGV4cGVjdGVk
UmFuZ2VIZWFkZXIsIG5hbWUpOworfQorCithc3luYyBmdW5jdGlvbiBicm9hZGNhc3QobXNnKSB7
CisgIGZvciAoY29uc3QgY2xpZW50IG9mIGF3YWl0IGNsaWVudHMubWF0Y2hBbGwoKSkgeworICAg
IGNsaWVudC5wb3N0TWVzc2FnZShtc2cpOworICB9Cit9CisKK2FkZEV2ZW50TGlzdGVuZXIoJ2Zl
dGNoJywgZXZlbnQgPT4geworICAvKiogQHR5cGUgUmVxdWVzdCAqLworICBjb25zdCByZXF1ZXN0
ID0gZXZlbnQucmVxdWVzdDsKKyAgY29uc3QgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7Cisg
IGNvbnN0IGFjdGlvbiA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCdhY3Rpb24nKTsKKworICBzd2l0
Y2ggKGFjdGlvbikgeworICAgIGNhc2UgJ3JhbmdlLWhlYWRlci1maWx0ZXItdGVzdCc6CisgICAg
ICByYW5nZUhlYWRlckZpbHRlclRlc3QocmVxdWVzdCk7CisgICAgICByZXR1cm47CisgICAgY2Fz
ZSAncmFuZ2UtaGVhZGVyLXBhc3N0aHJvdWdoLXRlc3QnOgorICAgICAgcmFuZ2VIZWFkZXJQYXNz
dGhyb3VnaFRlc3QoZXZlbnQpOworICAgICAgcmV0dXJuOworICAgIGNhc2UgJ3N0b3JlLXJhbmdl
ZC1yZXNwb25zZSc6CisgICAgICBzdG9yZVJhbmdlZFJlc3BvbnNlKGV2ZW50KTsKKyAgICAgIHJl
dHVybjsKKyAgICBjYXNlICd1c2Utc3RvcmVkLXJhbmdlZC1yZXNwb25zZSc6CisgICAgICB1c2VT
dG9yZWRSYW5nZVJlc3BvbnNlKGV2ZW50KTsKKyAgICAgIHJldHVybjsKKyAgICBjYXNlICdicm9h
ZGNhc3QtYWNjZXB0LWVuY29kaW5nJzoKKyAgICAgIGJyb2FkY2FzdEFjY2VwdEVuY29kaW5nKGV2
ZW50KTsKKyAgICAgIHJldHVybjsKKyAgfQorfSk7CisKKy8qKgorICogQHBhcmFtIHtSZXF1ZXN0
fSByZXF1ZXN0CisgKi8KK2Z1bmN0aW9uIHJhbmdlSGVhZGVyRmlsdGVyVGVzdChyZXF1ZXN0KSB7
CisgIGNvbnN0IHJhbmdlVmFsdWUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdSYW5nZScpOworCisg
IHRlc3QoKCkgPT4geworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0KG5ldyBSZXF1ZXN0KHJlcXVl
c3QpLCByYW5nZVZhbHVlLCBgVW50YW1wZXJlZGApOworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0
KG5ldyBSZXF1ZXN0KHJlcXVlc3QsIHt9KSwgcmFuZ2VWYWx1ZSwgYFVudGFtcGVyZWQgKG5vIGlu
aXQgcHJvcHMgc2V0KWApOworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0KG5ldyBSZXF1ZXN0KHJl
cXVlc3QsIHsgX19mb286ICdiYXInIH0pLCByYW5nZVZhbHVlLCBgVW50YW1wZXJlZCAob25seSBp
bnZhbGlkIHByb3BzIHNldClgKTsKKyAgICBhc3NlcnRfcmFuZ2VfcmVxdWVzdChuZXcgUmVxdWVz
dChyZXF1ZXN0LCB7IG1vZGU6ICdjb3JzJyB9KSwgcmFuZ2VWYWx1ZSwgYE1vcmUgcGVybWlzc2l2
ZSBtb2RlYCk7CisgICAgYXNzZXJ0X3JhbmdlX3JlcXVlc3QocmVxdWVzdC5jbG9uZSgpLCByYW5n
ZVZhbHVlLCBgQ2xvbmVgKTsKKyAgfSwgIlJhbmdlIGhlYWRlcnMgY29ycmVjdGx5IHByZXNlcnZl
ZCIpOworCisgIHRlc3QoKCkgPT4geworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0KG5ldyBSZXF1
ZXN0KHJlcXVlc3QsIHsgaGVhZGVyczogeyBSYW5nZTogJ2ZvbycgfSB9KSwgbnVsbCwgYFRhbXBl
cmVkIC0gcmFuZ2UgaGVhZGVyIHNldGApOworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0KG5ldyBS
ZXF1ZXN0KHJlcXVlc3QsIHsgaGVhZGVyczoge30gfSksIG51bGwsIGBUYW1wZXJlZCAtIGVtcHR5
IGhlYWRlcnMgc2V0YCk7CisgICAgYXNzZXJ0X3JhbmdlX3JlcXVlc3QobmV3IFJlcXVlc3QocmVx
dWVzdCwgeyBtb2RlOiAnbm8tY29ycycgfSksIG51bGwsIGBUYW1wZXJlZCDigJMgbW9kZSBzZXRg
KTsKKyAgICBhc3NlcnRfcmFuZ2VfcmVxdWVzdChuZXcgUmVxdWVzdChyZXF1ZXN0LCB7IGNhY2hl
OiAnbm8tY2FjaGUnIH0pLCBudWxsLCBgVGFtcGVyZWQg4oCTIGNhY2hlIG1vZGUgc2V0YCk7Cisg
IH0sICJSYW5nZSBoZWFkZXJzIGNvcnJlY3RseSByZW1vdmVkIik7CisKKyAgdGVzdCgoKSA9PiB7
CisgICAgbGV0IGhlYWRlcnM7CisKKyAgICBoZWFkZXJzID0gbmV3IFJlcXVlc3QocmVxdWVzdCku
aGVhZGVyczsKKyAgICBoZWFkZXJzLmRlbGV0ZSgnZG9lcy1ub3QtZXhpc3QnKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCByYW5nZVZhbHVlLCBgUHJlc2VydmVkIGlm
IG5vIGhlYWRlciBhY3R1YWxseSByZW1vdmVkYCk7CisKKyAgICBoZWFkZXJzID0gbmV3IFJlcXVl
c3QocmVxdWVzdCkuaGVhZGVyczsKKyAgICBoZWFkZXJzLmFwcGVuZCgnZm9vJywgJ2JhcicpOwor
ICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksIHJhbmdlVmFsdWUsIGBQcmVz
ZXJ2ZWQgaWYgc2lsZW50LWZhaWx1cmUgb24gYXBwZW5kIChkdWUgdG8gcmVxdWVzdC1uby1jb3Jz
IGd1YXJkKWApOworCisgICAgaGVhZGVycyA9IG5ldyBSZXF1ZXN0KHJlcXVlc3QpLmhlYWRlcnM7
CisgICAgaGVhZGVycy5zZXQoJ2ZvbycsICdiYXInKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRl
cnMuZ2V0KCdSYW5nZScpLCByYW5nZVZhbHVlLCBgUHJlc2VydmVkIGlmIHNpbGVudC1mYWlsdXJl
IG9uIHNldCAoZHVlIHRvIHJlcXVlc3Qtbm8tY29ycyBndWFyZClgKTsKKworICAgIGhlYWRlcnMg
PSBuZXcgUmVxdWVzdChyZXF1ZXN0KS5oZWFkZXJzOworICAgIGhlYWRlcnMuYXBwZW5kKCdSYW5n
ZScsICdmb28nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCByYW5n
ZVZhbHVlLCBgUHJlc2VydmVkIGlmIHNpbGVudC1mYWlsdXJlIG9uIGFwcGVuZCAoZHVlIHRvIHJl
cXVlc3Qtbm8tY29ycyBndWFyZClgKTsKKworICAgIGhlYWRlcnMgPSBuZXcgUmVxdWVzdChyZXF1
ZXN0KS5oZWFkZXJzOworICAgIGhlYWRlcnMuc2V0KCdSYW5nZScsICdmb28nKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCByYW5nZVZhbHVlLCBgUHJlc2VydmVkIGlm
IHNpbGVudC1mYWlsdXJlIG9uIHNldCAoZHVlIHRvIHJlcXVlc3Qtbm8tY29ycyBndWFyZClgKTsK
KworICAgIGhlYWRlcnMgPSBuZXcgUmVxdWVzdChyZXF1ZXN0KS5oZWFkZXJzOworICAgIGhlYWRl
cnMuYXBwZW5kKCdBY2NlcHQnLCAnd2hhdGV2ZXInKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRl
cnMuZ2V0KCdSYW5nZScpLCBudWxsLCBgU3RyaXBwZWQgaWYgaGVhZGVyIHN1Y2Nlc3NmdWxseSBh
cHBlbmRlZGApOworCisgICAgaGVhZGVycyA9IG5ldyBSZXF1ZXN0KHJlcXVlc3QpLmhlYWRlcnM7
CisgICAgaGVhZGVycy5zZXQoJ0FjY2VwdCcsICd3aGF0ZXZlcicpOworICAgIGFzc2VydF9lcXVh
bHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksIG51bGwsIGBTdHJpcHBlZCBpZiBoZWFkZXIgc3VjY2Vz
c2Z1bGx5IHNldGApOworCisgICAgaGVhZGVycyA9IG5ldyBSZXF1ZXN0KHJlcXVlc3QpLmhlYWRl
cnM7CisgICAgaGVhZGVycy5kZWxldGUoJ0FjY2VwdCcpOworICAgIGFzc2VydF9lcXVhbHMoaGVh
ZGVycy5nZXQoJ1JhbmdlJyksIG51bGwsIGBTdHJpcHBlZCBpZiBoZWFkZXIgc3VjY2Vzc2Z1bGx5
IGRlbGV0ZWRgKTsKKworICAgIGhlYWRlcnMgPSBuZXcgUmVxdWVzdChyZXF1ZXN0KS5oZWFkZXJz
OworICAgIGhlYWRlcnMuZGVsZXRlKCdSYW5nZScpOworICAgIGFzc2VydF9lcXVhbHMoaGVhZGVy
cy5nZXQoJ1JhbmdlJyksIG51bGwsIGBTdHJpcHBlZCBpZiByYW5nZSBoZWFkZXIgc3VjY2Vzc2Z1
bGx5IGRlbGV0ZWRgKTsKKyAgfSwgIkhlYWRlcnMgY29ycmVjdGx5IGZpbHRlcmVkIik7CisKKyAg
ZG9uZSgpOworfQorCitmdW5jdGlvbiByYW5nZUhlYWRlclBhc3N0aHJvdWdoVGVzdChldmVudCkg
eworICAvKiogQHR5cGUgUmVxdWVzdCAqLworICBjb25zdCByZXF1ZXN0ID0gZXZlbnQucmVxdWVz
dDsKKyAgY29uc3QgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7CisgIGNvbnN0IGtleSA9IHVy
bC5zZWFyY2hQYXJhbXMuZ2V0KCdyYW5nZS1yZWNlaXZlZC1rZXknKTsKKworICBldmVudC53YWl0
VW50aWwobmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgp
ID0+IHsKKyAgICAgIGF3YWl0IGZldGNoKGV2ZW50LnJlcXVlc3QpOworICAgICAgY29uc3QgcmVz
cG9uc2UgPSBhd2FpdCBmZXRjaCgnc3Rhc2gtdGFrZS5weT9rZXk9JyArIGtleSk7CisgICAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IHJlc3BvbnNlLmpzb24oKSwgJ3JhbmdlLWhlYWRlci1yZWNlaXZl
ZCcpOworICAgICAgcmVzb2x2ZSgpOworICAgIH0sIGBJbmNsdWRlIHJhbmdlIGhlYWRlciBpbiBu
ZXR3b3JrIHJlcXVlc3RgKTsKKworICAgIGRvbmUoKTsKKyAgfSkpOworCisgIC8vIEp1c3Qgc2Vu
ZCBiYWNrIGFueSByZXNwb25zZSwgaXQgaXNuJ3QgaW1wb3J0YW50IGZvciB0aGUgdGVzdC4KKyAg
ZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCcnKSk7Cit9CisKK2xldCBzdG9yZWRSYW5n
ZVJlc3BvbnNlUDsKKworZnVuY3Rpb24gc3RvcmVSYW5nZWRSZXNwb25zZShldmVudCkgeworICAv
KiogQHR5cGUgUmVxdWVzdCAqLworICBjb25zdCByZXF1ZXN0ID0gZXZlbnQucmVxdWVzdDsKKyAg
Y29uc3QgaWQgPSBuZXcgVVJMKHJlcXVlc3QudXJsKS5zZWFyY2hQYXJhbXMuZ2V0KCdpZCcpOwor
CisgIHN0b3JlZFJhbmdlUmVzcG9uc2VQID0gZmV0Y2goZXZlbnQucmVxdWVzdCk7CisgIGJyb2Fk
Y2FzdCh7IGlkIH0pOworCisgIC8vIEp1c3Qgc2VuZCBiYWNrIGFueSByZXNwb25zZSwgaXQgaXNu
J3QgaW1wb3J0YW50IGZvciB0aGUgdGVzdC4KKyAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3Bv
bnNlKCcnKSk7Cit9CisKK2Z1bmN0aW9uIHVzZVN0b3JlZFJhbmdlUmVzcG9uc2UoZXZlbnQpIHsK
KyAgZXZlbnQucmVzcG9uZFdpdGgoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgY29uc3QgcmVzcG9u
c2UgPSBhd2FpdCBzdG9yZWRSYW5nZVJlc3BvbnNlUDsKKyAgICBpZiAoIXJlc3BvbnNlKSB0aHJv
dyBFcnJvcigiRXhwZWN0ZWQgc3RvcmVkIHJhbmdlIHJlc3BvbnNlIik7CisgICAgcmV0dXJuIHJl
c3BvbnNlLmNsb25lKCk7CisgIH0oKSk7Cit9CisKK2Z1bmN0aW9uIGJyb2FkY2FzdEFjY2VwdEVu
Y29kaW5nKGV2ZW50KSB7CisgIC8qKiBAdHlwZSBSZXF1ZXN0ICovCisgIGNvbnN0IHJlcXVlc3Qg
PSBldmVudC5yZXF1ZXN0OworICBjb25zdCBpZCA9IG5ldyBVUkwocmVxdWVzdC51cmwpLnNlYXJj
aFBhcmFtcy5nZXQoJ2lkJyk7CisKKyAgYnJvYWRjYXN0KHsKKyAgICBpZCwKKyAgICBhY2NlcHRF
bmNvZGluZzogcmVxdWVzdC5oZWFkZXJzLmdldCgnQWNjZXB0LUVuY29kaW5nJykKKyAgfSk7CisK
KyAgLy8gSnVzdCBzZW5kIGJhY2sgYW55IHJlc3BvbnNlLCBpdCBpc24ndCBpbXBvcnRhbnQgZm9y
IHRoZSB0ZXN0LgorICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJycpKTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvcmFuZ2UvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9zdGFzaC10YWtlLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRlYzFmZTU3NjQ3ZjQxZWE4MTk2ZGFkMTAyODE1ZDA2ZjhiMTEwOWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9zdGFzaC10YWtlLnB5CkBAIC0wLDAgKzEsNyBAQAor
ZnJvbSB3cHRzZXJ2ZS5oYW5kbGVycyBpbXBvcnQganNvbl9oYW5kbGVyCisKKworQGpzb25faGFu
ZGxlcgorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGtleSA9IHJlcXVlc3QuR0VU
LmZpcnN0KCJrZXkiKQorICAgIHJldHVybiByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSwg
Jy9mZXRjaC9yYW5nZS8nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdXRpbHMuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNl
cy91dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmVkNzM3ZjYzZThlZWUyNmEzMDZjNzBhY2IwNTg5ZTQy
NGRiMzVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdXRpbHMuanMKQEAgLTAsMCArMSwy
NCBAQAorZnVuY3Rpb24gbG9hZFNjcmlwdCh1cmwsIHsgZG9jID0gZG9jdW1lbnQgfT17fSkgewor
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgIGNvbnN0IHNj
cmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICBzY3JpcHQub25sb2FkID0g
KCkgPT4gcmVzb2x2ZSgpOworICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KEVycm9y
KCJTY3JpcHQgbG9hZCBmYWlsZWQiKSk7CisgICAgc2NyaXB0LnNyYyA9IHVybDsKKyAgICBkb2Mu
Ym9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICB9KQorfQorCisvKioKKyAqCisgKiBAcGFyYW0g
e0RvY3VtZW50fSBkb2N1bWVudAorICogQHBhcmFtIHtzdHJpbmd8VVJMfSB1cmwKKyAqIEByZXR1
cm5zIHtIVE1MQXVkaW9FbGVtZW50fQorICovCitmdW5jdGlvbiBhcHBlbmRBdWRpbyhkb2N1bWVu
dCwgdXJsKSB7CisgIGNvbnN0IGF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXVkaW8n
KTsKKyAgYXVkaW8ubXV0ZWQgPSB0cnVlOworICBhdWRpby5zcmMgPSB1cmw7CisgIGF1ZGlvLnBy
ZWxvYWQgPSB0cnVlOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGF1ZGlvKTsKKyAgcmV0
dXJuIGF1ZGlvOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291
cmNlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODhkY2MwNzkwZjE3OGI5OGJkOTQxMjgw
Nzc4NjBmMTNkNTc3NDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvYmFzaWMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3Vy
Y2VzL2xvbmctd2F2LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvcGFydGlhbC1zY3JpcHQucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9y
YW5nZS1zdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy91dGlscy5qcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3N3Lmh0dHBzLndpbmRvdy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYWFlZTg2NzM0ZTkzYmI1MTQwOTVlMzQ2NzFhNTdlMDBiY2JjZDk4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9yYW5nZS9zdy5odHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwxNTEgQEAKKy8vIE1FVEE6IHNj
cmlwdD0uLi8uLi8uLi9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBN
RVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0
PXJlc291cmNlcy91dGlscy5qcworCitjb25zdCB7IFJFTU9URV9IT1NUIH0gPSBnZXRfaG9zdF9p
bmZvKCk7Citjb25zdCBCQVNFX1NDT1BFID0gJ3Jlc291cmNlcy9iYXNpYy5odG1sPyc7CisKK2Fz
eW5jIGZ1bmN0aW9uIGNsZWFudXAoKSB7CisgIGZvciAoY29uc3QgaWZyYW1lIG9mIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJy50ZXN0LWlmcmFtZScpKSB7CisgICAgaWZyYW1lLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKyAgfQorCisgIGZvciAoY29uc3QgcmVnIG9mIGF3YWl0
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKSkgeworICAgIGF3YWl0
IHJlZy51bnJlZ2lzdGVyKCk7CisgIH0KK30KKworYXN5bmMgZnVuY3Rpb24gc2V0dXBSZWdpc3Ry
YXRpb24odCwgc2NvcGUpIHsKKyAgYXdhaXQgY2xlYW51cCgpOworICBjb25zdCByZWcgPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigncmVzb3VyY2VzL3JhbmdlLXN3Lmpz
JywgeyBzY29wZSB9KTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcs
ICdhY3RpdmF0ZWQnKTsKKyAgcmV0dXJuIHJlZzsKK30KKworZnVuY3Rpb24gYXdhaXRNZXNzYWdl
KG9iaiwgaWQpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIG9iai5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHsKKyAg
ICAgIGlmIChldmVudC5kYXRhLmlkICE9PSBpZCkgcmV0dXJuOworICAgICAgb2JqLnJlbW92ZUV2
ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsaXN0ZW5lcik7CisgICAgICByZXNvbHZlKGV2ZW50LmRh
dGEpOworICAgIH0pOworICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBzY29wZSA9IEJBU0VfU0NPUEUgKyBNYXRoLnJhbmRvbSgpOworICBjb25zdCByZWcgPSBh
d2FpdCBzZXR1cFJlZ2lzdHJhdGlvbih0LCBzY29wZSk7CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0
IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgY29uc3QgdyA9IGlmcmFtZS5jb250ZW50V2luZG93Owor
CisgIC8vIFRyaWdnZXIgYSBjcm9zcy1vcmlnaW4gcmFuZ2UgcmVxdWVzdCB1c2luZyBtZWRpYQor
ICBjb25zdCB1cmwgPSBuZXcgVVJMKCdsb25nLXdhdi5weT9hY3Rpb249cmFuZ2UtaGVhZGVyLWZp
bHRlci10ZXN0Jywgdy5sb2NhdGlvbik7CisgIHVybC5ob3N0bmFtZSA9IFJFTU9URV9IT1NUOwor
ICBhcHBlbmRBdWRpbyh3LmRvY3VtZW50LCB1cmwpOworCisgIC8vIFNlZSByYW5nZUhlYWRlckZp
bHRlclRlc3QgaW4gcmVzb3VyY2VzL3JhbmdlLXN3LmpzCisgIGF3YWl0IGZldGNoX3Rlc3RzX2Zy
b21fd29ya2VyKHJlZy5hY3RpdmUpOworfSwgYERlZmVyIHJhbmdlIGhlYWRlciBmaWx0ZXIgdGVz
dHMgdG8gc2VydmljZSB3b3JrZXJgKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBj
b25zdCBzY29wZSA9IEJBU0VfU0NPUEUgKyBNYXRoLnJhbmRvbSgpOworICBjb25zdCByZWcgPSBh
d2FpdCBzZXR1cFJlZ2lzdHJhdGlvbih0LCBzY29wZSk7CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0
IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgY29uc3QgdyA9IGlmcmFtZS5jb250ZW50V2luZG93Owor
CisgIC8vIFRyaWdnZXIgYSBjcm9zcy1vcmlnaW4gcmFuZ2UgcmVxdWVzdCB1c2luZyBtZWRpYQor
ICBjb25zdCB1cmwgPSBuZXcgVVJMKCdsb25nLXdhdi5weScsIHcubG9jYXRpb24pOworICB1cmwu
c2VhcmNoUGFyYW1zLnNldCgnYWN0aW9uJywgJ3JhbmdlLWhlYWRlci1wYXNzdGhyb3VnaC10ZXN0
Jyk7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyYW5nZS1yZWNlaXZlZC1rZXknLCB0b2tlbigp
KTsKKyAgdXJsLmhvc3RuYW1lID0gUkVNT1RFX0hPU1Q7CisgIGFwcGVuZEF1ZGlvKHcuZG9jdW1l
bnQsIHVybCk7CisKKyAgLy8gU2VlIHJhbmdlSGVhZGVyUGFzc3Rocm91Z2hUZXN0IGluIHJlc291
cmNlcy9yYW5nZS1zdy5qcworICBhd2FpdCBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihyZWcuYWN0
aXZlKTsKK30sIGBEZWZlciByYW5nZSBoZWFkZXIgcGFzc3Rocm91Z2ggdGVzdHMgdG8gc2Vydmlj
ZSB3b3JrZXJgKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBzY29wZSA9
IEJBU0VfU0NPUEUgKyBNYXRoLnJhbmRvbSgpOworICBhd2FpdCBzZXR1cFJlZ2lzdHJhdGlvbih0
LCBzY29wZSk7CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAg
Y29uc3QgdyA9IGlmcmFtZS5jb250ZW50V2luZG93OworICBjb25zdCBpZCA9IE1hdGgucmFuZG9t
KCkgKyAnJzsKKyAgY29uc3Qgc3RvcmVkUmFuZ2VSZXNwb25zZSA9IGF3YWl0TWVzc2FnZSh3Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLCBpZCk7CisKKyAgLy8gVHJpZ2dlciBhIGNyb3NzLW9yaWdp
biByYW5nZSByZXF1ZXN0IHVzaW5nIG1lZGlhCisgIGNvbnN0IHVybCA9IG5ldyBVUkwoJ3BhcnRp
YWwtc2NyaXB0LnB5Jywgdy5sb2NhdGlvbik7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyZXF1
aXJlLXJhbmdlJywgJzEnKTsKKyAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2FjdGlvbicsICdzdG9y
ZS1yYW5nZWQtcmVzcG9uc2UnKTsKKyAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2lkJywgaWQpOwor
ICB1cmwuaG9zdG5hbWUgPSBSRU1PVEVfSE9TVDsKKworICBhcHBlbmRBdWRpbyh3LmRvY3VtZW50
LCB1cmwpOworCisgIGF3YWl0IHN0b3JlZFJhbmdlUmVzcG9uc2U7CisKKyAgLy8gRmV0Y2hpbmcg
c2hvdWxkIHJlamVjdAorICBjb25zdCBmZXRjaFByb21pc2UgPSB3LmZldGNoKCc/YWN0aW9uPXVz
ZS1zdG9yZWQtcmFuZ2VkLXJlc3BvbnNlJywgeyBtb2RlOiAnbm8tY29ycycgfSk7CisgIHByb21p
c2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIGZldGNoUHJvbWlzZSk7CisKKyAgLy8gU2Ny
aXB0IGxvYWRpbmcgc2hvdWxkIGVycm9yIHRvbworICBjb25zdCBsb2FkU2NyaXB0UHJvbWlzZSA9
IGxvYWRTY3JpcHQoJz9hY3Rpb249dXNlLXN0b3JlZC1yYW5nZWQtcmVzcG9uc2UnLCB7IGRvYzog
dy5kb2N1bWVudCB9KTsKKyAgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBFcnJvcigpLCBsb2FkU2Ny
aXB0UHJvbWlzZSk7CisKKyAgYXdhaXQgbG9hZFNjcmlwdFByb21pc2UuY2F0Y2goKCkgPT4ge30p
OworCisgIGFzc2VydF9mYWxzZSghIXcuc2NyaXB0RXhlY3V0ZWQsIGBQYXJ0aWFsIHJlc3BvbnNl
IHNob3VsZG4ndCBiZSBleGVjdXRlZGApOworfSwgYFJhbmdlZCByZXNwb25zZSBub3QgYWxsb3dl
ZCBmb2xsb3dpbmcgbm8tY29ycyByYW5nZWQgcmVxdWVzdGApOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHNjb3BlID0gQkFTRV9TQ09QRSArIE1hdGgucmFuZG9tKCk7Cisg
IGF3YWl0IHNldHVwUmVnaXN0cmF0aW9uKHQsIHNjb3BlKTsKKyAgY29uc3QgaWZyYW1lID0gYXdh
aXQgd2l0aF9pZnJhbWUoc2NvcGUpOworICBjb25zdCB3ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7
CisgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKSArICcnOworICBjb25zdCBzdG9yZWRSYW5nZVJl
c3BvbnNlID0gYXdhaXRNZXNzYWdlKHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIsIGlkKTsKKwor
ICAvLyBUcmlnZ2VyIGEgcmFuZ2UgcmVxdWVzdCB1c2luZyBtZWRpYQorICBjb25zdCB1cmwgPSBu
ZXcgVVJMKCdwYXJ0aWFsLXNjcmlwdC5weScsIHcubG9jYXRpb24pOworICB1cmwuc2VhcmNoUGFy
YW1zLnNldCgncmVxdWlyZS1yYW5nZScsICcxJyk7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdh
Y3Rpb24nLCAnc3RvcmUtcmFuZ2VkLXJlc3BvbnNlJyk7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0
KCdpZCcsIGlkKTsKKworICBhcHBlbmRBdWRpbyh3LmRvY3VtZW50LCB1cmwpOworCisgIGF3YWl0
IHN0b3JlZFJhbmdlUmVzcG9uc2U7CisKKyAgLy8gVGhpcyBzaG91bGQgbm90IHRocm93CisgIGF3
YWl0IHcuZmV0Y2goJz9hY3Rpb249dXNlLXN0b3JlZC1yYW5nZWQtcmVzcG9uc2UnKTsKKworICAv
LyBUaGlzIHNob3VsZG4ndCB0aHJvdyBlaXRoZXIKKyAgYXdhaXQgbG9hZFNjcmlwdCgnP2FjdGlv
bj11c2Utc3RvcmVkLXJhbmdlZC1yZXNwb25zZScsIHsgZG9jOiB3LmRvY3VtZW50IH0pOworCisg
IGFzc2VydF90cnVlKHcuc2NyaXB0RXhlY3V0ZWQsIGBQYXJ0aWFsIHJlc3BvbnNlIHNob3VsZCBi
ZSBleGVjdXRlZGApOworfSwgYE5vbi1vcGFxdWUgcmFuZ2VkIHJlc3BvbnNlIGV4ZWN1dGVkYCk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUgPSBCQVNFX1NDT1BF
ICsgTWF0aC5yYW5kb20oKTsKKyAgYXdhaXQgc2V0dXBSZWdpc3RyYXRpb24odCwgc2NvcGUpOwor
ICBjb25zdCBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7CisgIGNvbnN0IHcgPSBp
ZnJhbWUuY29udGVudFdpbmRvdzsKKyAgY29uc3QgZmV0Y2hJZCA9IE1hdGgucmFuZG9tKCkgKyAn
JzsKKyAgY29uc3QgZmV0Y2hCcm9hZGNhc3QgPSBhd2FpdE1lc3NhZ2Uody5uYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlciwgZmV0Y2hJZCk7CisgIGNvbnN0IGF1ZGlvSWQgPSBNYXRoLnJhbmRvbSgpICsg
Jyc7CisgIGNvbnN0IGF1ZGlvQnJvYWRjYXN0ID0gYXdhaXRNZXNzYWdlKHcubmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIsIGF1ZGlvSWQpOworCisgIGNvbnN0IHVybCA9IG5ldyBVUkwoJ2xvbmctd2F2
LnB5Jywgdy5sb2NhdGlvbik7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdhY3Rpb24nLCAnYnJv
YWRjYXN0LWFjY2VwdC1lbmNvZGluZycpOworICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnaWQnLCBm
ZXRjaElkKTsKKworICBhd2FpdCB3LmZldGNoKHVybCwgeworICAgIGhlYWRlcnM6IHsgUmFuZ2U6
ICdieXRlcz0wLTEwJyB9CisgIH0pOworCisgIGFzc2VydF9lcXVhbHMoKGF3YWl0IGZldGNoQnJv
YWRjYXN0KS5hY2NlcHRFbmNvZGluZywgbnVsbCwgIkFjY2VwdC1FbmNvZGluZyBzaG91bGQgbm90
IGJlIHNldCBmb3IgZmV0Y2giKTsKKworICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnaWQnLCBhdWRp
b0lkKTsKKyAgYXBwZW5kQXVkaW8ody5kb2N1bWVudCwgdXJsKTsKKworICBhc3NlcnRfZXF1YWxz
KChhd2FpdCBhdWRpb0Jyb2FkY2FzdCkuYWNjZXB0RW5jb2RpbmcsIG51bGwsICJBY2NlcHQtRW5j
b2Rpbmcgc2hvdWxkIG5vdCBiZSBzZXQgZm9yIG1lZGlhIik7Cit9LCBgQWNjZXB0LUVuY29kaW5n
IHNob3VsZCBub3QgYXBwZWFyIGluIGEgc2VydmljZSB3b3JrZXJgKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3JhbmdlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyM2JjZGJiNTJkZDdhZjI0
NWRmY2YxMzc5YmQzMTFkMGQ4ZDQ3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkuanMKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwud2luZG93
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9y
YW5nZS9zdy5odHRwcy53aW5kb3cuanMK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342113</attachid>
            <date>2018-06-06 20:23:00 -0700</date>
            <delta_ts>2018-06-06 21:03:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-186335-20180606202242.patch</filename>
            <type>text/plain</type>
            <size>35601</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM4ZTAyYTMyMmI0Yzdm
ZmQ3MDRkNzEzMDQ1NmUwOGVhNjhmZDJmNy4uYTJkOTg2YzJlYTlkZmQ3ZGIwMTJkNjBiZmE5NDRk
MWFjNDJkZWI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA2LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQWNjZXB0LUVuY29k
aW5nOiBpZGVudGl0eSB0byBSYW5nZSByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
MDgzNzE5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
VGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJh
bC5hbnkuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS53b3JrZXIuaHRtbAorCisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjp1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMpOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVBY2NlcHRFbmNvZGluZ0hlYWRlcik6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOgorCiAyMDE4LTA2LTA2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIGVy
cm9yIG1lc3NhZ2VzIGluIGNhc2UgRmV0Y2hFdmVudC5yZXNwb25kV2l0aCBoYXMgYSByZWplY3Rl
ZCBwcm9taXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCA3YzJiZjI3ZTBiODcyYTY4NTJkNDNkYjAzZWIzZWIxMWIz
ZGM2ZmVjLi5hNzAzZTVlNDBmMmE2Yjc4Y2M5M2JiN2UzN2ZjZjIxYTZkYmZmOGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTcyNyw2ICs3MjcsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVI
VFRQUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQwogICAgIH0KIAog
ICAgIHJlcXVlc3QudXBkYXRlQWNjb3JkaW5nQ2FjaGVNb2RlKCk7CisgICAgcmVxdWVzdC51cGRh
dGVBY2NlcHRFbmNvZGluZ0hlYWRlcigpOwogfQogCiBzdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbiBkZXN0aW5hdGlvbkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAKaW5kZXggMDAxMmU5NjRiMzBkZmYyNDI5YjJkYjMzMjc3Yjc1Y2RjZjQwOWMyNC4uOGQ3
YzRlYmVjM2IyMWJmOGY1ZjM5YWU1OGYyOThhNzIyZjQzZmI1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTIw
Niw2ICsyMDYsMTcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUFjY29yZGlu
Z0NhY2hlTW9kZSgpCiAgICAgfQogfQogCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6dXBk
YXRlQWNjZXB0RW5jb2RpbmdIZWFkZXIoKQoreworICAgIGlmICghbV9yZXNvdXJjZVJlcXVlc3Qu
aGFzSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpSYW5nZSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIEZJWE1FOiByZGFyOi8vcHJvYmxlbS80MDg3OTIyNS4gTWVkaWEgZW5naW5l
cyB0cmlnZ2VyaW5nIHRoZSBsb2FkIHNob3VsZCBub3Qgc2V0IHRoaXMgQWNjZXB0LUVuY29kaW5n
IGhlYWRlci4KKyAgICBBU1NFUlQoIW1fcmVzb3VyY2VSZXF1ZXN0Lmhhc0hUVFBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6QWNjZXB0RW5jb2RpbmcpIHx8IG1fb3B0aW9ucy5kZXN0aW5hdGlv
biA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpbyB8fCBtX29wdGlvbnMuZGVzdGlu
YXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6VmlkZW8pOworCisgICAgbV9yZXNv
dXJjZVJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkSWZOb3RQcmVzZW50KEhUVFBIZWFkZXJOYW1l
OjpBY2NlcHRFbmNvZGluZywgQVNDSUlMaXRlcmFsKCJpZGVudGl0eSIpKTsKK30KKwogdm9pZCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKCkK
IHsKICAgICBVUkwgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklm
TmVlZGVkKG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAppbmRleCA5MGU5NmMyMDQ2Y2U2
ZGE4YjhmZTgwNWU0NzAyYmZkMmEzZTE0Mjk3Li4zYTgyNWM3N2FmOWQxMzhkNWJlNDU3ZGJhYjYx
ZDExMWEyNGQyMmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChEb2N1bWVudCYpOwogICAgIHZvaWQgc2V0
QWNjZXB0SGVhZGVySWZOb25lKENhY2hlZFJlc291cmNlOjpUeXBlKTsKICAgICB2b2lkIHVwZGF0
ZUFjY29yZGluZ0NhY2hlTW9kZSgpOworICAgIHZvaWQgdXBkYXRlQWNjZXB0RW5jb2RpbmdIZWFk
ZXIoKTsKKwogICAgIHZvaWQgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoKTsKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIHZvaWQgYXBwbHlCbG9ja2VkU3RhdHVz
KGNvbnN0IENvbnRlbnRFeHRlbnNpb25zOjpCbG9ja2VkU3RhdHVzJiwgUGFnZSopOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDQzMGFlNGExODE1YzZjZTQ0MTIxOTgyMmViMzY3
NzM1ODY3MzBkYy4uYThlNzZkODMxMmM0ZTE3NGE5ZWZjMjE2NTcwNmU0MzI5NDgzN2ZiNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTgtMDYtMDYg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBY2NlcHQt
RW5jb2Rpbmc6IGlkZW50aXR5IHRvIFJhbmdlIHJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODYzMzUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQwODM3MTkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9n
ZW5lcmFsLmFueS5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3JhbmdlL2dlbmVyYWwuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS53b3JrZXIuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwu
d2luZG93LmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFu
Z2UvcmVzb3VyY2VzL2Jhc2ljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvbG9uZy13YXYucHk6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvcGFydGlhbC1zY3JpcHQu
cHk6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNv
dXJjZXMvcmFuZ2Utc3cuanM6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9yYW5nZS9yZXNvdXJjZXMvc3Rhc2gtdGFrZS5weTogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy91dGlscy5qczogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy93M2MtaW1w
b3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Jhbmdl
L3N3Lmh0dHBzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3JhbmdlL3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKwogMjAxOC0wNi0wNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSBlcnJvciBtZXNz
YWdlcyBpbiBjYXNlIEZldGNoRXZlbnQucmVzcG9uZFdpdGggaGFzIGEgcmVqZWN0ZWQgcHJvbWlz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQt
ZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2lt
cG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA4MTFiOTg5YzQ4Njg0YTRkMWNjZDBhM2YyMWI1
ZWUxMGMyMWYyMTBiLi5kNzcxNjg1ZGI1MzIxYTU2MGNjNzhmOWIzOWE2YmYyZGQxYmE2ZTQ0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2lt
cG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMTQ0LDYgKzE0NCw4IEBACiAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9mZWF0dXJlLXBvbGljeS9yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCiAgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9mZWF0dXJlLXBvbGljeS9yZXNvdXJjZXMvIjogImltcG9ydCIsIAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2giOiAiaW1wb3J0IiwgCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkiOiAiaW1wb3J0IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9yYW5nZSI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Z1bGxz
Y3JlZW4iOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ2FtZXBhZCI6ICJza2lw
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9nZW5lcmljLXNlbnNvciI6ICJza2lwIiwgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3JhbmdlL2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY2YTlmMzg3ZDZiNTI5ZjhjZTczMGU1MzRlZDIwMjE0OTVlMDk3MDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcg
QEAKKworUEFTUyBSYW5nZSBoZWFkZXIgc2V0dGluZyBhbGxvd2VkIGZvciBndWFyZCB0eXBlOiBu
b25lIAorUEFTUyBSYW5nZSBoZWFkZXIgc2V0dGluZyBhbGxvd2VkIGZvciBndWFyZCB0eXBlOiBy
ZXNwb25zZSAKK1BBU1MgUmFuZ2UgaGVhZGVyIHNldHRpbmcgYWxsb3dlZCBmb3IgZ3VhcmQgdHlw
ZTogcmVxdWVzdCAKK1BBU1MgUHJpdmlsZWdlZCBoZWFkZXIgbm90IGFsbG93ZWQgZm9yIGd1YXJk
IHR5cGU6IHJlcXVlc3Qtbm8tY29ycyAKK1BBU1MgRmV0Y2ggd2l0aCByYW5nZSBoZWFkZXIgd2ls
bCBiZSBzZW50IHdpdGggQWNjZXB0LUVuY29kaW5nOiBpZGVudGl0eSAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9n
ZW5lcmFsLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwu
YW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2Vu
ZXJhbC5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU2YWMxY2VlYTI1MTFkOTYwY2RiMjFiMjVhMjg0NmVi
MDkyYjhjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkuanMKQEAgLTAsMCArMSw5MCBA
QAorLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKworLy8gSGVscGVycyB0aGF0IHJl
dHVybiBoZWFkZXJzIG9iamVjdHMgd2l0aCBhIHBhcnRpY3VsYXIgZ3VhcmQKK2Z1bmN0aW9uIGhl
YWRlcnNHdWFyZE5vbmUoZmlsbCkgeworICBpZiAoZmlsbCkgcmV0dXJuIG5ldyBIZWFkZXJzKGZp
bGwpOworICByZXR1cm4gbmV3IEhlYWRlcnMoKTsKK30KKworZnVuY3Rpb24gaGVhZGVyc0d1YXJk
UmVzcG9uc2UoZmlsbCkgeworICBjb25zdCBvcHRzID0ge307CisgIGlmIChmaWxsKSBvcHRzLmhl
YWRlcnMgPSBmaWxsOworICByZXR1cm4gbmV3IFJlc3BvbnNlKCcnLCBvcHRzKS5oZWFkZXJzOwor
fQorCitmdW5jdGlvbiBoZWFkZXJzR3VhcmRSZXF1ZXN0KGZpbGwpIHsKKyAgY29uc3Qgb3B0cyA9
IHt9OworICBpZiAoZmlsbCkgb3B0cy5oZWFkZXJzID0gZmlsbDsKKyAgcmV0dXJuIG5ldyBSZXF1
ZXN0KCcuLycsIG9wdHMpLmhlYWRlcnM7Cit9CisKK2Z1bmN0aW9uIGhlYWRlcnNHdWFyZFJlcXVl
c3ROb0NvcnMoZmlsbCkgeworICBjb25zdCBvcHRzID0geyBtb2RlOiAnbm8tY29ycycgfTsKKyAg
aWYgKGZpbGwpIG9wdHMuaGVhZGVycyA9IGZpbGw7CisgIHJldHVybiBuZXcgUmVxdWVzdCgnLi8n
LCBvcHRzKS5oZWFkZXJzOworfQorCitjb25zdCBoZWFkZXJHdWFyZFR5cGVzID0gWworICBbJ25v
bmUnLCBoZWFkZXJzR3VhcmROb25lXSwKKyAgWydyZXNwb25zZScsIGhlYWRlcnNHdWFyZFJlc3Bv
bnNlXSwKKyAgWydyZXF1ZXN0JywgaGVhZGVyc0d1YXJkUmVxdWVzdF0KK107CisKK2ZvciAoY29u
c3QgW2d1YXJkVHlwZSwgY3JlYXRlSGVhZGVyc10gb2YgaGVhZGVyR3VhcmRUeXBlcykgeworICB0
ZXN0KCgpID0+IHsKKyAgICAvLyBUaGVyZSBhcmUgdGhyZWUgd2F5cyB0byBzZXQgaGVhZGVycy4K
KyAgICAvLyBGaWxsaW5nLCBhcHBlbmRpbmcsIGFuZCBzZXR0aW5nLiBUZXN0IGVhY2g6CisgICAg
bGV0IGhlYWRlcnMgPSBjcmVhdGVIZWFkZXJzKHsgUmFuZ2U6ICdmb28nIH0pOworICAgIGFzc2Vy
dF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksICdmb28nKTsKKworICAgIGhlYWRlcnMgPSBj
cmVhdGVIZWFkZXJzKCk7CisgICAgaGVhZGVycy5hcHBlbmQoJ1JhbmdlJywgJ2ZvbycpOworICAg
IGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksICdmb28nKTsKKworICAgIGhlYWRl
cnMgPSBjcmVhdGVIZWFkZXJzKCk7CisgICAgaGVhZGVycy5zZXQoJ1JhbmdlJywgJ2ZvbycpOwor
ICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksICdmb28nKTsKKyAgfSwgYFJh
bmdlIGhlYWRlciBzZXR0aW5nIGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6ICR7Z3VhcmRUeXBlfWAp
OworfQorCit0ZXN0KCgpID0+IHsKKyAgbGV0IGhlYWRlcnMgPSBoZWFkZXJzR3VhcmRSZXF1ZXN0
Tm9Db3JzKHsgUmFuZ2U6ICdmb28nIH0pOworICBhc3NlcnRfZmFsc2UoaGVhZGVycy5oYXMoJ1Jh
bmdlJykpOworCisgIGhlYWRlcnMgPSBoZWFkZXJzR3VhcmRSZXF1ZXN0Tm9Db3JzKCk7CisgIGhl
YWRlcnMuYXBwZW5kKCdSYW5nZScsICdmb28nKTsKKyAgYXNzZXJ0X2ZhbHNlKGhlYWRlcnMuaGFz
KCdSYW5nZScpKTsKKworICBoZWFkZXJzID0gaGVhZGVyc0d1YXJkUmVxdWVzdE5vQ29ycygpOwor
ICBoZWFkZXJzLnNldCgnUmFuZ2UnLCAnZm9vJyk7CisgIGFzc2VydF9mYWxzZShoZWFkZXJzLmhh
cygnUmFuZ2UnKSk7Cit9LCBgUHJpdmlsZWdlZCBoZWFkZXIgbm90IGFsbG93ZWQgZm9yIGd1YXJk
IHR5cGU6IHJlcXVlc3Qtbm8tY29yc2ApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewor
ICBjb25zdCB3YXZVUkwgPSBuZXcgVVJMKCdyZXNvdXJjZXMvbG9uZy13YXYucHknLCBsb2NhdGlv
bik7CisgIGNvbnN0IHN0YXNoVGFrZVVSTCA9IG5ldyBVUkwoJ3Jlc291cmNlcy9zdGFzaC10YWtl
LnB5JywgbG9jYXRpb24pOworCisgIGZ1bmN0aW9uIGNoYW5nZVRva2VuKCkgeworICAgIGNvbnN0
IHN0YXNoVG9rZW4gPSB0b2tlbigpOworICAgIHdhdlVSTC5zZWFyY2hQYXJhbXMuc2V0KCdhY2Nl
cHQtZW5jb2Rpbmcta2V5Jywgc3Rhc2hUb2tlbik7CisgICAgc3Rhc2hUYWtlVVJMLnNlYXJjaFBh
cmFtcy5zZXQoJ2tleScsIHN0YXNoVG9rZW4pOworICB9CisKKyAgY29uc3QgcmFuZ2VIZWFkZXJz
ID0gWworICAgICdieXRlcz0wLTEwJywKKyAgICAnZm9vPTAtMTAnLAorICAgICdmb28nLAorICAg
ICcnCisgIF07CisKKyAgZm9yIChjb25zdCByYW5nZUhlYWRlciBvZiByYW5nZUhlYWRlcnMpIHsK
KyAgICBjaGFuZ2VUb2tlbigpOworCisgICAgYXdhaXQgZmV0Y2god2F2VVJMLCB7CisgICAgICBo
ZWFkZXJzOiB7IFJhbmdlOiByYW5nZUhlYWRlciB9CisgICAgfSk7CisKKyAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IGZldGNoKHN0YXNoVGFrZVVSTCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCByZXNwb25zZS5qc29uKCksICdpZGVudGl0eScsIGBFeHBlY3QgaWRlbnRpdHkgYWNjZXB0LWVu
Y29kaW5nIGlmIHJhbmdlIGhlYWRlciBpcyAke0pTT04uc3RyaW5naWZ5KHJhbmdlSGVhZGVyKX1g
KTsKKyAgfQorfSwgYEZldGNoIHdpdGggcmFuZ2UgaGVhZGVyIHdpbGwgYmUgc2VudCB3aXRoIEFj
Y2VwdC1FbmNvZGluZzogaWRlbnRpdHlgKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNmE5ZjM4N2Q2YjUyOWY4Y2U3MzBlNTM0ZWQyMDIxNDk1ZTA5NzAzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9y
YW5nZS9nZW5lcmFsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQ
QVNTIFJhbmdlIGhlYWRlciBzZXR0aW5nIGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6IG5vbmUgCitQ
QVNTIFJhbmdlIGhlYWRlciBzZXR0aW5nIGFsbG93ZWQgZm9yIGd1YXJkIHR5cGU6IHJlc3BvbnNl
IAorUEFTUyBSYW5nZSBoZWFkZXIgc2V0dGluZyBhbGxvd2VkIGZvciBndWFyZCB0eXBlOiByZXF1
ZXN0IAorUEFTUyBQcml2aWxlZ2VkIGhlYWRlciBub3QgYWxsb3dlZCBmb3IgZ3VhcmQgdHlwZTog
cmVxdWVzdC1uby1jb3JzIAorUEFTUyBGZXRjaCB3aXRoIHJhbmdlIGhlYWRlciB3aWxsIGJlIHNl
bnQgd2l0aCBBY2NlcHQtRW5jb2Rpbmc6IGlkZW50aXR5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwu
YW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9n
ZW5lcmFsLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0
ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVy
YWwud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9yYW5nZS9nZW5lcmFsLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmU4MGQ2M2E2YjI2
M2Y2ODRjMDEyODRiODY3YzEzYTIyMjM2YThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLndp
bmRvdy5qcwpAQCAtMCwwICsxLDI5IEBACisvLyBNRVRBOiBzY3JpcHQ9cmVzb3VyY2VzL3V0aWxz
LmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworCitjb25zdCBvbmxvYWQgPSBu
ZXcgUHJvbWlzZShyID0+IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcikpOworCisv
LyBJdCdzIHdlaXJkIHRoYXQgYnJvd3NlcnMgZG8gdGhpcywgYnV0IGl0IHNob3VsZCBjb250aW51
ZSB0byB3b3JrLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBsb2FkU2NyaXB0
KCdyZXNvdXJjZXMvcGFydGlhbC1zY3JpcHQucHk/cHJldGVuZC1vZmZzZXQ9OTAwMDAnKTsKKyAg
YXNzZXJ0X3RydWUoc2VsZi5zY3JpcHRFeGVjdXRlZCk7Cit9LCBgU2NyaXB0IGV4ZWN1dGVkIGZy
b20gcGFydGlhbCByZXNwb25zZWApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICBj
b25zdCB3YXZVUkwgPSBuZXcgVVJMKCdyZXNvdXJjZXMvbG9uZy13YXYucHknLCBsb2NhdGlvbik7
CisgIGNvbnN0IHN0YXNoVGFrZVVSTCA9IG5ldyBVUkwoJ3Jlc291cmNlcy9zdGFzaC10YWtlLnB5
JywgbG9jYXRpb24pOworICBjb25zdCBzdGFzaFRva2VuID0gdG9rZW4oKTsKKyAgd2F2VVJMLnNl
YXJjaFBhcmFtcy5zZXQoJ2FjY2VwdC1lbmNvZGluZy1rZXknLCBzdGFzaFRva2VuKTsKKyAgc3Rh
c2hUYWtlVVJMLnNlYXJjaFBhcmFtcy5zZXQoJ2tleScsIHN0YXNoVG9rZW4pOworCisgIC8vIFRo
ZSB0ZXN0aW5nIGZyYW1ld29yayB3YWl0cyBmb3Igd2luZG93IG9ubG9hZC4gSWYgdGhlIGF1ZGlv
IGVsZW1lbnQKKyAgLy8gaXMgYXBwZW5kZWQgYmVmb3JlIG9ubG9hZCwgaXQgZXh0ZW5kcyBpdCwg
YW5kIHRoZSB0ZXN0IHRpbWVzIG91dC4KKyAgYXdhaXQgb25sb2FkOworCisgIGNvbnN0IGF1ZGlv
ID0gYXBwZW5kQXVkaW8oZG9jdW1lbnQsIHdhdlVSTCk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gYXVkaW8uYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCByKSk7CisgIGF1ZGlvLnJlbW92
ZSgpOworCisgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goc3Rhc2hUYWtlVVJMKTsKKyAg
YXNzZXJ0X2VxdWFscyhhd2FpdCByZXNwb25zZS5qc29uKCksICdpZGVudGl0eScsIGBFeHBlY3Qg
aWRlbnRpdHkgYWNjZXB0LWVuY29kaW5nIG9uIG1lZGlhIHJlcXVlc3RgKTsKK30sIGBGZXRjaCB3
aXRoIHJhbmdlIGhlYWRlciB3aWxsIGJlIHNlbnQgd2l0aCBBY2NlcHQtRW5jb2Rpbmc6IGlkZW50
aXR5YCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvYmFzaWMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZTc2ZWRkNjViN2JhZjUzMTZmYzlkMGM0ZGE1OWEzNTAyZTRjMjdh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvYmFzaWMuaHRtbApAQCAtMCwwICsxIEBACis8
IURPQ1RZUEUgaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJj
ZXMvbG9uZy13YXYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRmMjhlYjc0MWU2NzAwNDYxNzY3Nzc5NTVjNWJk
MzQ2OTM4MTU0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5CkBAIC0w
LDAgKzEsMTI4IEBACisiIiIKK1RoaXMgZ2VuZXJhdGVzIGEgMzAgbWludXRlIHNpbGVudCB3YXYs
IGFuZCBpcyBjYXBhYmxlIG9mCityZXNwb25kaW5nIHRvIFJhbmdlIHJlcXVlc3RzLgorIiIiCitp
bXBvcnQgdGltZQoraW1wb3J0IHJlCitpbXBvcnQgc3RydWN0CisKKworZGVmIGNyZWF0ZV93YXZf
aGVhZGVyKHNhbXBsZV9yYXRlLCBiaXRfZGVwdGgsIGNoYW5uZWxzLCBkdXJhdGlvbik6CisgICAg
Ynl0ZXNfcGVyX3NhbXBsZSA9IGJpdF9kZXB0aCAvIDgKKyAgICBibG9ja19hbGlnbiA9IGJ5dGVz
X3Blcl9zYW1wbGUgKiBjaGFubmVscworICAgIGJ5dGVfcmF0ZSA9IHNhbXBsZV9yYXRlICogYmxv
Y2tfYWxpZ24KKyAgICBzdWJfY2h1bmtfMl9zaXplID0gZHVyYXRpb24gKiBieXRlX3JhdGUKKwor
ICAgIGRhdGEgPSBiJycKKyAgICAjIENodW5rSUQKKyAgICBkYXRhICs9IGInUklGRicKKyAgICAj
IENodW5rU2l6ZQorICAgIGRhdGEgKz0gc3RydWN0LnBhY2soJzxMJywgMzYgKyBzdWJfY2h1bmtf
Ml9zaXplKQorICAgICMgRm9ybWF0CisgICAgZGF0YSArPSBiJ1dBVkUnCisgICAgIyBTdWJjaHVu
azFJRAorICAgIGRhdGEgKz0gYidmbXQgJworICAgICMgU3ViY2h1bmsxU2l6ZQorICAgIGRhdGEg
Kz0gc3RydWN0LnBhY2soJzxMJywgMTYpCisgICAgIyBBdWRpb0Zvcm1hdAorICAgIGRhdGEgKz0g
c3RydWN0LnBhY2soJzxIJywgMSkKKyAgICAjIE51bUNoYW5uZWxzCisgICAgZGF0YSArPSBzdHJ1
Y3QucGFjaygnPEgnLCBjaGFubmVscykKKyAgICAjIFNhbXBsZVJhdGUKKyAgICBkYXRhICs9IHN0
cnVjdC5wYWNrKCc8TCcsIHNhbXBsZV9yYXRlKQorICAgICMgQnl0ZVJhdGUKKyAgICBkYXRhICs9
IHN0cnVjdC5wYWNrKCc8TCcsIGJ5dGVfcmF0ZSkKKyAgICAjIEJsb2NrQWxpZ24KKyAgICBkYXRh
ICs9IHN0cnVjdC5wYWNrKCc8SCcsIGJsb2NrX2FsaWduKQorICAgICMgQml0c1BlclNhbXBsZQor
ICAgIGRhdGEgKz0gc3RydWN0LnBhY2soJzxIJywgYml0X2RlcHRoKQorICAgICMgU3ViY2h1bmsy
SUQKKyAgICBkYXRhICs9IGInZGF0YScKKyAgICAjIFN1YmNodW5rMlNpemUKKyAgICBkYXRhICs9
IHN0cnVjdC5wYWNrKCc8TCcsIHN1Yl9jaHVua18yX3NpemUpCisKKyAgICByZXR1cm4gZGF0YQor
CisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICByZXNwb25zZS5oZWFkZXJzLnNl
dCgiQ29udGVudC1UeXBlIiwgImF1ZGlvL3dhdiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
IkFjY2VwdC1SYW5nZXMiLCAiYnl0ZXMiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDYWNo
ZS1Db250cm9sIiwgIm5vLWNhY2hlIikKKworICAgIHJhbmdlX2hlYWRlciA9IHJlcXVlc3QuaGVh
ZGVycy5nZXQoJ1JhbmdlJywgJycpCisgICAgcmFuZ2VfaGVhZGVyX21hdGNoID0gcmFuZ2VfaGVh
ZGVyIGFuZCByZS5zZWFyY2gocideYnl0ZXM9KFxkKiktKFxkKikkJywgcmFuZ2VfaGVhZGVyKQor
ICAgIHJhbmdlX3JlY2VpdmVkX2tleSA9IHJlcXVlc3QuR0VULmZpcnN0KCdyYW5nZS1yZWNlaXZl
ZC1rZXknLCAnJykKKyAgICBhY2NlcHRfZW5jb2Rpbmdfa2V5ID0gcmVxdWVzdC5HRVQuZmlyc3Qo
J2FjY2VwdC1lbmNvZGluZy1rZXknLCAnJykKKworICAgIGlmIHJhbmdlX3JlY2VpdmVkX2tleSBh
bmQgcmFuZ2VfaGVhZGVyOgorICAgICAgICAjIFJlbW92ZSBhbnkgY3VycmVudCB2YWx1ZQorICAg
ICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHJhbmdlX3JlY2VpdmVkX2tleSwgJy9mZXRj
aC9yYW5nZS8nKQorICAgICAgICAjIFRoaXMgaXMgbGF0ZXIgY29sbGVjdGVkIHVzaW5nIHN0YXNo
LXRha2UucHkKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHJhbmdlX3JlY2VpdmVk
X2tleSwgJ3JhbmdlLWhlYWRlci1yZWNlaXZlZCcsICcvZmV0Y2gvcmFuZ2UvJykKKworICAgIGlm
IGFjY2VwdF9lbmNvZGluZ19rZXk6CisgICAgICAgICMgUmVtb3ZlIGFueSBjdXJyZW50IHZhbHVl
CisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UoCisgICAgICAgICAgICBhY2NlcHRf
ZW5jb2Rpbmdfa2V5LAorICAgICAgICAgICAgJy9mZXRjaC9yYW5nZS8nCisgICAgICAgICkKKyAg
ICAgICAgIyBUaGlzIGlzIGxhdGVyIGNvbGxlY3RlZCB1c2luZyBzdGFzaC10YWtlLnB5CisgICAg
ICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCgKKyAgICAgICAgICAgIGFjY2VwdF9lbmNvZGlu
Z19rZXksCisgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdBY2NlcHQtRW5jb2Rpbmcn
LCAnJyksCisgICAgICAgICAgICAnL2ZldGNoL3JhbmdlLycKKyAgICAgICAgKQorCisgICAgIyBB
dWRpbyBkZXRhaWxzCisgICAgc2FtcGxlX3JhdGUgPSA4MDAwCisgICAgYml0X2RlcHRoID0gOAor
ICAgIGNoYW5uZWxzID0gMQorICAgIGR1cmF0aW9uID0gNjAgKiA1CisKKyAgICB0b3RhbF9sZW5n
dGggPSAoc2FtcGxlX3JhdGUgKiBiaXRfZGVwdGggKiBjaGFubmVscyAqIGR1cmF0aW9uKSAvIDgK
KyAgICBieXRlc19yZW1haW5pbmdfdG9fc2VuZCA9IHRvdGFsX2xlbmd0aAorICAgIGluaXRpYWxf
d3JpdGUgPSAnJworCisgICAgaWYgcmFuZ2VfaGVhZGVyX21hdGNoOgorICAgICAgICByZXNwb25z
ZS5zdGF0dXMgPSAyMDYKKyAgICAgICAgc3RhcnQsIGVuZCA9IHJhbmdlX2hlYWRlcl9tYXRjaC5n
cm91cHMoKQorCisgICAgICAgIHN0YXJ0ID0gaW50KHN0YXJ0KQorICAgICAgICBlbmQgPSBpbnQo
ZW5kKSBpZiBlbmQgZWxzZSAwCisKKyAgICAgICAgaWYgZW5kOgorICAgICAgICAgICAgYnl0ZXNf
cmVtYWluaW5nX3RvX3NlbmQgPSAoZW5kICsgMSkgLSBzdGFydAorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgYnl0ZXNfcmVtYWluaW5nX3RvX3NlbmQgPSB0b3RhbF9sZW5ndGggLSBzdGFydAor
CisgICAgICAgIHdhdl9oZWFkZXIgPSBjcmVhdGVfd2F2X2hlYWRlcihzYW1wbGVfcmF0ZSwgYml0
X2RlcHRoLCBjaGFubmVscywgZHVyYXRpb24pCisKKyAgICAgICAgaWYgc3RhcnQgPCBsZW4od2F2
X2hlYWRlcik6CisgICAgICAgICAgICBpbml0aWFsX3dyaXRlID0gd2F2X2hlYWRlcltzdGFydDpd
CisKKyAgICAgICAgICAgIGlmIGJ5dGVzX3JlbWFpbmluZ190b19zZW5kIDwgbGVuKGluaXRpYWxf
d3JpdGUpOgorICAgICAgICAgICAgICAgIGluaXRpYWxfd3JpdGUgPSBpbml0aWFsX3dyaXRlWzA6
Ynl0ZXNfcmVtYWluaW5nX3RvX3NlbmRdCisKKyAgICAgICAgY29udGVudF9yYW5nZSA9ICJieXRl
cyB7fS17fS97fSIuZm9ybWF0KHN0YXJ0LCBlbmQgb3IgdG90YWxfbGVuZ3RoIC0gMSwgdG90YWxf
bGVuZ3RoKQorCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVJhbmdlIiwg
Y29udGVudF9yYW5nZSkKKyAgICBlbHNlOgorICAgICAgICBpbml0aWFsX3dyaXRlID0gY3JlYXRl
X3dhdl9oZWFkZXIoc2FtcGxlX3JhdGUsIGJpdF9kZXB0aCwgY2hhbm5lbHMsIGR1cmF0aW9uKQor
CisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtTGVuZ3RoIiwgYnl0ZXNfcmVtYWlu
aW5nX3RvX3NlbmQpCisKKyAgICByZXNwb25zZS53cml0ZV9zdGF0dXNfaGVhZGVycygpCisgICAg
cmVzcG9uc2Uud3JpdGVyLndyaXRlKGluaXRpYWxfd3JpdGUpCisKKyAgICBieXRlc19yZW1haW5p
bmdfdG9fc2VuZCAtPSBsZW4oaW5pdGlhbF93cml0ZSkKKworICAgIHdoaWxlIGJ5dGVzX3JlbWFp
bmluZ190b19zZW5kID4gMDoKKyAgICAgICAgaWYgbm90IHJlc3BvbnNlLndyaXRlci5mbHVzaCgp
OgorICAgICAgICAgICAgYnJlYWsKKworICAgICAgICB0b19zZW5kID0gYidceDAwJyAqIG1pbihi
eXRlc19yZW1haW5pbmdfdG9fc2VuZCwgc2FtcGxlX3JhdGUpCisgICAgICAgIGJ5dGVzX3JlbWFp
bmluZ190b19zZW5kIC09IGxlbih0b19zZW5kKQorCisgICAgICAgIHJlc3BvbnNlLndyaXRlci53
cml0ZSh0b19zZW5kKQorICAgICAgICAjIFRocm90dGxlIHRoZSBzdHJlYW0KKyAgICAgICAgdGlt
ZS5zbGVlcCgwLjUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9wYXJ0aWFsLXNjcmlwdC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVz
b3VyY2VzL3BhcnRpYWwtc2NyaXB0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViNjQyYzYwMWQ4OWRjZDMwNjMy
MDc0ZDg3NzI1MmIwYmJiMDdlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9wYXJ0aWFs
LXNjcmlwdC5weQpAQCAtMCwwICsxLDMwIEBACisiIiIKK1RoaXMgZ2VuZXJhdGVzIGEgcGFydGlh
bCByZXNwb25zZSBjb250YWluaW5nIHZhbGlkIEphdmFTY3JpcHQuCisiIiIKKworCitkZWYgbWFp
bihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgcmVxdWlyZV9yYW5nZSA9IHJlcXVlc3QuR0VULmZp
cnN0KCdyZXF1aXJlLXJhbmdlJywgJycpCisgICAgcHJldGVuZF9vZmZzZXQgPSBpbnQocmVxdWVz
dC5HRVQuZmlyc3QoJ3ByZXRlbmQtb2Zmc2V0JywgJzAnKSkKKyAgICByYW5nZV9oZWFkZXIgPSBy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KCdSYW5nZScsICcnKQorCisgICAgaWYgcmVxdWlyZV9yYW5nZSBh
bmQgbm90IHJhbmdlX2hlYWRlcjoKKyAgICAgICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQxMiwgIlJh
bmdlIGhlYWRlciByZXF1aXJlZCIpCisgICAgICAgIHJlc3BvbnNlLndyaXRlKCkKKyAgICAgICAg
cmV0dXJuCisKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInRleHQv
cGxhaW4iKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJBY2NlcHQtUmFuZ2VzIiwgImJ5dGVz
IikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSIp
CisgICAgcmVzcG9uc2Uuc3RhdHVzID0gMjA2CisKKyAgICB0b19zZW5kID0gJ3NlbGYuc2NyaXB0
RXhlY3V0ZWQgPSB0cnVlOycKKyAgICBsZW5ndGggPSBsZW4odG9fc2VuZCkKKworICAgIGNvbnRl
bnRfcmFuZ2UgPSAiYnl0ZXMge30te30ve30iLmZvcm1hdCgKKyAgICAgICAgcHJldGVuZF9vZmZz
ZXQsIHByZXRlbmRfb2Zmc2V0ICsgbGVuZ3RoIC0gMSwgcHJldGVuZF9vZmZzZXQgKyBsZW5ndGgp
CisKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1SYW5nZSIsIGNvbnRlbnRfcmFu
Z2UpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtTGVuZ3RoIiwgbGVuZ3RoKQor
CisgICAgcmVzcG9uc2UuY29udGVudCA9IHRvX3NlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3Jh
bmdlLXN3LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9yYW5nZS9yZXNvdXJjZXMvcmFuZ2Utc3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MGMwYzQ3MWQz
ZDVmMzZjNGFiYTRjYzU4ZGNkNTJjMzhhMDhkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2Vz
L3JhbmdlLXN3LmpzCkBAIC0wLDAgKzEsMTU5IEBACitpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzJyk7CisKK3NldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKwor
ZnVuY3Rpb24gYXNzZXJ0X3JhbmdlX3JlcXVlc3QocmVxdWVzdCwgZXhwZWN0ZWRSYW5nZUhlYWRl
ciwgbmFtZSkgeworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoJ1JhbmdlJyks
IGV4cGVjdGVkUmFuZ2VIZWFkZXIsIG5hbWUpOworfQorCithc3luYyBmdW5jdGlvbiBicm9hZGNh
c3QobXNnKSB7CisgIGZvciAoY29uc3QgY2xpZW50IG9mIGF3YWl0IGNsaWVudHMubWF0Y2hBbGwo
KSkgeworICAgIGNsaWVudC5wb3N0TWVzc2FnZShtc2cpOworICB9Cit9CisKK2FkZEV2ZW50TGlz
dGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4geworICAvKiogQHR5cGUgUmVxdWVzdCAqLworICBjb25z
dCByZXF1ZXN0ID0gZXZlbnQucmVxdWVzdDsKKyAgY29uc3QgdXJsID0gbmV3IFVSTChyZXF1ZXN0
LnVybCk7CisgIGNvbnN0IGFjdGlvbiA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCdhY3Rpb24nKTsK
KworICBzd2l0Y2ggKGFjdGlvbikgeworICAgIGNhc2UgJ3JhbmdlLWhlYWRlci1maWx0ZXItdGVz
dCc6CisgICAgICByYW5nZUhlYWRlckZpbHRlclRlc3QocmVxdWVzdCk7CisgICAgICByZXR1cm47
CisgICAgY2FzZSAncmFuZ2UtaGVhZGVyLXBhc3N0aHJvdWdoLXRlc3QnOgorICAgICAgcmFuZ2VI
ZWFkZXJQYXNzdGhyb3VnaFRlc3QoZXZlbnQpOworICAgICAgcmV0dXJuOworICAgIGNhc2UgJ3N0
b3JlLXJhbmdlZC1yZXNwb25zZSc6CisgICAgICBzdG9yZVJhbmdlZFJlc3BvbnNlKGV2ZW50KTsK
KyAgICAgIHJldHVybjsKKyAgICBjYXNlICd1c2Utc3RvcmVkLXJhbmdlZC1yZXNwb25zZSc6Cisg
ICAgICB1c2VTdG9yZWRSYW5nZVJlc3BvbnNlKGV2ZW50KTsKKyAgICAgIHJldHVybjsKKyAgICBj
YXNlICdicm9hZGNhc3QtYWNjZXB0LWVuY29kaW5nJzoKKyAgICAgIGJyb2FkY2FzdEFjY2VwdEVu
Y29kaW5nKGV2ZW50KTsKKyAgICAgIHJldHVybjsKKyAgfQorfSk7CisKKy8qKgorICogQHBhcmFt
IHtSZXF1ZXN0fSByZXF1ZXN0CisgKi8KK2Z1bmN0aW9uIHJhbmdlSGVhZGVyRmlsdGVyVGVzdChy
ZXF1ZXN0KSB7CisgIGNvbnN0IHJhbmdlVmFsdWUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdSYW5n
ZScpOworCisgIHRlc3QoKCkgPT4geworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0KG5ldyBSZXF1
ZXN0KHJlcXVlc3QpLCByYW5nZVZhbHVlLCBgVW50YW1wZXJlZGApOworICAgIGFzc2VydF9yYW5n
ZV9yZXF1ZXN0KG5ldyBSZXF1ZXN0KHJlcXVlc3QsIHt9KSwgcmFuZ2VWYWx1ZSwgYFVudGFtcGVy
ZWQgKG5vIGluaXQgcHJvcHMgc2V0KWApOworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0KG5ldyBS
ZXF1ZXN0KHJlcXVlc3QsIHsgX19mb286ICdiYXInIH0pLCByYW5nZVZhbHVlLCBgVW50YW1wZXJl
ZCAob25seSBpbnZhbGlkIHByb3BzIHNldClgKTsKKyAgICBhc3NlcnRfcmFuZ2VfcmVxdWVzdChu
ZXcgUmVxdWVzdChyZXF1ZXN0LCB7IG1vZGU6ICdjb3JzJyB9KSwgcmFuZ2VWYWx1ZSwgYE1vcmUg
cGVybWlzc2l2ZSBtb2RlYCk7CisgICAgYXNzZXJ0X3JhbmdlX3JlcXVlc3QocmVxdWVzdC5jbG9u
ZSgpLCByYW5nZVZhbHVlLCBgQ2xvbmVgKTsKKyAgfSwgIlJhbmdlIGhlYWRlcnMgY29ycmVjdGx5
IHByZXNlcnZlZCIpOworCisgIHRlc3QoKCkgPT4geworICAgIGFzc2VydF9yYW5nZV9yZXF1ZXN0
KG5ldyBSZXF1ZXN0KHJlcXVlc3QsIHsgaGVhZGVyczogeyBSYW5nZTogJ2ZvbycgfSB9KSwgbnVs
bCwgYFRhbXBlcmVkIC0gcmFuZ2UgaGVhZGVyIHNldGApOworICAgIGFzc2VydF9yYW5nZV9yZXF1
ZXN0KG5ldyBSZXF1ZXN0KHJlcXVlc3QsIHsgaGVhZGVyczoge30gfSksIG51bGwsIGBUYW1wZXJl
ZCAtIGVtcHR5IGhlYWRlcnMgc2V0YCk7CisgICAgYXNzZXJ0X3JhbmdlX3JlcXVlc3QobmV3IFJl
cXVlc3QocmVxdWVzdCwgeyBtb2RlOiAnbm8tY29ycycgfSksIG51bGwsIGBUYW1wZXJlZCDigJMg
bW9kZSBzZXRgKTsKKyAgICBhc3NlcnRfcmFuZ2VfcmVxdWVzdChuZXcgUmVxdWVzdChyZXF1ZXN0
LCB7IGNhY2hlOiAnbm8tY2FjaGUnIH0pLCBudWxsLCBgVGFtcGVyZWQg4oCTIGNhY2hlIG1vZGUg
c2V0YCk7CisgIH0sICJSYW5nZSBoZWFkZXJzIGNvcnJlY3RseSByZW1vdmVkIik7CisKKyAgdGVz
dCgoKSA9PiB7CisgICAgbGV0IGhlYWRlcnM7CisKKyAgICBoZWFkZXJzID0gbmV3IFJlcXVlc3Qo
cmVxdWVzdCkuaGVhZGVyczsKKyAgICBoZWFkZXJzLmRlbGV0ZSgnZG9lcy1ub3QtZXhpc3QnKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCByYW5nZVZhbHVlLCBgUHJl
c2VydmVkIGlmIG5vIGhlYWRlciBhY3R1YWxseSByZW1vdmVkYCk7CisKKyAgICBoZWFkZXJzID0g
bmV3IFJlcXVlc3QocmVxdWVzdCkuaGVhZGVyczsKKyAgICBoZWFkZXJzLmFwcGVuZCgnZm9vJywg
J2JhcicpOworICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksIHJhbmdlVmFs
dWUsIGBQcmVzZXJ2ZWQgaWYgc2lsZW50LWZhaWx1cmUgb24gYXBwZW5kIChkdWUgdG8gcmVxdWVz
dC1uby1jb3JzIGd1YXJkKWApOworCisgICAgaGVhZGVycyA9IG5ldyBSZXF1ZXN0KHJlcXVlc3Qp
LmhlYWRlcnM7CisgICAgaGVhZGVycy5zZXQoJ2ZvbycsICdiYXInKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCByYW5nZVZhbHVlLCBgUHJlc2VydmVkIGlmIHNpbGVu
dC1mYWlsdXJlIG9uIHNldCAoZHVlIHRvIHJlcXVlc3Qtbm8tY29ycyBndWFyZClgKTsKKworICAg
IGhlYWRlcnMgPSBuZXcgUmVxdWVzdChyZXF1ZXN0KS5oZWFkZXJzOworICAgIGhlYWRlcnMuYXBw
ZW5kKCdSYW5nZScsICdmb28nKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCdSYW5n
ZScpLCByYW5nZVZhbHVlLCBgUHJlc2VydmVkIGlmIHNpbGVudC1mYWlsdXJlIG9uIGFwcGVuZCAo
ZHVlIHRvIHJlcXVlc3Qtbm8tY29ycyBndWFyZClgKTsKKworICAgIGhlYWRlcnMgPSBuZXcgUmVx
dWVzdChyZXF1ZXN0KS5oZWFkZXJzOworICAgIGhlYWRlcnMuc2V0KCdSYW5nZScsICdmb28nKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCByYW5nZVZhbHVlLCBgUHJl
c2VydmVkIGlmIHNpbGVudC1mYWlsdXJlIG9uIHNldCAoZHVlIHRvIHJlcXVlc3Qtbm8tY29ycyBn
dWFyZClgKTsKKworICAgIGhlYWRlcnMgPSBuZXcgUmVxdWVzdChyZXF1ZXN0KS5oZWFkZXJzOwor
ICAgIGhlYWRlcnMuYXBwZW5kKCdBY2NlcHQnLCAnd2hhdGV2ZXInKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGhlYWRlcnMuZ2V0KCdSYW5nZScpLCBudWxsLCBgU3RyaXBwZWQgaWYgaGVhZGVyIHN1Y2Nl
c3NmdWxseSBhcHBlbmRlZGApOworCisgICAgaGVhZGVycyA9IG5ldyBSZXF1ZXN0KHJlcXVlc3Qp
LmhlYWRlcnM7CisgICAgaGVhZGVycy5zZXQoJ0FjY2VwdCcsICd3aGF0ZXZlcicpOworICAgIGFz
c2VydF9lcXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksIG51bGwsIGBTdHJpcHBlZCBpZiBoZWFk
ZXIgc3VjY2Vzc2Z1bGx5IHNldGApOworCisgICAgaGVhZGVycyA9IG5ldyBSZXF1ZXN0KHJlcXVl
c3QpLmhlYWRlcnM7CisgICAgaGVhZGVycy5kZWxldGUoJ0FjY2VwdCcpOworICAgIGFzc2VydF9l
cXVhbHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksIG51bGwsIGBTdHJpcHBlZCBpZiBoZWFkZXIgc3Vj
Y2Vzc2Z1bGx5IGRlbGV0ZWRgKTsKKworICAgIGhlYWRlcnMgPSBuZXcgUmVxdWVzdChyZXF1ZXN0
KS5oZWFkZXJzOworICAgIGhlYWRlcnMuZGVsZXRlKCdSYW5nZScpOworICAgIGFzc2VydF9lcXVh
bHMoaGVhZGVycy5nZXQoJ1JhbmdlJyksIG51bGwsIGBTdHJpcHBlZCBpZiByYW5nZSBoZWFkZXIg
c3VjY2Vzc2Z1bGx5IGRlbGV0ZWRgKTsKKyAgfSwgIkhlYWRlcnMgY29ycmVjdGx5IGZpbHRlcmVk
Iik7CisKKyAgZG9uZSgpOworfQorCitmdW5jdGlvbiByYW5nZUhlYWRlclBhc3N0aHJvdWdoVGVz
dChldmVudCkgeworICAvKiogQHR5cGUgUmVxdWVzdCAqLworICBjb25zdCByZXF1ZXN0ID0gZXZl
bnQucmVxdWVzdDsKKyAgY29uc3QgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7CisgIGNvbnN0
IGtleSA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCdyYW5nZS1yZWNlaXZlZC1rZXknKTsKKworICBl
dmVudC53YWl0VW50aWwobmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jICgpID0+IHsKKyAgICAgIGF3YWl0IGZldGNoKGV2ZW50LnJlcXVlc3QpOworICAgICAg
Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnc3Rhc2gtdGFrZS5weT9rZXk9JyArIGtleSk7
CisgICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IHJlc3BvbnNlLmpzb24oKSwgJ3JhbmdlLWhlYWRl
ci1yZWNlaXZlZCcpOworICAgICAgcmVzb2x2ZSgpOworICAgIH0sIGBJbmNsdWRlIHJhbmdlIGhl
YWRlciBpbiBuZXR3b3JrIHJlcXVlc3RgKTsKKworICAgIGRvbmUoKTsKKyAgfSkpOworCisgIC8v
IEp1c3Qgc2VuZCBiYWNrIGFueSByZXNwb25zZSwgaXQgaXNuJ3QgaW1wb3J0YW50IGZvciB0aGUg
dGVzdC4KKyAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCcnKSk7Cit9CisKK2xldCBz
dG9yZWRSYW5nZVJlc3BvbnNlUDsKKworZnVuY3Rpb24gc3RvcmVSYW5nZWRSZXNwb25zZShldmVu
dCkgeworICAvKiogQHR5cGUgUmVxdWVzdCAqLworICBjb25zdCByZXF1ZXN0ID0gZXZlbnQucmVx
dWVzdDsKKyAgY29uc3QgaWQgPSBuZXcgVVJMKHJlcXVlc3QudXJsKS5zZWFyY2hQYXJhbXMuZ2V0
KCdpZCcpOworCisgIHN0b3JlZFJhbmdlUmVzcG9uc2VQID0gZmV0Y2goZXZlbnQucmVxdWVzdCk7
CisgIGJyb2FkY2FzdCh7IGlkIH0pOworCisgIC8vIEp1c3Qgc2VuZCBiYWNrIGFueSByZXNwb25z
ZSwgaXQgaXNuJ3QgaW1wb3J0YW50IGZvciB0aGUgdGVzdC4KKyAgZXZlbnQucmVzcG9uZFdpdGgo
bmV3IFJlc3BvbnNlKCcnKSk7Cit9CisKK2Z1bmN0aW9uIHVzZVN0b3JlZFJhbmdlUmVzcG9uc2Uo
ZXZlbnQpIHsKKyAgZXZlbnQucmVzcG9uZFdpdGgoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBzdG9yZWRSYW5nZVJlc3BvbnNlUDsKKyAgICBpZiAoIXJlc3Bv
bnNlKSB0aHJvdyBFcnJvcigiRXhwZWN0ZWQgc3RvcmVkIHJhbmdlIHJlc3BvbnNlIik7CisgICAg
cmV0dXJuIHJlc3BvbnNlLmNsb25lKCk7CisgIH0oKSk7Cit9CisKK2Z1bmN0aW9uIGJyb2FkY2Fz
dEFjY2VwdEVuY29kaW5nKGV2ZW50KSB7CisgIC8qKiBAdHlwZSBSZXF1ZXN0ICovCisgIGNvbnN0
IHJlcXVlc3QgPSBldmVudC5yZXF1ZXN0OworICBjb25zdCBpZCA9IG5ldyBVUkwocmVxdWVzdC51
cmwpLnNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7CisKKyAgYnJvYWRjYXN0KHsKKyAgICBpZCwKKyAg
ICBhY2NlcHRFbmNvZGluZzogcmVxdWVzdC5oZWFkZXJzLmdldCgnQWNjZXB0LUVuY29kaW5nJykK
KyAgfSk7CisKKyAgLy8gSnVzdCBzZW5kIGJhY2sgYW55IHJlc3BvbnNlLCBpdCBpc24ndCBpbXBv
cnRhbnQgZm9yIHRoZSB0ZXN0LgorICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJycp
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9zdGFz
aC10YWtlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYzFmZTU3NjQ3ZjQxZWE4MTk2ZGFkMTAyODE1ZDA2Zjhi
MTEwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9zdGFzaC10YWtlLnB5CkBAIC0wLDAg
KzEsNyBAQAorZnJvbSB3cHRzZXJ2ZS5oYW5kbGVycyBpbXBvcnQganNvbl9oYW5kbGVyCisKKwor
QGpzb25faGFuZGxlcgorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGtleSA9IHJl
cXVlc3QuR0VULmZpcnN0KCJrZXkiKQorICAgIHJldHVybiByZXF1ZXN0LnNlcnZlci5zdGFzaC50
YWtlKGtleSwgJy9mZXRjaC9yYW5nZS8nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdXRpbHMuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Jhbmdl
L3Jlc291cmNlcy91dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmVkNzM3ZjYzZThlZWUyNmEzMDZjNzBh
Y2IwNTg5ZTQyNGRiMzVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdXRpbHMuanMKQEAg
LTAsMCArMSwyNCBAQAorZnVuY3Rpb24gbG9hZFNjcmlwdCh1cmwsIHsgZG9jID0gZG9jdW1lbnQg
fT17fSkgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
IGNvbnN0IHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICBzY3JpcHQu
b25sb2FkID0gKCkgPT4gcmVzb2x2ZSgpOworICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4gcmVq
ZWN0KEVycm9yKCJTY3JpcHQgbG9hZCBmYWlsZWQiKSk7CisgICAgc2NyaXB0LnNyYyA9IHVybDsK
KyAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworICB9KQorfQorCisvKioKKyAqCisg
KiBAcGFyYW0ge0RvY3VtZW50fSBkb2N1bWVudAorICogQHBhcmFtIHtzdHJpbmd8VVJMfSB1cmwK
KyAqIEByZXR1cm5zIHtIVE1MQXVkaW9FbGVtZW50fQorICovCitmdW5jdGlvbiBhcHBlbmRBdWRp
byhkb2N1bWVudCwgdXJsKSB7CisgIGNvbnN0IGF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnYXVkaW8nKTsKKyAgYXVkaW8ubXV0ZWQgPSB0cnVlOworICBhdWRpby5zcmMgPSB1cmw7Cisg
IGF1ZGlvLnByZWxvYWQgPSB0cnVlOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGF1ZGlv
KTsKKyAgcmV0dXJuIGF1ZGlvOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Jh
bmdlL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODhkY2MwNzkwZjE3OGI5
OGJkOTQxMjgwNzc4NjBmMTNkNTc3NDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvYmFzaWMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFu
Z2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9yZXNvdXJjZXMvcGFydGlhbC1zY3JpcHQucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jl
c291cmNlcy9yYW5nZS1zdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy91
dGlscy5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3N3Lmh0dHBzLndpbmRvdy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYWFlZTg2NzM0ZTkzYmI1MTQwOTVlMzQ2NzFhNTdlMDBiY2JjZDk4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwxNTEgQEAKKy8v
IE1FVEE6IHNjcmlwdD0uLi8uLi8uLi9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxz
LmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVU
QTogc2NyaXB0PXJlc291cmNlcy91dGlscy5qcworCitjb25zdCB7IFJFTU9URV9IT1NUIH0gPSBn
ZXRfaG9zdF9pbmZvKCk7Citjb25zdCBCQVNFX1NDT1BFID0gJ3Jlc291cmNlcy9iYXNpYy5odG1s
Pyc7CisKK2FzeW5jIGZ1bmN0aW9uIGNsZWFudXAoKSB7CisgIGZvciAoY29uc3QgaWZyYW1lIG9m
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50ZXN0LWlmcmFtZScpKSB7CisgICAgaWZyYW1l
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKyAgfQorCisgIGZvciAoY29uc3QgcmVn
IG9mIGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKSkgewor
ICAgIGF3YWl0IHJlZy51bnJlZ2lzdGVyKCk7CisgIH0KK30KKworYXN5bmMgZnVuY3Rpb24gc2V0
dXBSZWdpc3RyYXRpb24odCwgc2NvcGUpIHsKKyAgYXdhaXQgY2xlYW51cCgpOworICBjb25zdCBy
ZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigncmVzb3VyY2VzL3Jh
bmdlLXN3LmpzJywgeyBzY29wZSB9KTsKKyAgYXdhaXQgd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgcmV0dXJuIHJlZzsKK30KKworZnVuY3Rpb24gYXdh
aXRNZXNzYWdlKG9iaiwgaWQpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgIG9iai5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gbGlzdGVuZXIoZXZl
bnQpIHsKKyAgICAgIGlmIChldmVudC5kYXRhLmlkICE9PSBpZCkgcmV0dXJuOworICAgICAgb2Jq
LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsaXN0ZW5lcik7CisgICAgICByZXNvbHZl
KGV2ZW50LmRhdGEpOworICAgIH0pOworICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCBzY29wZSA9IEJBU0VfU0NPUEUgKyBNYXRoLnJhbmRvbSgpOworICBjb25z
dCByZWcgPSBhd2FpdCBzZXR1cFJlZ2lzdHJhdGlvbih0LCBzY29wZSk7CisgIGNvbnN0IGlmcmFt
ZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgY29uc3QgdyA9IGlmcmFtZS5jb250ZW50
V2luZG93OworCisgIC8vIFRyaWdnZXIgYSBjcm9zcy1vcmlnaW4gcmFuZ2UgcmVxdWVzdCB1c2lu
ZyBtZWRpYQorICBjb25zdCB1cmwgPSBuZXcgVVJMKCdsb25nLXdhdi5weT9hY3Rpb249cmFuZ2Ut
aGVhZGVyLWZpbHRlci10ZXN0Jywgdy5sb2NhdGlvbik7CisgIHVybC5ob3N0bmFtZSA9IFJFTU9U
RV9IT1NUOworICBhcHBlbmRBdWRpbyh3LmRvY3VtZW50LCB1cmwpOworCisgIC8vIFNlZSByYW5n
ZUhlYWRlckZpbHRlclRlc3QgaW4gcmVzb3VyY2VzL3JhbmdlLXN3LmpzCisgIGF3YWl0IGZldGNo
X3Rlc3RzX2Zyb21fd29ya2VyKHJlZy5hY3RpdmUpOworfSwgYERlZmVyIHJhbmdlIGhlYWRlciBm
aWx0ZXIgdGVzdHMgdG8gc2VydmljZSB3b3JrZXJgKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICBjb25zdCBzY29wZSA9IEJBU0VfU0NPUEUgKyBNYXRoLnJhbmRvbSgpOworICBjb25z
dCByZWcgPSBhd2FpdCBzZXR1cFJlZ2lzdHJhdGlvbih0LCBzY29wZSk7CisgIGNvbnN0IGlmcmFt
ZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgY29uc3QgdyA9IGlmcmFtZS5jb250ZW50
V2luZG93OworCisgIC8vIFRyaWdnZXIgYSBjcm9zcy1vcmlnaW4gcmFuZ2UgcmVxdWVzdCB1c2lu
ZyBtZWRpYQorICBjb25zdCB1cmwgPSBuZXcgVVJMKCdsb25nLXdhdi5weScsIHcubG9jYXRpb24p
OworICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnYWN0aW9uJywgJ3JhbmdlLWhlYWRlci1wYXNzdGhy
b3VnaC10ZXN0Jyk7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyYW5nZS1yZWNlaXZlZC1rZXkn
LCB0b2tlbigpKTsKKyAgdXJsLmhvc3RuYW1lID0gUkVNT1RFX0hPU1Q7CisgIGFwcGVuZEF1ZGlv
KHcuZG9jdW1lbnQsIHVybCk7CisKKyAgLy8gU2VlIHJhbmdlSGVhZGVyUGFzc3Rocm91Z2hUZXN0
IGluIHJlc291cmNlcy9yYW5nZS1zdy5qcworICBhd2FpdCBmZXRjaF90ZXN0c19mcm9tX3dvcmtl
cihyZWcuYWN0aXZlKTsKK30sIGBEZWZlciByYW5nZSBoZWFkZXIgcGFzc3Rocm91Z2ggdGVzdHMg
dG8gc2VydmljZSB3b3JrZXJgKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBzY29wZSA9IEJBU0VfU0NPUEUgKyBNYXRoLnJhbmRvbSgpOworICBhd2FpdCBzZXR1cFJlZ2lz
dHJhdGlvbih0LCBzY29wZSk7CisgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKHNj
b3BlKTsKKyAgY29uc3QgdyA9IGlmcmFtZS5jb250ZW50V2luZG93OworICBjb25zdCBpZCA9IE1h
dGgucmFuZG9tKCkgKyAnJzsKKyAgY29uc3Qgc3RvcmVkUmFuZ2VSZXNwb25zZSA9IGF3YWl0TWVz
c2FnZSh3Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLCBpZCk7CisKKyAgLy8gVHJpZ2dlciBhIGNy
b3NzLW9yaWdpbiByYW5nZSByZXF1ZXN0IHVzaW5nIG1lZGlhCisgIGNvbnN0IHVybCA9IG5ldyBV
UkwoJ3BhcnRpYWwtc2NyaXB0LnB5Jywgdy5sb2NhdGlvbik7CisgIHVybC5zZWFyY2hQYXJhbXMu
c2V0KCdyZXF1aXJlLXJhbmdlJywgJzEnKTsKKyAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2FjdGlv
bicsICdzdG9yZS1yYW5nZWQtcmVzcG9uc2UnKTsKKyAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2lk
JywgaWQpOworICB1cmwuaG9zdG5hbWUgPSBSRU1PVEVfSE9TVDsKKworICBhcHBlbmRBdWRpbyh3
LmRvY3VtZW50LCB1cmwpOworCisgIGF3YWl0IHN0b3JlZFJhbmdlUmVzcG9uc2U7CisKKyAgLy8g
RmV0Y2hpbmcgc2hvdWxkIHJlamVjdAorICBjb25zdCBmZXRjaFByb21pc2UgPSB3LmZldGNoKCc/
YWN0aW9uPXVzZS1zdG9yZWQtcmFuZ2VkLXJlc3BvbnNlJywgeyBtb2RlOiAnbm8tY29ycycgfSk7
CisgIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIGZldGNoUHJvbWlzZSk7CisK
KyAgLy8gU2NyaXB0IGxvYWRpbmcgc2hvdWxkIGVycm9yIHRvbworICBjb25zdCBsb2FkU2NyaXB0
UHJvbWlzZSA9IGxvYWRTY3JpcHQoJz9hY3Rpb249dXNlLXN0b3JlZC1yYW5nZWQtcmVzcG9uc2Un
LCB7IGRvYzogdy5kb2N1bWVudCB9KTsKKyAgcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBFcnJvcigp
LCBsb2FkU2NyaXB0UHJvbWlzZSk7CisKKyAgYXdhaXQgbG9hZFNjcmlwdFByb21pc2UuY2F0Y2go
KCkgPT4ge30pOworCisgIGFzc2VydF9mYWxzZSghIXcuc2NyaXB0RXhlY3V0ZWQsIGBQYXJ0aWFs
IHJlc3BvbnNlIHNob3VsZG4ndCBiZSBleGVjdXRlZGApOworfSwgYFJhbmdlZCByZXNwb25zZSBu
b3QgYWxsb3dlZCBmb2xsb3dpbmcgbm8tY29ycyByYW5nZWQgcmVxdWVzdGApOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHNjb3BlID0gQkFTRV9TQ09QRSArIE1hdGgucmFu
ZG9tKCk7CisgIGF3YWl0IHNldHVwUmVnaXN0cmF0aW9uKHQsIHNjb3BlKTsKKyAgY29uc3QgaWZy
YW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoc2NvcGUpOworICBjb25zdCB3ID0gaWZyYW1lLmNvbnRl
bnRXaW5kb3c7CisgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKSArICcnOworICBjb25zdCBzdG9y
ZWRSYW5nZVJlc3BvbnNlID0gYXdhaXRNZXNzYWdlKHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIs
IGlkKTsKKworICAvLyBUcmlnZ2VyIGEgcmFuZ2UgcmVxdWVzdCB1c2luZyBtZWRpYQorICBjb25z
dCB1cmwgPSBuZXcgVVJMKCdwYXJ0aWFsLXNjcmlwdC5weScsIHcubG9jYXRpb24pOworICB1cmwu
c2VhcmNoUGFyYW1zLnNldCgncmVxdWlyZS1yYW5nZScsICcxJyk7CisgIHVybC5zZWFyY2hQYXJh
bXMuc2V0KCdhY3Rpb24nLCAnc3RvcmUtcmFuZ2VkLXJlc3BvbnNlJyk7CisgIHVybC5zZWFyY2hQ
YXJhbXMuc2V0KCdpZCcsIGlkKTsKKworICBhcHBlbmRBdWRpbyh3LmRvY3VtZW50LCB1cmwpOwor
CisgIGF3YWl0IHN0b3JlZFJhbmdlUmVzcG9uc2U7CisKKyAgLy8gVGhpcyBzaG91bGQgbm90IHRo
cm93CisgIGF3YWl0IHcuZmV0Y2goJz9hY3Rpb249dXNlLXN0b3JlZC1yYW5nZWQtcmVzcG9uc2Un
KTsKKworICAvLyBUaGlzIHNob3VsZG4ndCB0aHJvdyBlaXRoZXIKKyAgYXdhaXQgbG9hZFNjcmlw
dCgnP2FjdGlvbj11c2Utc3RvcmVkLXJhbmdlZC1yZXNwb25zZScsIHsgZG9jOiB3LmRvY3VtZW50
IH0pOworCisgIGFzc2VydF90cnVlKHcuc2NyaXB0RXhlY3V0ZWQsIGBQYXJ0aWFsIHJlc3BvbnNl
IHNob3VsZCBiZSBleGVjdXRlZGApOworfSwgYE5vbi1vcGFxdWUgcmFuZ2VkIHJlc3BvbnNlIGV4
ZWN1dGVkYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgc2NvcGUgPSBC
QVNFX1NDT1BFICsgTWF0aC5yYW5kb20oKTsKKyAgYXdhaXQgc2V0dXBSZWdpc3RyYXRpb24odCwg
c2NvcGUpOworICBjb25zdCBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZShzY29wZSk7CisgIGNv
bnN0IHcgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgY29uc3QgZmV0Y2hJZCA9IE1hdGgucmFu
ZG9tKCkgKyAnJzsKKyAgY29uc3QgZmV0Y2hCcm9hZGNhc3QgPSBhd2FpdE1lc3NhZ2Uody5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlciwgZmV0Y2hJZCk7CisgIGNvbnN0IGF1ZGlvSWQgPSBNYXRoLnJh
bmRvbSgpICsgJyc7CisgIGNvbnN0IGF1ZGlvQnJvYWRjYXN0ID0gYXdhaXRNZXNzYWdlKHcubmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIsIGF1ZGlvSWQpOworCisgIGNvbnN0IHVybCA9IG5ldyBVUkwo
J2xvbmctd2F2LnB5Jywgdy5sb2NhdGlvbik7CisgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdhY3Rp
b24nLCAnYnJvYWRjYXN0LWFjY2VwdC1lbmNvZGluZycpOworICB1cmwuc2VhcmNoUGFyYW1zLnNl
dCgnaWQnLCBmZXRjaElkKTsKKworICBhd2FpdCB3LmZldGNoKHVybCwgeworICAgIGhlYWRlcnM6
IHsgUmFuZ2U6ICdieXRlcz0wLTEwJyB9CisgIH0pOworCisgIGFzc2VydF9lcXVhbHMoKGF3YWl0
IGZldGNoQnJvYWRjYXN0KS5hY2NlcHRFbmNvZGluZywgbnVsbCwgIkFjY2VwdC1FbmNvZGluZyBz
aG91bGQgbm90IGJlIHNldCBmb3IgZmV0Y2giKTsKKworICB1cmwuc2VhcmNoUGFyYW1zLnNldCgn
aWQnLCBhdWRpb0lkKTsKKyAgYXBwZW5kQXVkaW8ody5kb2N1bWVudCwgdXJsKTsKKworICBhc3Nl
cnRfZXF1YWxzKChhd2FpdCBhdWRpb0Jyb2FkY2FzdCkuYWNjZXB0RW5jb2RpbmcsIG51bGwsICJB
Y2NlcHQtRW5jb2Rpbmcgc2hvdWxkIG5vdCBiZSBzZXQgZm9yIG1lZGlhIik7Cit9LCBgQWNjZXB0
LUVuY29kaW5nIHNob3VsZCBub3QgYXBwZWFyIGluIGEgc2VydmljZSB3b3JrZXJgKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
cmFuZ2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3JhbmdlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyM2JjZGJi
NTJkZDdhZjI0NWRmY2YxMzc5YmQzMTFkMGQ4ZDQ3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVy
YWwud2luZG93LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuanMK
</data>

          </attachment>
      

    </bug>

</bugzilla>