<?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>147097</bug_id>
          
          <creation_ts>2015-07-19 15:01:22 -0700</creation_ts>
          <short_desc>Web Inspector: add protocol test for existing error handling performed by the backend</short_desc>
          <delta_ts>2022-03-01 02:46:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147096</dependson>
          <blocked>147067</blocked>
    
    <blocked>146466</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110528</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-07-19 15:01:22 -0700</bug_when>
    <thetext>Prior to refactoring the error handling, I&apos;d like to get some test coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110529</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-19 15:01:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/21892877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120446</commentid>
    <comment_count>2</comment_count>
      <attachid>259790</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-24 16:29:14 -0700</bug_when>
    <thetext>Created attachment 259790
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120462</commentid>
    <comment_count>3</comment_count>
      <attachid>259790</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-24 16:46:00 -0700</bug_when>
    <thetext>Comment on attachment 259790
Proposed Fix

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

Nice!

&gt; LayoutTests/inspector/protocol/backend-dispatcher-argument-errors.html:71
&gt; +        name : &quot;RequiredParameterWrongType&quot;,
&gt; +        description: &quot;The backend should return an error if a message has an optional parameter with wrong type.&quot;,

The name here should be &quot;OptionalParameterWrongType&quot;.

&gt; LayoutTests/inspector/protocol/backend-dispatcher-malformed-message-errors.html:17
&gt; +    let errorCodes = {
&gt; +        ParseError: -32700,
&gt; +        InvalidRequest: -32600,
&gt; +        MethodNotFound: -32601,
&gt; +        InvalidParams: -32602,
&gt; +        InternalError: -32603,
&gt; +        ServerError: -32000,
&gt; +    };

Should InspectorBackend expose these? Currently it only checks for -32000 but it could expose these constants. Then we wouldn&apos;t need to duplicate it in these tests.

&gt; LayoutTests/inspector/protocol/backend-dispatcher-malformed-message-errors.html:39
&gt; +                })

Style: semicolon? I&apos;m normally very lax about commenting on style of tests, but seeing a they are getting rather clean / uniform now.

&gt; LayoutTests/inspector/protocol/backend-dispatcher-malformed-message-errors.html:46
&gt; +        name : &quot;UnparseableStringMessage&quot;,

Style: &quot;name :&quot; =&gt; &quot;name:&quot; (for all of these in both tests)

&gt; LayoutTests/inspector/protocol/backend-dispatcher-malformed-message-errors.html:141
&gt; +    addErrorResponseTestCase({
&gt; +        name : &quot;MethodFieldWithBadFormatting5&quot;,
&gt; +        description: &quot;The backend should return an error if a message has a &apos;method&apos; field not formatted as &apos;Domain.Methodname&apos;.&quot;,
&gt; +        message: {id: 123, method: &quot;.FooBar.&quot;},
&gt; +        expectedError: &quot;InvalidRequest&quot;
&gt; +    });

Another similar one would be Foo.bar.baz. Both covered by the same condition here, but might be good to test separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120468</commentid>
    <comment_count>4</comment_count>
      <attachid>259790</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-24 16:55:55 -0700</bug_when>
    <thetext>Comment on attachment 259790
Proposed Fix

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

&gt;&gt; LayoutTests/inspector/protocol/backend-dispatcher-malformed-message-errors.html:17
&gt;&gt; +    };
&gt; 
&gt; Should InspectorBackend expose these? Currently it only checks for -32000 but it could expose these constants. Then we wouldn&apos;t need to duplicate it in these tests.

Meh, they are part of the JSON-RPC specification.

Besides, this test doesn&apos;t cover InspetorBackend.js, which should be a separate test (focused on correct resolve/reject/callback args).

&gt;&gt; LayoutTests/inspector/protocol/backend-dispatcher-malformed-message-errors.html:39
&gt;&gt; +                })
&gt; 
&gt; Style: semicolon? I&apos;m normally very lax about commenting on style of tests, but seeing a they are getting rather clean / uniform now.

It&apos;s a promise chain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120469</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-24 16:58:56 -0700</bug_when>
    <thetext>Committed r188897: &lt;http://trac.webkit.org/changeset/188897&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259790</attachid>
            <date>2015-08-24 16:29:14 -0700</date>
            <delta_ts>2022-03-01 02:46:27 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-147097-20150824162904.patch</filename>
            <type>text/plain</type>
            <size>31354</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
M2IwOGQ0N2I1OTE3OGQzMGJlYTM1Nzk2NTQ2MGNiY2MxMDE5OTZlLi5lZGEwY2QyYTg2Y2QyOWNh
YTk1ZWU1NjIzMTEzY2U5NTc4ZTAxYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNS0wOC0yNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgcHJvdG9jb2wgdGVzdCBmb3IgZXhpc3RpbmcgZXJy
b3IgaGFuZGxpbmcgcGVyZm9ybWVkIGJ5IHRoZSBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwOTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIG5ldyB0ZXN0IHJldmVhbGVkIHRoYXQgdGhl
IHByb3RvY29sICJtZXRob2QiIHBhcmFtZXRlciB3YXMgYmVpbmcgcGFyc2VkIGluIGEgbmFpdmUg
d2F5LgorICAgICAgICBSZXdyaXRlIGl0IHRvIHVzZSBTdHJpbmc6OnNwbGl0IGFuZCBpbXByb3Zl
IGVycm9yIGNoZWNraW5nIHRvIGF2b2lkIGZhaWxpbmcgbGF0ZXIuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorCiAyMDE1LTA4LTIyICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHN0cmluZyBjb25jYXRlbmF0aW9u
IHNob3VsZG4ndCBiZSBwbGF5aW5nIGZhc3QgYW5kIGxvb3NlIHdpdGggZWZmZWN0cyBhbmQgT1NS
IGV4aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDM1OTRmZTNlNzU2ZmUyNjIwOWM4MzNl
ZTAxYWI2ZGQ1NzU0NGZlMDMuLjJjYWRlNGY5NzlhZWM2ZDliZWMzODEzOGUwZTVkYjk2N2JlYjRm
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA4LTI0
ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGFkZCBwcm90b2NvbCB0ZXN0IGZvciBleGlzdGluZyBlcnJvciBoYW5kbGluZyBwZXJmb3JtZWQg
YnkgdGhlIGJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NzA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIHdheSB0byBzZW5kIHJhdyBtZXNzYWdlcyB0byB0aGUgYmFja2VuZCB3aGls
ZSBzdGlsbCBhd2FpdGluZyBvbiByZXNwb25zZXMuCisgICAgICAgIFRoaXMgaXMgbmVjZXNzYXJ5
IHRvIHRlc3QgcHJvdG9jb2wgZXJyb3IgaGFuZGxpbmcgaW4gdGhlIGluc3BlY3RvciBiYWNrZW5k
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L0luc3BlY3RvclByb3RvY29sLmpzOgor
ICAgICAgICAoSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQpOgorICAgICAgICAoSW5zcGVj
dG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKTogVXNlIGF3YWl0TWVzc2FnZSBpbnRlcm5hbGx5Lgor
ICAgICAgICAoSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRNZXNzYWdlKTogQWRkZWQuIFVzZSBhIGR1
bW15IHJlcXVlc3RJZCBpZiBub25lIGlzIHN1cHBsaWVkLgorICAgICAgICAoSW5zcGVjdG9yUHJv
dG9jb2wuX3NlbmRNZXNzYWdlKTogQWRkZWQuCisgICAgICAgIChJbnNwZWN0b3JQcm90b2NvbC5k
aXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCk6CisgICAgICAgIFJlamVjdCB3aXRoIHRoZSBlcnJv
ciBvYmplY3QgaW5zdGVhZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgc28gZXJyb3IgY29kZS9kYXRh
IGNhbiBiZSBjaGVja2VkLgorICAgICAgICAoSW5zcGVjdG9yUHJvdG9jb2wuc2VuZE1lc3NhZ2Up
OiBEZWxldGVkLCBpdCBpcyBub3cgYSBwcml2YXRlIG1ldGhvZC4KKwogMjAxNS0wOC0yMyAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogRHJvcCB3ZWJraXQgcHJlZml4ZXMgZnJvbSBhbmltYXRpb24sIGtleWZyYW1lcyBhbmQgdHJh
bnNmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCmluZGV4IGY4OGNmYmRhYmMxZGM5Y2Vh
ZjhmNTAzMGM2NzVkNDk0ZDc2MDM4MTkuLmQ2N2FiOTk0YmVlYmI5MGFiNDhlMmMyZjFmYTNjZTNk
MDY2NWI2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCkBAIC0xMDYsMjcgKzEwNiwy
OCBAQCB2b2lkIEJhY2tlbmREaXNwYXRjaGVyOjpkaXNwYXRjaChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgbWV0aG9kOwotICAgIGlm
ICghbWV0aG9kVmFsdWUtPmFzU3RyaW5nKG1ldGhvZCkpIHsKKyAgICBTdHJpbmcgbWV0aG9kU3Ry
aW5nOworICAgIGlmICghbWV0aG9kVmFsdWUtPmFzU3RyaW5nKG1ldGhvZFN0cmluZykpIHsKICAg
ICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcigmY2FsbElkLCBJbnZhbGlkUmVxdWVzdCwgQVNDSUlM
aXRlcmFsKCJUaGUgdHlwZSBvZiAnbWV0aG9kJyBwcm9wZXJ0eSBtdXN0IGJlIHN0cmluZyIpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNpemVfdCBwb3NpdGlvbiA9IG1ldGhvZC5m
aW5kKCcuJyk7Ci0gICAgaWYgKHBvc2l0aW9uID09IFdURjo6bm90Rm91bmQpIHsKKyAgICBWZWN0
b3I8U3RyaW5nPiBkb21haW5BbmRNZXRob2Q7CisgICAgbWV0aG9kU3RyaW5nLnNwbGl0KCcuJywg
dHJ1ZSwgZG9tYWluQW5kTWV0aG9kKTsKKyAgICBpZiAoZG9tYWluQW5kTWV0aG9kLnNpemUoKSAh
PSAyIHx8ICFkb21haW5BbmRNZXRob2RbMF0ubGVuZ3RoKCkgfHwgIWRvbWFpbkFuZE1ldGhvZFsx
XS5sZW5ndGgoKSkgewogICAgICAgICByZXBvcnRQcm90b2NvbEVycm9yKCZjYWxsSWQsIEludmFs
aWRSZXF1ZXN0LCBBU0NJSUxpdGVyYWwoIlRoZSAnbWV0aG9kJyBwcm9wZXJ0eSB3YXMgZm9ybWF0
dGVkIGluY29ycmVjdGx5LiBJdCBzaG91bGQgYmUgJ0RvbWFpbi5tZXRob2QnIikpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5nIGRvbWFpbiA9IG1ldGhvZC5zdWJzdHJpbmco
MCwgcG9zaXRpb24pOworICAgIFN0cmluZyBkb21haW4gPSBkb21haW5BbmRNZXRob2RbMF07CiAg
ICAgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIqIGRvbWFpbkRpc3BhdGNoZXIgPSBtX2Rp
c3BhdGNoZXJzLmdldChkb21haW4pOwogICAgIGlmICghZG9tYWluRGlzcGF0Y2hlcikgewogICAg
ICAgICByZXBvcnRQcm90b2NvbEVycm9yKCZjYWxsSWQsIE1ldGhvZE5vdEZvdW5kLCAiJyIgKyBk
b21haW4gKyAiJyBkb21haW4gd2FzIG5vdCBmb3VuZCIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgU3RyaW5nIGRvbWFpbk1ldGhvZCA9IG1ldGhvZC5zdWJzdHJpbmcocG9zaXRpb24g
KyAxKTsKLSAgICBkb21haW5EaXNwYXRjaGVyLT5kaXNwYXRjaChjYWxsSWQsIGRvbWFpbk1ldGhv
ZCwgbWVzc2FnZU9iamVjdC5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBTdHJpbmcgbWV0aG9kID0g
ZG9tYWluQW5kTWV0aG9kWzFdOworICAgIGRvbWFpbkRpc3BhdGNoZXItPmRpc3BhdGNoKGNhbGxJ
ZCwgbWV0aG9kLCBtZXNzYWdlT2JqZWN0LnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiB2b2lkIEJh
Y2tlbmREaXNwYXRjaGVyOjpzZW5kUmVzcG9uc2UobG9uZyBjYWxsSWQsIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiYgcmVzdWx0LCBjb25zdCBFcnJvclN0cmluZyYgaW52b2NhdGlvbkVycm9yKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9JbnNw
ZWN0b3JQcm90b2NvbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvSW5zcGVjdG9yUHJvdG9jb2wuanMKaW5kZXggNThlOGFhMDQ4NzkxMWUyM2IxNjNjZjI4MjEy
MTc2Nzc3NjcxZTQxMC4uNDg5NTQyY2QyYjcxYmQ0OTBkNzUyNjEzNzY4ODhkNDdlMjQyNzg5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9JbnNw
ZWN0b3JQcm90b2NvbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0L0luc3BlY3RvclByb3RvY29sLmpzCkBAIC0yNiw2ICsyNiw3IEBACiAKIEluc3BlY3Rv
clByb3RvY29sID0ge307CiBJbnNwZWN0b3JQcm90b2NvbC5fZGlzcGF0Y2hUYWJsZSA9IFtdOwor
SW5zcGVjdG9yUHJvdG9jb2wuX3BsYWNlaG9sZGVyUmVxdWVzdElkcyA9IFtdOwogSW5zcGVjdG9y
UHJvdG9jb2wuX3JlcXVlc3RJZCA9IC0xOwogSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVy
ID0ge307CiAKQEAgLTM4LDcgKzM5LDcgQEAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQg
PSBmdW5jdGlvbihtZXRob2RPck9iamVjdCwgcGFyYW1zLCBoYW5kbGVyKQogCiAgICAgdGhpcy5f
ZGlzcGF0Y2hUYWJsZVsrK3RoaXMuX3JlcXVlc3RJZF0gPSBoYW5kbGVyOwogICAgIGxldCBtZXNz
YWdlT2JqZWN0ID0ge21ldGhvZCwgcGFyYW1zLCBpZDogdGhpcy5fcmVxdWVzdElkfTsKLSAgICB0
aGlzLnNlbmRNZXNzYWdlKG1lc3NhZ2VPYmplY3QpOworICAgIHRoaXMuX3NlbmRNZXNzYWdlKG1l
c3NhZ2VPYmplY3QpOwogCiAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RJZDsKIH0KQEAgLTQ2LDEw
ICs0NywyNiBAQCBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCA9IGZ1bmN0aW9uKG1ldGhv
ZE9yT2JqZWN0LCBwYXJhbXMsIGhhbmRsZXIpCiBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1h
bmQgPSBmdW5jdGlvbihhcmdzKQogewogICAgIGxldCB7bWV0aG9kLCBwYXJhbXN9ID0gYXJnczsK
KyAgICBsZXQgbWVzc2FnZU9iamVjdCA9IHttZXRob2QsIHBhcmFtcywgaWQ6ICsrdGhpcy5fcmVx
dWVzdElkfTsKKworICAgIHJldHVybiB0aGlzLmF3YWl0TWVzc2FnZShtZXNzYWdlT2JqZWN0KTsK
K30KKworSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRNZXNzYWdlID0gZnVuY3Rpb24obWVzc2FnZU9i
amVjdCkKK3sKKyAgICAvLyBTZW5kIGEgcmF3IG1lc3NhZ2UgdG8gdGhlIGJhY2tlbmQuIE1vc3Rs
eSB1c2VkIHRvIHRlc3QgdGhlIGJhY2tlbmQncyBlcnJvciBoYW5kbGluZy4KICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICB0aGlzLl9kaXNwYXRj
aFRhYmxlWysrdGhpcy5fcmVxdWVzdElkXSA9IHtyZXNvbHZlLCByZWplY3R9OwotICAgICAgICBs
ZXQgbWVzc2FnZU9iamVjdCA9IHttZXRob2QsIHBhcmFtcywgaWQ6IHRoaXMuX3JlcXVlc3RJZH07
Ci0gICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UobWVzc2FnZU9iamVjdCk7CisgICAgICAgIGxldCBy
ZXF1ZXN0SWQgPSBtZXNzYWdlT2JqZWN0LmlkOworCisgICAgICAgIC8vIElmIHRoZSBjYWxsZXIg
ZGlkIG5vdCBwcm92aWRlIGFuIGlkLCB0aGVuIG1ha2Ugb25lIHVwIHNvIHRoYXQgdGhlIHJlc3Bv
bnNlCisgICAgICAgIC8vIGNhbiBiZSB1c2VkIHRvIHNldHRsZSBhIHByb21pc2UuCisgICAgICAg
IGlmICh0eXBlb2YgcmVxdWVzdElkICE9PSAibnVtYmVyIikgeworICAgICAgICAgICAgcmVxdWVz
dElkID0gKyt0aGlzLl9yZXF1ZXN0SWQ7CisgICAgICAgICAgICB0aGlzLl9wbGFjZWhvbGRlclJl
cXVlc3RJZHMucHVzaChyZXF1ZXN0SWQpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fZGlz
cGF0Y2hUYWJsZVtyZXF1ZXN0SWRdID0ge3Jlc29sdmUsIHJlamVjdH07CisgICAgICAgIHRoaXMu
X3NlbmRNZXNzYWdlKG1lc3NhZ2VPYmplY3QpOwogICAgIH0pOwogfQogCkBAIC02Nyw2ICs4NCwx
NiBAQCBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdEV2ZW50ID0gZnVuY3Rpb24oYXJncykKICAgICB9
KTsKIH0KIAorSW5zcGVjdG9yUHJvdG9jb2wuX3NlbmRNZXNzYWdlID0gZnVuY3Rpb24obWVzc2Fn
ZU9iamVjdCkKK3sKKyAgICBsZXQgbWVzc2FnZVN0cmluZyA9IHR5cGVvZiBtZXNzYWdlT2JqZWN0
ICE9PSAic3RyaW5nIiA/IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QpIDogbWVzc2FnZU9i
amVjdDsKKworICAgIGlmIChQcm90b2NvbFRlc3QuZHVtcEluc3BlY3RvclByb3RvY29sTWVzc2Fn
ZXMpCisgICAgICAgIGNvbnNvbGUubG9nKGBmcm9udGVuZDogJHttZXNzYWdlU3RyaW5nfWApOwor
CisgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNlbmRNZXNzYWdlVG9CYWNrZW5kKG1lc3NhZ2VT
dHJpbmcpOworfQorCiBJbnNwZWN0b3JQcm90b2NvbC5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rp
b24oZXZlbnRUeXBlT3JPYmplY3QsIGxpc3RlbmVyKQogewogICAgIGxldCBldmVudCA9IGV2ZW50
VHlwZU9yT2JqZWN0OwpAQCAtOTMsMTYgKzEyMCw2IEBAIEluc3BlY3RvclByb3RvY29sLmFkZEV2
ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudFR5cGVPck9iamVjdCwgbGlzdGVuZXIpCiAgICAg
bGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpOwogfQogCi1JbnNwZWN0b3JQcm90b2NvbC5zZW5kTWVz
c2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi17Ci0gICAgLy8gVGhpcyBtYXRjaGVzIHRo
ZSBkZWJ1ZyBkdW1waW5nIGluIEluc3BlY3RvckJhY2tlbmQsIHdoaWNoIGlzIGJ5cGFzc2VkCi0g
ICAgLy8gYnkgSW5zcGVjdG9yUHJvdG9jb2wuIFJldHVybiBtZXNzYWdlcyBzaG91bGQgYmUgZHVt
cGVkIGJ5IEluc3BlY3RvckJhY2tlbmQuCi0gICAgaWYgKFByb3RvY29sVGVzdC5kdW1wSW5zcGVj
dG9yUHJvdG9jb2xNZXNzYWdlcykKLSAgICAgICAgY29uc29sZS5sb2coImZyb250ZW5kOiAiICsg
SlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdCkpOwotCi0gICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LnNlbmRNZXNzYWdlVG9CYWNrZW5kKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QpKTsK
LX0KLQogSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvciA9IGZ1bmN0aW9uKHJlc3BvbnNl
T2JqZWN0KQogewogICAgIGlmIChyZXNwb25zZU9iamVjdC5lcnJvcikgewpAQCAtMTIxLDYgKzEz
OCwxMiBAQCBJbnNwZWN0b3JQcm90b2NvbC5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAKICAgICAvLyBJZiB0aGUgbWVzc2FnZSBoYXMgYW4gaWQs
IHRoZW4gaXQgaXMgYSByZXBseSB0byBhIGNvbW1hbmQuCiAgICAgbGV0IG1lc3NhZ2VJZCA9IG1l
c3NhZ2VPYmplY3QuaWQ7CisKKyAgICAvLyBJZiB0aGUgaWQgaXMgJ251bGwnLCB0aGVuIGl0IG1h
eSBiZSBhbiBlcnJvciByZXNwb25zZS4KKyAgICBpZiAobWVzc2FnZUlkID09PSBudWxsKQorICAg
ICAgICBtZXNzYWdlSWQgPSBJbnNwZWN0b3JQcm90b2NvbC5fcGxhY2Vob2xkZXJSZXF1ZXN0SWRz
LnNoaWZ0KCk7CisKKyAgICAvLyBJZiB3ZSBjb3VsZCBmaWd1cmUgb3V0IGEgcmVxdWVzdElkLCB0
aGVuIGRpc3BhdGNoIHRoZSBtZXNzYWdlLgogICAgIGlmICh0eXBlb2YgbWVzc2FnZUlkID09PSAi
bnVtYmVyIikgewogICAgICAgICBsZXQgaGFuZGxlciA9IEluc3BlY3RvclByb3RvY29sLl9kaXNw
YXRjaFRhYmxlW21lc3NhZ2VJZF07CiAgICAgICAgIGlmICghaGFuZGxlcikKQEAgLTEzMSw3ICsx
NTQsNyBAQCBJbnNwZWN0b3JQcm90b2NvbC5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBoYW5kbGVyID09
PSAib2JqZWN0IikgewogICAgICAgICAgICAgbGV0IHtyZXNvbHZlLCByZWplY3R9ID0gaGFuZGxl
cjsKICAgICAgICAgICAgIGlmICgiZXJyb3IiIGluIG1lc3NhZ2VPYmplY3QpCi0gICAgICAgICAg
ICAgICAgcmVqZWN0KG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAg
ICAgcmVqZWN0KG1lc3NhZ2VPYmplY3QuZXJyb3IpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIHJlc29sdmUobWVzc2FnZU9iamVjdC5yZXN1bHQpOwogICAgICAgICB9CkBAIC0x
NDksNyArMTcyLDcgQEAgSW5zcGVjdG9yUHJvdG9jb2wuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tl
bmQgPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBo
YW5kbGVyID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgbGV0IHtyZXNvbHZlLCByZWplY3R9
ID0gaGFuZGxlcjsKICAgICAgICAgICAgIGlmICgiZXJyb3IiIGluIG1lc3NhZ2VPYmplY3QpCi0g
ICAgICAgICAgICAgICAgcmVqZWN0KG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSk7CisgICAg
ICAgICAgICAgICAgcmVqZWN0KG1lc3NhZ2VPYmplY3QuZXJyb3IpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHJlc29sdmUobWVzc2FnZU9iamVjdC5yZXN1bHQpOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNDY3Mzc0OTYyNzE3MDVjMTQ2OGM0Nzc4YWY4OWY0MzQzMmVlODQwYi4uYjJi
OWMxMWY1NGFmOTE0MzI3YzI3Yjk5YzNmMjk2MDkwOGUyNTBjMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE1LTA4LTI0ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGFkZCBwcm90b2NvbCB0ZXN0IGZvciBleGlzdGluZyBlcnJvciBoYW5k
bGluZyBwZXJmb3JtZWQgYnkgdGhlIGJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGJ1bmNoIG9mIHRlc3QgY2FzZXMgdG8gY292ZXIg
ZXhpc3RpbmcgZXJyb3IgaGFuZGxpbmcgYnkgdGhlIGJhY2tlbmQgZGlzcGF0Y2hlci4KKworICAg
ICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9iYWNrZW5kLWRpc3BhdGNoZXItYXJndW1lbnQtZXJy
b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL2Jh
Y2tlbmQtZGlzcGF0Y2hlci1hcmd1bWVudC1lcnJvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3Byb3RvY29sL2JhY2tlbmQtZGlzcGF0Y2hlci1tYWxmb3JtZWQtbWVzc2FnZS1l
cnJvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wv
YmFja2VuZC1kaXNwYXRjaGVyLW1hbGZvcm1lZC1tZXNzYWdlLWVycm9ycy5odG1sOiBBZGRlZC4K
KwogMjAxNS0wOC0yMyAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFY
OiBGaXggYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS5odG1s
IHRlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9iYWNrZW5k
LWRpc3BhdGNoZXItYXJndW1lbnQtZXJyb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm90b2NvbC9iYWNrZW5kLWRpc3BhdGNoZXItYXJndW1lbnQtZXJyb3JzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYjc3MDc0N2RiZTU4ZjA4N2JmOTk3Y2M4OWYzZjMyMTVjOTFi
YWEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL2Jh
Y2tlbmQtZGlzcGF0Y2hlci1hcmd1bWVudC1lcnJvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NTcgQEAKK1Rlc3RpbmcgdGhlIGluc3BlY3RvciBiYWNrZW5kJ3MgZXJyb3IgaGFuZGxpbmcgd2hl
biBzZW5kaW5nIG1lc3NhZ2VzIHdpdGggd3JvbmcgcGFyYW1ldGVycy4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IFByb3RvY29sLkFyZ3VtZW50TW9kZUVycm9ycworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFBhcmFtZXRlcnNOb3RBbk9iamVjdAorU2VuZGluZyBtZXNzYWdlOiB7ImlkIjoxMjMs
Im1ldGhvZCI6IlJ1bnRpbWUuZXZhbHVhdGUiLCJwYXJhbXMiOiJqdW5rIn0KK1BBU1M6IHRoZSBi
YWNrZW5kIHNob3VsZCBzZW5kIGEgcHJvdG9jb2wgZXJyb3Igd2hlbiByZWNlaXZpbmcgYW4gaW52
YWxpZCBtZXNzYWdlLgorUEFTUzogdGhlIHJlcG9ydGVkIGVycm9yIHNob3VsZCBiZSAiSW52YWxp
ZFBhcmFtcyIgKC0zMjYwMikKK0FjdHVhbCBlcnJvciBjb2RlOiAtMzI2MDIKK0FjdHVhbCBlcnJv
ciBtZXNzYWdlOiBTb21lIGFyZ3VtZW50cyBvZiBtZXRob2QgJ1J1bnRpbWUuZXZhbHVhdGUnIGNh
bid0IGJlIHByb2Nlc3NlZAorQWN0dWFsIGVycm9yIGRhdGE6ICdwYXJhbXMnIG9iamVjdCBtdXN0
IGNvbnRhaW4gcmVxdWlyZWQgcGFyYW1ldGVyICdleHByZXNzaW9uJyB3aXRoIHR5cGUgJ1N0cmlu
ZycuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXIKK1Nl
bmRpbmcgbWVzc2FnZTogeyJpZCI6MTIzLCJtZXRob2QiOiJSdW50aW1lLmV2YWx1YXRlIiwicGFy
YW1zIjp7InN0dWZmIjoxMjN9fQorUEFTUzogdGhlIGJhY2tlbmQgc2hvdWxkIHNlbmQgYSBwcm90
b2NvbCBlcnJvciB3aGVuIHJlY2VpdmluZyBhbiBpbnZhbGlkIG1lc3NhZ2UuCitQQVNTOiB0aGUg
cmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICJJbnZhbGlkUGFyYW1zIiAoLTMyNjAyKQorQWN0dWFs
IGVycm9yIGNvZGU6IC0zMjYwMgorQWN0dWFsIGVycm9yIG1lc3NhZ2U6IFNvbWUgYXJndW1lbnRz
IG9mIG1ldGhvZCAnUnVudGltZS5ldmFsdWF0ZScgY2FuJ3QgYmUgcHJvY2Vzc2VkCitBY3R1YWwg
ZXJyb3IgZGF0YTogUGFyYW1ldGVyICdleHByZXNzaW9uJyB3aXRoIHR5cGUgJ1N0cmluZycgd2Fz
IG5vdCBmb3VuZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlcXVpcmVkUGFyYW1ldGVyV3Jv
bmdUeXBlCitTZW5kaW5nIG1lc3NhZ2U6IHsiaWQiOjEyMywibWV0aG9kIjoiUnVudGltZS5ldmFs
dWF0ZSIsInBhcmFtcyI6eyJleHByZXNzaW9uIjpbXX19CitQQVNTOiB0aGUgYmFja2VuZCBzaG91
bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVjZWl2aW5nIGFuIGludmFsaWQgbWVzc2Fn
ZS4KK1BBU1M6IHRoZSByZXBvcnRlZCBlcnJvciBzaG91bGQgYmUgIkludmFsaWRQYXJhbXMiICgt
MzI2MDIpCitBY3R1YWwgZXJyb3IgY29kZTogLTMyNjAyCitBY3R1YWwgZXJyb3IgbWVzc2FnZTog
U29tZSBhcmd1bWVudHMgb2YgbWV0aG9kICdSdW50aW1lLmV2YWx1YXRlJyBjYW4ndCBiZSBwcm9j
ZXNzZWQKK0FjdHVhbCBlcnJvciBkYXRhOiBQYXJhbWV0ZXIgJ2V4cHJlc3Npb24nIGhhcyB3cm9u
ZyB0eXBlLiBJdCBtdXN0IGJlICdTdHJpbmcnLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVx
dWlyZWRQYXJhbWV0ZXJXcm9uZ1R5cGUKK1NlbmRpbmcgbWVzc2FnZTogeyJpZCI6MTIzLCJtZXRo
b2QiOiJSdW50aW1lLmV2YWx1YXRlIiwicGFyYW1zIjp7ImV4cHJlc3Npb24iOiI0MiIsImluY2x1
ZGVDb21tYW5kTGluZUFQSSI6MTIzfX0KK1BBU1M6IHRoZSBiYWNrZW5kIHNob3VsZCBzZW5kIGEg
cHJvdG9jb2wgZXJyb3Igd2hlbiByZWNlaXZpbmcgYW4gaW52YWxpZCBtZXNzYWdlLgorUEFTUzog
dGhlIHJlcG9ydGVkIGVycm9yIHNob3VsZCBiZSAiSW52YWxpZFBhcmFtcyIgKC0zMjYwMikKK0Fj
dHVhbCBlcnJvciBjb2RlOiAtMzI2MDIKK0FjdHVhbCBlcnJvciBtZXNzYWdlOiBTb21lIGFyZ3Vt
ZW50cyBvZiBtZXRob2QgJ1J1bnRpbWUuZXZhbHVhdGUnIGNhbid0IGJlIHByb2Nlc3NlZAorQWN0
dWFsIGVycm9yIGRhdGE6IFBhcmFtZXRlciAnaW5jbHVkZUNvbW1hbmRMaW5lQVBJJyBoYXMgd3Jv
bmcgdHlwZS4gSXQgbXVzdCBiZSAnQm9vbGVhbicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBU
ZXN0RXJyb3JDb2RlRm9yU3luY1NlcnZlckVycm9yCitTZW5kaW5nIG1lc3NhZ2U6IHsiaWQiOjEy
MywibWV0aG9kIjoiRGF0YWJhc2UuZ2V0RGF0YWJhc2VUYWJsZU5hbWVzIiwicGFyYW1zIjp7ImRh
dGFiYXNlSWQiOiJ0aGlzaXNOb3RBRGF0YWJhc2UifX0KK1BBU1M6IHRoZSBiYWNrZW5kIHNob3Vs
ZCBzZW5kIGEgcHJvdG9jb2wgZXJyb3Igd2hlbiByZWNlaXZpbmcgYW4gaW52YWxpZCBtZXNzYWdl
LgorUEFTUzogdGhlIHJlcG9ydGVkIGVycm9yIHNob3VsZCBiZSAiU2VydmVyRXJyb3IiICgtMzIw
MDApCitBY3R1YWwgZXJyb3IgY29kZTogLTMyMDAwCitBY3R1YWwgZXJyb3IgbWVzc2FnZTogRGF0
YWJhc2UgYWdlbnQgaXMgbm90IGVuYWJsZWQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFRlc3RF
cnJvckNvZGVGb3JBc3luY1NlcnZlckVycm9yCitTZW5kaW5nIG1lc3NhZ2U6IHsiaWQiOjEyMywi
bWV0aG9kIjoiRGF0YWJhc2UuZXhlY3V0ZVNRTCIsInBhcmFtcyI6eyJkYXRhYmFzZUlkIjoidGhp
c2lzTm90QURhdGFiYXNlIiwicXVlcnkiOiJhc2RmIn19CitQQVNTOiB0aGUgYmFja2VuZCBzaG91
bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVjZWl2aW5nIGFuIGludmFsaWQgbWVzc2Fn
ZS4KK1BBU1M6IHRoZSByZXBvcnRlZCBlcnJvciBzaG91bGQgYmUgIlNlcnZlckVycm9yIiAoLTMy
MDAwKQorQWN0dWFsIGVycm9yIGNvZGU6IC0zMjAwMAorQWN0dWFsIGVycm9yIG1lc3NhZ2U6IERh
dGFiYXNlIGFnZW50IGlzIG5vdCBlbmFibGVkCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDb21t
YW5kV2l0aEJhZEFyZ3VtZW50VmFsdWUKK1NlbmRpbmcgbWVzc2FnZTogeyJpZCI6MTIzLCJtZXRo
b2QiOiJSdW50aW1lLmdldFByb3BlcnRpZXMiLCJwYXJhbXMiOnsib2JqZWN0SWQiOiJ0aGlzaXNO
b3RBbklkIn19CitQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9y
IHdoZW4gcmVjZWl2aW5nIGFuIGludmFsaWQgbWVzc2FnZS4KK1BBU1M6IHRoZSByZXBvcnRlZCBl
cnJvciBzaG91bGQgYmUgIlNlcnZlckVycm9yIiAoLTMyMDAwKQorQWN0dWFsIGVycm9yIGNvZGU6
IC0zMjAwMAorQWN0dWFsIGVycm9yIG1lc3NhZ2U6IEluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvYmFja2VuZC1kaXNw
YXRjaGVyLWFyZ3VtZW50LWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3Rv
Y29sL2JhY2tlbmQtZGlzcGF0Y2hlci1hcmd1bWVudC1lcnJvcnMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MDhiZTkyZDI4NGYzMDE3YTViNjhmMTkwMTgzYmEyMWY4NWRmY2Y0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL2JhY2tlbmQtZGlzcGF0Y2hlci1hcmd1
bWVudC1lcnJvcnMuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUHJv
dG9jb2wuQXJndW1lbnRNb2RlRXJyb3JzIik7CisKKyAgICBsZXQgZXJyb3JDb2RlcyA9IHsKKyAg
ICAgICAgUGFyc2VFcnJvcjogLTMyNzAwLAorICAgICAgICBJbnZhbGlkUmVxdWVzdDogLTMyNjAw
LAorICAgICAgICBNZXRob2ROb3RGb3VuZDogLTMyNjAxLAorICAgICAgICBJbnZhbGlkUGFyYW1z
OiAtMzI2MDIsCisgICAgICAgIEludGVybmFsRXJyb3I6IC0zMjYwMywKKyAgICAgICAgU2VydmVy
RXJyb3I6IC0zMjAwMCwKKyAgICB9OworCisgICAgZnVuY3Rpb24gYWRkRXJyb3JSZXNwb25zZVRl
c3RDYXNlKGFyZ3MpCisgICAgeworICAgICAgICBsZXQge25hbWUsIGRlc2NyaXB0aW9uLCBtZXNz
YWdlLCBleHBlY3RlZEVycm9yfSA9IGFyZ3M7CisKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLAorICAgICAgICAg
ICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCBzdHJp
bmdpZmllZE1lc3NhZ2UgPSAodHlwZW9mIG1lc3NhZ2UgIT09ICJzdHJpbmciKSA/IEpTT04uc3Ry
aW5naWZ5KG1lc3NhZ2UpIDogbWVzc2FnZTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJTZW5kaW5nIG1lc3NhZ2U6ICIgKyBzdHJpbmdpZmllZE1lc3NhZ2UpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0TWVzc2FnZShtZXNzYWdlKQorICAgICAgICAg
ICAgICAgIC50aGVuKGZ1bmN0aW9uIHJlc29sdmVkKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHRoZSBiYWNrZW5kIHNob3VsZCBzZW5kIGEg
cHJvdG9jb2wgZXJyb3Igd2hlbiByZWNlaXZpbmcgYW4gaW52YWxpZCBtZXNzYWdlLiIpOworICAg
ICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiBy
ZWplY3RlZChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVj
ZWl2aW5nIGFuIGludmFsaWQgbWVzc2FnZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmV4cGVjdFRoYXQocmVzcG9uc2UuY29kZSA9PT0gZXJyb3JDb2Rlc1tleHBlY3RlZEVy
cm9yXSwgYHRoZSByZXBvcnRlZCBlcnJvciBzaG91bGQgYmUgIiR7ZXhwZWN0ZWRFcnJvcn0iICgk
e2Vycm9yQ29kZXNbZXhwZWN0ZWRFcnJvcl19KWApOworICAgICAgICAgICAgICAgICAgICBQcm90
b2NvbFRlc3QubG9nKCJBY3R1YWwgZXJyb3IgY29kZTogIiArIHJlc3BvbnNlLmNvZGUpOworICAg
ICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJBY3R1YWwgZXJyb3IgbWVzc2FnZTog
IiArIHJlc3BvbnNlLm1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uu
ZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkFjdHVhbCBl
cnJvciBkYXRhOiAiICsgcmVzcG9uc2UuZGF0YSk7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmNhdGNoKHJlamVj
dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZEVycm9yUmVz
cG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5hbWUgOiAiUGFyYW1ldGVyc05vdEFuT2JqZWN0IiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91bGQgcmV0dXJuIGFuIGVycm9y
IGlmIGEgbWVzc2FnZSBoYXMgYSBub24tb2JqZWN0ICdwYXJhbXMnLiIsCisgICAgICAgIG1lc3Nh
Z2U6IHtpZDogMTIzLCBtZXRob2Q6ICJSdW50aW1lLmV2YWx1YXRlIiwgcGFyYW1zOiAianVuayJ9
LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiSW52YWxpZFBhcmFtcyIKKyAgICB9KTsKKworICAg
IGFkZEVycm9yUmVzcG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5hbWUgOiAiTWlzc2luZ1JlcXVp
cmVkUGFyYW1ldGVyIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91bGQg
cmV0dXJuIGFuIGVycm9yIGlmIGEgbWVzc2FnZSBpcyBtaXNzaW5nIGEgcmVxdWlyZWQgcGFyYW1l
dGVyLiIsCisgICAgICAgIG1lc3NhZ2U6IHtpZDogMTIzLCBtZXRob2Q6ICJSdW50aW1lLmV2YWx1
YXRlIiwgcGFyYW1zOiB7c3R1ZmY6IDEyM319LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiSW52
YWxpZFBhcmFtcyIKKyAgICB9KTsKKworICAgIGFkZEVycm9yUmVzcG9uc2VUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWUgOiAiUmVxdWlyZWRQYXJhbWV0ZXJXcm9uZ1R5cGUiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIlRoZSBiYWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBtZXNzYWdl
IGhhcyBhIHJlcXVpcmVkIHBhcmFtZXRlciB3aXRoIHdyb25nIHR5cGUuIiwKKyAgICAgICAgbWVz
c2FnZToge2lkOiAxMjMsIG1ldGhvZDogIlJ1bnRpbWUuZXZhbHVhdGUiLCBwYXJhbXM6IHtleHBy
ZXNzaW9uOiBbXX19LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiSW52YWxpZFBhcmFtcyIKKyAg
ICB9KTsKKworICAgIGFkZEVycm9yUmVzcG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5hbWUgOiAi
UmVxdWlyZWRQYXJhbWV0ZXJXcm9uZ1R5cGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRoZSBi
YWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBtZXNzYWdlIGhhcyBhbiBvcHRpb25h
bCBwYXJhbWV0ZXIgd2l0aCB3cm9uZyB0eXBlLiIsCisgICAgICAgIG1lc3NhZ2U6IHtpZDogMTIz
LCBtZXRob2Q6ICJSdW50aW1lLmV2YWx1YXRlIiwgcGFyYW1zOiB7ZXhwcmVzc2lvbjogIjQyIiwg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJOiAxMjN9fSwKKyAgICAgICAgZXhwZWN0ZWRFcnJvcjogIklu
dmFsaWRQYXJhbXMiCisgICAgfSk7CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENhc2Uoewor
ICAgICAgICBuYW1lIDogIlRlc3RFcnJvckNvZGVGb3JTeW5jU2VydmVyRXJyb3IiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIlRoZSBiYWNrZW5kIHNob3VsZCByZXR1cm4gYSBzZXJ2ZXIgZXJyb3Ig
d2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlLiIsCisgICAgICAgIG1lc3NhZ2U6IHtpZDogMTIz
LCBtZXRob2Q6ICJEYXRhYmFzZS5nZXREYXRhYmFzZVRhYmxlTmFtZXMiLCBwYXJhbXM6IHtkYXRh
YmFzZUlkOiAidGhpc2lzTm90QURhdGFiYXNlIn19LAorICAgICAgICBleHBlY3RlZEVycm9yOiAi
U2VydmVyRXJyb3IiCisgICAgfSk7CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENhc2Uoewor
ICAgICAgICBuYW1lIDogIlRlc3RFcnJvckNvZGVGb3JBc3luY1NlcnZlckVycm9yIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91bGQgcmV0dXJuIGEgc2VydmVyIGVycm9y
IHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgY29kZS4iLAorICAgICAgICBtZXNzYWdlOiB7aWQ6IDEy
MywgbWV0aG9kOiAiRGF0YWJhc2UuZXhlY3V0ZVNRTCIsIHBhcmFtczoge2RhdGFiYXNlSWQ6ICJ0
aGlzaXNOb3RBRGF0YWJhc2UiLCBxdWVyeTogImFzZGYifX0sCisgICAgICAgIGV4cGVjdGVkRXJy
b3I6ICJTZXJ2ZXJFcnJvciIKKyAgICB9KTsKKworICAgIGFkZEVycm9yUmVzcG9uc2VUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWUgOiAiQ29tbWFuZFdpdGhCYWRBcmd1bWVudFZhbHVlIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91bGQgcmV0dXJuIGFuIGVycm9yIGlmIHNv
bWV0aGluZyB3ZW50IHdyb25nIHdoZW4gaW52b2tpbmcgdGhlIGFnZW50J3MgbWV0aG9kLiIsCisg
ICAgICAgIG1lc3NhZ2U6IHtpZDogMTIzLCBtZXRob2Q6ICJSdW50aW1lLmdldFByb3BlcnRpZXMi
LCBwYXJhbXM6IHtvYmplY3RJZDogInRoaXNpc05vdEFuSWQifX0sCisgICAgICAgIGV4cGVjdGVk
RXJyb3I6ICJTZXJ2ZXJFcnJvciIKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0Fu
ZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+CisgICAgPHA+VGVzdGluZyB0aGUgaW5zcGVjdG9yIGJhY2tlbmQncyBlcnJvciBoYW5kbGlu
ZyB3aGVuIHNlbmRpbmcgbWVzc2FnZXMgd2l0aCB3cm9uZyBwYXJhbWV0ZXJzLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9i
YWNrZW5kLWRpc3BhdGNoZXItbWFsZm9ybWVkLW1lc3NhZ2UtZXJyb3JzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9iYWNrZW5kLWRpc3BhdGNoZXItbWFsZm9y
bWVkLW1lc3NhZ2UtZXJyb3JzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmJkMTBkNmZlNWQ4
MDFhOTY5NGM3MjMzMDllMGM0ODhhYTkyODYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb3RvY29sL2JhY2tlbmQtZGlzcGF0Y2hlci1tYWxmb3JtZWQtbWVzc2Fn
ZS1lcnJvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTE2IEBACitUZXN0aW5nIHRoZSBpbnNw
ZWN0b3IgYmFja2VuZCdzIGVycm9yIGhhbmRsaW5nIHdoZW4gc2VuZGluZyBpbnZhbGlkIG1lc3Nh
Z2VzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUHJvdG9jb2wuTWFsZm9ybWVkTWVzc2Fn
ZUVycm9ycworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVucGFyc2VhYmxlU3RyaW5nTWVzc2FnZQor
U2VuZGluZyBtZXNzYWdlOiBub3QtYS1qc29uLW9iamVjdAorUEFTUzogdGhlIGJhY2tlbmQgc2hv
dWxkIHNlbmQgYSBwcm90b2NvbCBlcnJvciB3aGVuIHJlY2VpdmluZyBmb3IgYW4gaW52YWxpZCBt
ZXNzYWdlLgorUEFTUzogdGhlIHJlcG9ydGVkIGVycm9yIHNob3VsZCBiZSAiUGFyc2VFcnJvciIg
KC0zMjcwMCkKK0FjdHVhbCBlcnJvciBjb2RlOiAtMzI3MDAKK0FjdHVhbCBlcnJvciBtZXNzYWdl
OiBNZXNzYWdlIG11c3QgYmUgaW4gSlNPTiBmb3JtYXQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IEpTT05PYmplY3RXaXRoU3ludGF4RXJyb3IKK1NlbmRpbmcgbWVzc2FnZToge25hbWU6IDEyMyx9
CitQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVj
ZWl2aW5nIGZvciBhbiBpbnZhbGlkIG1lc3NhZ2UuCitQQVNTOiB0aGUgcmVwb3J0ZWQgZXJyb3Ig
c2hvdWxkIGJlICJQYXJzZUVycm9yIiAoLTMyNzAwKQorQWN0dWFsIGVycm9yIGNvZGU6IC0zMjcw
MAorQWN0dWFsIGVycm9yIG1lc3NhZ2U6IE1lc3NhZ2UgbXVzdCBiZSBpbiBKU09OIGZvcm1hdAor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogRW1wdHlKU09OT2JqZWN0CitTZW5kaW5nIG1lc3NhZ2U6
IHt9CitQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4g
cmVjZWl2aW5nIGZvciBhbiBpbnZhbGlkIG1lc3NhZ2UuCitQQVNTOiB0aGUgcmVwb3J0ZWQgZXJy
b3Igc2hvdWxkIGJlICJJbnZhbGlkUmVxdWVzdCIgKC0zMjYwMCkKK0FjdHVhbCBlcnJvciBjb2Rl
OiAtMzI2MDAKK0FjdHVhbCBlcnJvciBtZXNzYWdlOiAnaWQnIHByb3BlcnR5IHdhcyBub3QgZm91
bmQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE1pc3NpbmdJZEZpZWxkCitTZW5kaW5nIG1lc3Nh
Z2U6IHsibHVja3kiOjEyM30KK1BBU1M6IHRoZSBiYWNrZW5kIHNob3VsZCBzZW5kIGEgcHJvdG9j
b2wgZXJyb3Igd2hlbiByZWNlaXZpbmcgZm9yIGFuIGludmFsaWQgbWVzc2FnZS4KK1BBU1M6IHRo
ZSByZXBvcnRlZCBlcnJvciBzaG91bGQgYmUgIkludmFsaWRSZXF1ZXN0IiAoLTMyNjAwKQorQWN0
dWFsIGVycm9yIGNvZGU6IC0zMjYwMAorQWN0dWFsIGVycm9yIG1lc3NhZ2U6ICdpZCcgcHJvcGVy
dHkgd2FzIG5vdCBmb3VuZAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogSWRGaWVsZFdpdGhBcnJh
eVR5cGUKK1NlbmRpbmcgbWVzc2FnZTogeyJpZCI6W119CitQQVNTOiB0aGUgYmFja2VuZCBzaG91
bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVjZWl2aW5nIGZvciBhbiBpbnZhbGlkIG1l
c3NhZ2UuCitQQVNTOiB0aGUgcmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICJJbnZhbGlkUmVxdWVz
dCIgKC0zMjYwMCkKK0FjdHVhbCBlcnJvciBjb2RlOiAtMzI2MDAKK0FjdHVhbCBlcnJvciBtZXNz
YWdlOiBUaGUgdHlwZSBvZiAnaWQnIHByb3BlcnR5IG11c3QgYmUgaW50ZWdlcgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogSWRGaWVsZFdpdGhTdHJpbmdUeXBlCitTZW5kaW5nIG1lc3NhZ2U6IHsi
aWQiOiIxMjMifQorUEFTUzogdGhlIGJhY2tlbmQgc2hvdWxkIHNlbmQgYSBwcm90b2NvbCBlcnJv
ciB3aGVuIHJlY2VpdmluZyBmb3IgYW4gaW52YWxpZCBtZXNzYWdlLgorUEFTUzogdGhlIHJlcG9y
dGVkIGVycm9yIHNob3VsZCBiZSAiSW52YWxpZFJlcXVlc3QiICgtMzI2MDApCitBY3R1YWwgZXJy
b3IgY29kZTogLTMyNjAwCitBY3R1YWwgZXJyb3IgbWVzc2FnZTogVGhlIHR5cGUgb2YgJ2lkJyBw
cm9wZXJ0eSBtdXN0IGJlIGludGVnZXIKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE1pc3NpbmdN
ZXRob2RGaWVsZAorU2VuZGluZyBtZXNzYWdlOiB7ImlkIjoxMjN9CitQQVNTOiB0aGUgYmFja2Vu
ZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVjZWl2aW5nIGZvciBhbiBpbnZh
bGlkIG1lc3NhZ2UuCitQQVNTOiB0aGUgcmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICJJbnZhbGlk
UmVxdWVzdCIgKC0zMjYwMCkKK0FjdHVhbCBlcnJvciBjb2RlOiAtMzI2MDAKK0FjdHVhbCBlcnJv
ciBtZXNzYWdlOiAnbWV0aG9kJyBwcm9wZXJ0eSB3YXNuJ3QgZm91bmQKKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IE1ldGhvZEZpZWxkV2l0aEFycmF5VHlwZQorU2VuZGluZyBtZXNzYWdlOiB7Imlk
IjoxMjMsIm1ldGhvZCI6W119CitQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3Rv
Y29sIGVycm9yIHdoZW4gcmVjZWl2aW5nIGZvciBhbiBpbnZhbGlkIG1lc3NhZ2UuCitQQVNTOiB0
aGUgcmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICJJbnZhbGlkUmVxdWVzdCIgKC0zMjYwMCkKK0Fj
dHVhbCBlcnJvciBjb2RlOiAtMzI2MDAKK0FjdHVhbCBlcnJvciBtZXNzYWdlOiBUaGUgdHlwZSBv
ZiAnbWV0aG9kJyBwcm9wZXJ0eSBtdXN0IGJlIHN0cmluZworCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogTWV0aG9kRmllbGRXaXRoTnVtYmVyVHlwZQorU2VuZGluZyBtZXNzYWdlOiB7ImlkIjoxMjMs
Im1ldGhvZCI6MTIzfQorUEFTUzogdGhlIGJhY2tlbmQgc2hvdWxkIHNlbmQgYSBwcm90b2NvbCBl
cnJvciB3aGVuIHJlY2VpdmluZyBmb3IgYW4gaW52YWxpZCBtZXNzYWdlLgorUEFTUzogdGhlIHJl
cG9ydGVkIGVycm9yIHNob3VsZCBiZSAiSW52YWxpZFJlcXVlc3QiICgtMzI2MDApCitBY3R1YWwg
ZXJyb3IgY29kZTogLTMyNjAwCitBY3R1YWwgZXJyb3IgbWVzc2FnZTogVGhlIHR5cGUgb2YgJ21l
dGhvZCcgcHJvcGVydHkgbXVzdCBiZSBzdHJpbmcKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE1l
dGhvZEZpZWxkV2l0aEJhZEZvcm1hdHRpbmcKK1NlbmRpbmcgbWVzc2FnZTogeyJpZCI6MTIzLCJt
ZXRob2QiOiJUaGlzSXNEZWZpbml0ZWx5Tm90QURvbWFpbkFuZE1ldGhvZCJ9CitQQVNTOiB0aGUg
YmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9yIHdoZW4gcmVjZWl2aW5nIGZvciBh
biBpbnZhbGlkIG1lc3NhZ2UuCitQQVNTOiB0aGUgcmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICJJ
bnZhbGlkUmVxdWVzdCIgKC0zMjYwMCkKK0FjdHVhbCBlcnJvciBjb2RlOiAtMzI2MDAKK0FjdHVh
bCBlcnJvciBtZXNzYWdlOiBUaGUgJ21ldGhvZCcgcHJvcGVydHkgd2FzIGZvcm1hdHRlZCBpbmNv
cnJlY3RseS4gSXQgc2hvdWxkIGJlICdEb21haW4ubWV0aG9kJworCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogTWV0aG9kRmllbGRXaXRoQmFkRm9ybWF0dGluZzIKK1NlbmRpbmcgbWVzc2FnZTogeyJp
ZCI6MTIzLCJtZXRob2QiOiJUaGlzSXNEZWZpbml0ZWx5Tm90QURvbWFpbkFuZE1ldGhvZC4ifQor
UEFTUzogdGhlIGJhY2tlbmQgc2hvdWxkIHNlbmQgYSBwcm90b2NvbCBlcnJvciB3aGVuIHJlY2Vp
dmluZyBmb3IgYW4gaW52YWxpZCBtZXNzYWdlLgorUEFTUzogdGhlIHJlcG9ydGVkIGVycm9yIHNo
b3VsZCBiZSAiSW52YWxpZFJlcXVlc3QiICgtMzI2MDApCitBY3R1YWwgZXJyb3IgY29kZTogLTMy
NjAwCitBY3R1YWwgZXJyb3IgbWVzc2FnZTogVGhlICdtZXRob2QnIHByb3BlcnR5IHdhcyBmb3Jt
YXR0ZWQgaW5jb3JyZWN0bHkuIEl0IHNob3VsZCBiZSAnRG9tYWluLm1ldGhvZCcKKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IE1ldGhvZEZpZWxkV2l0aEJhZEZvcm1hdHRpbmczCitTZW5kaW5nIG1l
c3NhZ2U6IHsiaWQiOjEyMywibWV0aG9kIjoiLlRoaXNJc0RlZmluaXRlbHlOb3RBRG9tYWluQW5k
TWV0aG9kIn0KK1BBU1M6IHRoZSBiYWNrZW5kIHNob3VsZCBzZW5kIGEgcHJvdG9jb2wgZXJyb3Ig
d2hlbiByZWNlaXZpbmcgZm9yIGFuIGludmFsaWQgbWVzc2FnZS4KK1BBU1M6IHRoZSByZXBvcnRl
ZCBlcnJvciBzaG91bGQgYmUgIkludmFsaWRSZXF1ZXN0IiAoLTMyNjAwKQorQWN0dWFsIGVycm9y
IGNvZGU6IC0zMjYwMAorQWN0dWFsIGVycm9yIG1lc3NhZ2U6IFRoZSAnbWV0aG9kJyBwcm9wZXJ0
eSB3YXMgZm9ybWF0dGVkIGluY29ycmVjdGx5LiBJdCBzaG91bGQgYmUgJ0RvbWFpbi5tZXRob2Qn
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBNZXRob2RGaWVsZFdpdGhCYWRGb3JtYXR0aW5nNAor
U2VuZGluZyBtZXNzYWdlOiB7ImlkIjoxMjMsIm1ldGhvZCI6Ii4ifQorUEFTUzogdGhlIGJhY2tl
bmQgc2hvdWxkIHNlbmQgYSBwcm90b2NvbCBlcnJvciB3aGVuIHJlY2VpdmluZyBmb3IgYW4gaW52
YWxpZCBtZXNzYWdlLgorUEFTUzogdGhlIHJlcG9ydGVkIGVycm9yIHNob3VsZCBiZSAiSW52YWxp
ZFJlcXVlc3QiICgtMzI2MDApCitBY3R1YWwgZXJyb3IgY29kZTogLTMyNjAwCitBY3R1YWwgZXJy
b3IgbWVzc2FnZTogVGhlICdtZXRob2QnIHByb3BlcnR5IHdhcyBmb3JtYXR0ZWQgaW5jb3JyZWN0
bHkuIEl0IHNob3VsZCBiZSAnRG9tYWluLm1ldGhvZCcKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IE1ldGhvZEZpZWxkV2l0aEJhZEZvcm1hdHRpbmc1CitTZW5kaW5nIG1lc3NhZ2U6IHsiaWQiOjEy
MywibWV0aG9kIjoiLkZvb0Jhci4ifQorUEFTUzogdGhlIGJhY2tlbmQgc2hvdWxkIHNlbmQgYSBw
cm90b2NvbCBlcnJvciB3aGVuIHJlY2VpdmluZyBmb3IgYW4gaW52YWxpZCBtZXNzYWdlLgorUEFT
UzogdGhlIHJlcG9ydGVkIGVycm9yIHNob3VsZCBiZSAiSW52YWxpZFJlcXVlc3QiICgtMzI2MDAp
CitBY3R1YWwgZXJyb3IgY29kZTogLTMyNjAwCitBY3R1YWwgZXJyb3IgbWVzc2FnZTogVGhlICdt
ZXRob2QnIHByb3BlcnR5IHdhcyBmb3JtYXR0ZWQgaW5jb3JyZWN0bHkuIEl0IHNob3VsZCBiZSAn
RG9tYWluLm1ldGhvZCcKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE1ldGhvZEZpZWxkV2l0aEZh
a2VEb21haW4KK1NlbmRpbmcgbWVzc2FnZTogeyJpZCI6MTIzLCJtZXRob2QiOiJEdW1teURvbWFp
bi5EdW1teU1ldGhvZCJ9CitQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29s
IGVycm9yIHdoZW4gcmVjZWl2aW5nIGZvciBhbiBpbnZhbGlkIG1lc3NhZ2UuCitQQVNTOiB0aGUg
cmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICJNZXRob2ROb3RGb3VuZCIgKC0zMjYwMSkKK0FjdHVh
bCBlcnJvciBjb2RlOiAtMzI2MDEKK0FjdHVhbCBlcnJvciBtZXNzYWdlOiAnRHVtbXlEb21haW4n
IGRvbWFpbiB3YXMgbm90IGZvdW5kCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBNZXRob2RGaWVs
ZFdpdGhGYWtlTWV0aG9kCitTZW5kaW5nIG1lc3NhZ2U6IHsiaWQiOjEyMywibWV0aG9kIjoiSW5z
cGVjdG9yLkR1bW15TWV0aG9kIn0KK1BBU1M6IHRoZSBiYWNrZW5kIHNob3VsZCBzZW5kIGEgcHJv
dG9jb2wgZXJyb3Igd2hlbiByZWNlaXZpbmcgZm9yIGFuIGludmFsaWQgbWVzc2FnZS4KK1BBU1M6
IHRoZSByZXBvcnRlZCBlcnJvciBzaG91bGQgYmUgIk1ldGhvZE5vdEZvdW5kIiAoLTMyNjAxKQor
QWN0dWFsIGVycm9yIGNvZGU6IC0zMjYwMQorQWN0dWFsIGVycm9yIG1lc3NhZ2U6ICdJbnNwZWN0
b3IuRHVtbXlNZXRob2QnIHdhcyBub3QgZm91bmQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb3RvY29sL2JhY2tlbmQtZGlzcGF0Y2hlci1tYWxmb3JtZWQtbWVzc2FnZS1l
cnJvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9iYWNrZW5kLWRpc3Bh
dGNoZXItbWFsZm9ybWVkLW1lc3NhZ2UtZXJyb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVjYzFkOTBi
NzUxYjdmN2M0ODBmOGQ5OGQyYjZmMjk3MzA3ZTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9iYWNrZW5kLWRpc3BhdGNoZXItbWFsZm9ybWVkLW1l
c3NhZ2UtZXJyb3JzLmh0bWwKQEAgLTAsMCArMSwxNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgbGV0IHN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBy
b3RvY29sLk1hbGZvcm1lZE1lc3NhZ2VFcnJvcnMiKTsKKworICAgIGxldCBlcnJvckNvZGVzID0g
eworICAgICAgICBQYXJzZUVycm9yOiAtMzI3MDAsCisgICAgICAgIEludmFsaWRSZXF1ZXN0OiAt
MzI2MDAsCisgICAgICAgIE1ldGhvZE5vdEZvdW5kOiAtMzI2MDEsCisgICAgICAgIEludmFsaWRQ
YXJhbXM6IC0zMjYwMiwKKyAgICAgICAgSW50ZXJuYWxFcnJvcjogLTMyNjAzLAorICAgICAgICBT
ZXJ2ZXJFcnJvcjogLTMyMDAwLAorICAgIH07CisKKyAgICBmdW5jdGlvbiBhZGRFcnJvclJlc3Bv
bnNlVGVzdENhc2UoYXJncykKKyAgICB7CisgICAgICAgIGxldCB7bmFtZSwgZGVzY3JpcHRpb24s
IG1lc3NhZ2UsIGV4cGVjdGVkRXJyb3J9ID0gYXJnczsKKworICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAg
ICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgbGV0
IHN0cmluZ2lmaWVkTWVzc2FnZSA9ICh0eXBlb2YgbWVzc2FnZSAhPT0gInN0cmluZyIpID8gSlNP
Ti5zdHJpbmdpZnkobWVzc2FnZSkgOiBtZXNzYWdlOworICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5sb2coIlNlbmRpbmcgbWVzc2FnZTogIiArIHN0cmluZ2lmaWVkTWVzc2FnZSk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRNZXNzYWdlKG1lc3NhZ2UpCisgICAg
ICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZWQocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogdGhlIGJhY2tlbmQgc2hvdWxkIHNl
bmQgYSBwcm90b2NvbCBlcnJvciB3aGVuIHJlY2VpdmluZyBmb3IgYW4gaW52YWxpZCBtZXNzYWdl
LiIpOworICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICB9LCBm
dW5jdGlvbiByZWplY3RlZChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJQQVNTOiB0aGUgYmFja2VuZCBzaG91bGQgc2VuZCBhIHByb3RvY29sIGVycm9y
IHdoZW4gcmVjZWl2aW5nIGZvciBhbiBpbnZhbGlkIG1lc3NhZ2UuIik7CisgICAgICAgICAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHJlc3BvbnNlLmNvZGUgPT09IGVycm9yQ29k
ZXNbZXhwZWN0ZWRFcnJvcl0sIGB0aGUgcmVwb3J0ZWQgZXJyb3Igc2hvdWxkIGJlICIke2V4cGVj
dGVkRXJyb3J9IiAoJHtlcnJvckNvZGVzW2V4cGVjdGVkRXJyb3JdfSlgKTsKKyAgICAgICAgICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiQWN0dWFsIGVycm9yIGNvZGU6ICIgKyByZXNwb25z
ZS5jb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiQWN0dWFsIGVy
cm9yIG1lc3NhZ2U6ICIgKyByZXNwb25zZS5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmNhdGNoKHJl
amVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZEVycm9y
UmVzcG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5hbWUgOiAiVW5wYXJzZWFibGVTdHJpbmdNZXNz
YWdlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91bGQgcmV0dXJuIGFu
IGVycm9yIGlmIGEgbWVzc2FnZSBpcyBub3QgdmFsaWQgSlNPTi4iLAorICAgICAgICBtZXNzYWdl
OiAibm90LWEtanNvbi1vYmplY3QiLAorICAgICAgICBleHBlY3RlZEVycm9yOiAiUGFyc2VFcnJv
ciIKKyAgICB9KTsKKworICAgIGFkZEVycm9yUmVzcG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWUgOiAiSlNPTk9iamVjdFdpdGhTeW50YXhFcnJvciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
VGhlIGJhY2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3NhZ2UgaXMgbm90IHZh
bGlkIEpTT04uIiwKKyAgICAgICAgbWVzc2FnZTogIntuYW1lOiAxMjMsfSIsCisgICAgICAgIGV4
cGVjdGVkRXJyb3I6ICJQYXJzZUVycm9yIgorICAgIH0pOworCisgICAgYWRkRXJyb3JSZXNwb25z
ZVRlc3RDYXNlKHsKKyAgICAgICAgbmFtZSA6ICJFbXB0eUpTT05PYmplY3QiLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIlRoZSBiYWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBtZXNz
YWdlIGxhY2tzIGFuICdpZCcgZmllbGQuIiwKKyAgICAgICAgbWVzc2FnZToge30sCisgICAgICAg
IGV4cGVjdGVkRXJyb3I6ICJJbnZhbGlkUmVxdWVzdCIKKyAgICB9KTsKKworICAgIGFkZEVycm9y
UmVzcG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5hbWUgOiAiTWlzc2luZ0lkRmllbGQiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIlRoZSBiYWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYg
YSBtZXNzYWdlIGxhY2tzIGFuICdpZCcgZmllbGQuIiwKKyAgICAgICAgbWVzc2FnZToge2x1Y2t5
OiAxMjN9LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiSW52YWxpZFJlcXVlc3QiCisgICAgfSk7
CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENhc2UoeworICAgICAgICBuYW1lIDogIklkRmll
bGRXaXRoQXJyYXlUeXBlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91
bGQgcmV0dXJuIGFuIGVycm9yIGlmIGEgbWVzc2FnZSBoYXMgYSBub24tbnVtZXJpYyAnaWQnIGZp
ZWxkLiIsCisgICAgICAgIG1lc3NhZ2U6IHtpZDogW119LAorICAgICAgICBleHBlY3RlZEVycm9y
OiAiSW52YWxpZFJlcXVlc3QiCisgICAgfSk7CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENh
c2UoeworICAgICAgICBuYW1lIDogIklkRmllbGRXaXRoU3RyaW5nVHlwZSIsCisgICAgICAgIGRl
c2NyaXB0aW9uOiAiVGhlIGJhY2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3Nh
Z2UgaGFzIGEgbm9uLW51bWVyaWMgJ2lkJyBmaWVsZC4iLAorICAgICAgICBtZXNzYWdlOiB7aWQ6
ICIxMjMifSwKKyAgICAgICAgZXhwZWN0ZWRFcnJvcjogIkludmFsaWRSZXF1ZXN0IgorICAgIH0p
OworCisgICAgYWRkRXJyb3JSZXNwb25zZVRlc3RDYXNlKHsKKyAgICAgICAgbmFtZSA6ICJNaXNz
aW5nTWV0aG9kRmllbGQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRoZSBiYWNrZW5kIHNob3Vs
ZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBtZXNzYWdlIGxhY2tzIGEgJ21ldGhvZCcgZmllbGQuIiwK
KyAgICAgICAgbWVzc2FnZToge2lkOiAxMjN9LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiSW52
YWxpZFJlcXVlc3QiCisgICAgfSk7CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENhc2Uoewor
ICAgICAgICBuYW1lIDogIk1ldGhvZEZpZWxkV2l0aEFycmF5VHlwZSIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiVGhlIGJhY2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3NhZ2Ug
aGFzIGEgbm9uLXN0cmluZyAnbWV0aG9kJyBmaWVsZC4iLAorICAgICAgICBtZXNzYWdlOiB7aWQ6
IDEyMywgbWV0aG9kOiBbXX0sCisgICAgICAgIGV4cGVjdGVkRXJyb3I6ICJJbnZhbGlkUmVxdWVz
dCIKKyAgICB9KTsKKworICAgIGFkZEVycm9yUmVzcG9uc2VUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWUgOiAiTWV0aG9kRmllbGRXaXRoTnVtYmVyVHlwZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
VGhlIGJhY2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3NhZ2UgaGFzIGEgbm9u
LXN0cmluZyAnbWV0aG9kJyBmaWVsZC4iLAorICAgICAgICBtZXNzYWdlOiB7aWQ6IDEyMywgbWV0
aG9kOiAxMjN9LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiSW52YWxpZFJlcXVlc3QiCisgICAg
fSk7CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENhc2UoeworICAgICAgICBuYW1lIDogIk1l
dGhvZEZpZWxkV2l0aEJhZEZvcm1hdHRpbmciLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRoZSBi
YWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBtZXNzYWdlIGhhcyBhICdtZXRob2Qn
IGZpZWxkIG5vdCBmb3JtYXR0ZWQgYXMgJ0RvbWFpbi5NZXRob2RuYW1lJy4iLAorICAgICAgICBt
ZXNzYWdlOiB7aWQ6IDEyMywgbWV0aG9kOiAiVGhpc0lzRGVmaW5pdGVseU5vdEFEb21haW5BbmRN
ZXRob2QifSwKKyAgICAgICAgZXhwZWN0ZWRFcnJvcjogIkludmFsaWRSZXF1ZXN0IgorICAgIH0p
OworCisgICAgYWRkRXJyb3JSZXNwb25zZVRlc3RDYXNlKHsKKyAgICAgICAgbmFtZSA6ICJNZXRo
b2RGaWVsZFdpdGhCYWRGb3JtYXR0aW5nMiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGhlIGJh
Y2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3NhZ2UgaGFzIGEgJ21ldGhvZCcg
ZmllbGQgbm90IGZvcm1hdHRlZCBhcyAnRG9tYWluLk1ldGhvZG5hbWUnLiIsCisgICAgICAgIG1l
c3NhZ2U6IHtpZDogMTIzLCBtZXRob2Q6ICJUaGlzSXNEZWZpbml0ZWx5Tm90QURvbWFpbkFuZE1l
dGhvZC4ifSwKKyAgICAgICAgZXhwZWN0ZWRFcnJvcjogIkludmFsaWRSZXF1ZXN0IgorICAgIH0p
OworCisgICAgYWRkRXJyb3JSZXNwb25zZVRlc3RDYXNlKHsKKyAgICAgICAgbmFtZSA6ICJNZXRo
b2RGaWVsZFdpdGhCYWRGb3JtYXR0aW5nMyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGhlIGJh
Y2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3NhZ2UgaGFzIGEgJ21ldGhvZCcg
ZmllbGQgbm90IGZvcm1hdHRlZCBhcyAnRG9tYWluLk1ldGhvZG5hbWUnLiIsCisgICAgICAgIG1l
c3NhZ2U6IHtpZDogMTIzLCBtZXRob2Q6ICIuVGhpc0lzRGVmaW5pdGVseU5vdEFEb21haW5BbmRN
ZXRob2QifSwKKyAgICAgICAgZXhwZWN0ZWRFcnJvcjogIkludmFsaWRSZXF1ZXN0IgorICAgIH0p
OworCisgICAgYWRkRXJyb3JSZXNwb25zZVRlc3RDYXNlKHsKKyAgICAgICAgbmFtZSA6ICJNZXRo
b2RGaWVsZFdpdGhCYWRGb3JtYXR0aW5nNCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGhlIGJh
Y2tlbmQgc2hvdWxkIHJldHVybiBhbiBlcnJvciBpZiBhIG1lc3NhZ2UgaGFzIGEgJ21ldGhvZCcg
ZmllbGQgbm90IGZvcm1hdHRlZCBhcyAnRG9tYWluLk1ldGhvZG5hbWUnLiIsCisgICAgICAgIG1l
c3NhZ2U6IHtpZDogMTIzLCBtZXRob2Q6ICIuIn0sCisgICAgICAgIGV4cGVjdGVkRXJyb3I6ICJJ
bnZhbGlkUmVxdWVzdCIKKyAgICB9KTsKKworICAgIGFkZEVycm9yUmVzcG9uc2VUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWUgOiAiTWV0aG9kRmllbGRXaXRoQmFkRm9ybWF0dGluZzUiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIlRoZSBiYWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBt
ZXNzYWdlIGhhcyBhICdtZXRob2QnIGZpZWxkIG5vdCBmb3JtYXR0ZWQgYXMgJ0RvbWFpbi5NZXRo
b2RuYW1lJy4iLAorICAgICAgICBtZXNzYWdlOiB7aWQ6IDEyMywgbWV0aG9kOiAiLkZvb0Jhci4i
fSwKKyAgICAgICAgZXhwZWN0ZWRFcnJvcjogIkludmFsaWRSZXF1ZXN0IgorICAgIH0pOworCisg
ICAgYWRkRXJyb3JSZXNwb25zZVRlc3RDYXNlKHsKKyAgICAgICAgbmFtZSA6ICJNZXRob2RGaWVs
ZFdpdGhGYWtlRG9tYWluIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUaGUgYmFja2VuZCBzaG91
bGQgcmV0dXJuIGFuIGVycm9yIGlmIGEgbWVzc2FnZSBzcGVjaWZpZXMgYSBkb21haW4gdGhhdCBk
b2Vzbid0IGV4aXN0LiIsCisgICAgICAgIG1lc3NhZ2U6IHtpZDogMTIzLCBtZXRob2Q6ICJEdW1t
eURvbWFpbi5EdW1teU1ldGhvZCJ9LAorICAgICAgICBleHBlY3RlZEVycm9yOiAiTWV0aG9kTm90
Rm91bmQiCisgICAgfSk7CisKKyAgICBhZGRFcnJvclJlc3BvbnNlVGVzdENhc2UoeworICAgICAg
ICBuYW1lIDogIk1ldGhvZEZpZWxkV2l0aEZha2VNZXRob2QiLAorICAgICAgICBkZXNjcmlwdGlv
bjogIlRoZSBiYWNrZW5kIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgYSBtZXNzYWdlIHNwZWNp
ZmllcyBhIG1ldGhvZCB0aGF0IGRvZXNuJ3QgZXhpc3QuIiwKKyAgICAgICAgbWVzc2FnZToge2lk
OiAxMjMsIG1ldGhvZDogIkluc3BlY3Rvci5EdW1teU1ldGhvZCJ9LAorICAgICAgICBleHBlY3Rl
ZEVycm9yOiAiTWV0aG9kTm90Rm91bmQiCisgICAgfSk7CisKKworICAgIHN1aXRlLnJ1blRlc3RD
YXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyB0aGUgaW5zcGVjdG9yIGJhY2tlbmQncyBlcnJvciBo
YW5kbGluZyB3aGVuIHNlbmRpbmcgaW52YWxpZCBtZXNzYWdlcy48L3A+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="284987"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>