<?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>85513</bug_id>
          
          <creation_ts>2012-05-03 10:57:38 -0700</creation_ts>
          <short_desc>IndexedDB: Throw proper exceptions</short_desc>
          <delta_ts>2012-08-06 19:44:40 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87987</dependson>
    
    <dependson>88459</dependson>
    
    <dependson>88690</dependson>
    
    <dependson>89243</dependson>
    
    <dependson>91679</dependson>
    
    <dependson>92562</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>615410</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-03 10:57:38 -0700</bug_when>
    <thetext>This is the catch-all bug for the exception work that we need to do in IndexedDB - mostly this involves aligning our exceptions to DOM4 exceptions, but there are a few places where the spec says we should throw a JavaScript TypeError.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634338</commentid>
    <comment_count>1</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-25 15:24:16 -0700</bug_when>
    <thetext>Most of these are straight forward, but I spent some time trying to figure out how easy it would be to support the &quot;Javascript TypeError&quot; requirements in the indexeddb spec - it&apos;s kind of a nightmare in WebKit, since it&apos;s a JSEngine-specific call. The only way to support these are via additional features in WebIDL. 

there are only 3 in the spec, I suspect we should pushback and/or spin off into a separate bug. The three places are:

1) in open(), the version has to be &gt; 0
2) in advance() the count must be &gt; 0
3) in openCursor() the direction must be one of a small set of valid strings (and for legacy support, also possibly a number between 0 and 3 inclusive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650372</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-15 11:46:36 -0700</bug_when>
    <thetext>Adding the metadata-snapshot stuff because that has the side benefit of letting the render-side (frontend) objects know that they&apos;ve been deleted - i.e. by adding a deleted flag to IDBObjectStore and the like, and throwing an InvalidStateError when that occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659553</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-28 09:27:17 -0700</bug_when>
    <thetext>What&apos;s left to do here - just the TypeError work in http://webkit.org/b/87987 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659559</commentid>
    <comment_count>4</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-28 09:31:46 -0700</bug_when>
    <thetext>I think there are one or two one-off fixes left - last I did a sweep through, about a week ago, I found one and made a unit test - I&apos;ll go dig up that branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673594</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-19 09:45:13 -0700</bug_when>
    <thetext>Anything else remaining?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681262</commentid>
    <comment_count>6</comment_count>
      <attachid>155094</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:18:49 -0700</bug_when>
    <thetext>Created attachment 155094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684603</commentid>
    <comment_count>7</comment_count>
      <attachid>155889</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 14:42:11 -0700</bug_when>
    <thetext>Created attachment 155889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684606</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 14:43:55 -0700</bug_when>
    <thetext>This is ready to land. Just rearranged some of the tests slightly for readability and to match the spec order (except in a few places to avoid horrible async contortions).

dgrogan@, alecflett@ - please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684621</commentid>
    <comment_count>9</comment_count>
      <attachid>155889</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 15:03:48 -0700</bug_when>
    <thetext>Comment on attachment 155889
Patch

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

LGTM

&gt; LayoutTests/storage/indexeddb/resources/exceptions.js:213
&gt; +    // &quot;Occurs if a request is made on a source object that has been deleted or removed.&quot; - covered in deleted-objects.html

Are these comments intentional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684630</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 15:12:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; LayoutTests/storage/indexeddb/resources/exceptions.js:213
&gt; &gt; +    // &quot;Occurs if a request is made on a source object that has been deleted or removed.&quot; - covered in deleted-objects.html
&gt; 
&gt; Are these comments intentional?

Yeah - those are the only exceptions listed in the spec that this patch didn&apos;t test, and I wanted to make sure that the coverage in that other test was referenced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688345</commentid>
    <comment_count>11</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-06 12:21:57 -0700</bug_when>
    <thetext>tony@ - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688639</commentid>
    <comment_count>12</comment_count>
      <attachid>155889</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-06 18:16:12 -0700</bug_when>
    <thetext>Comment on attachment 155889
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688712</commentid>
    <comment_count>13</comment_count>
      <attachid>155889</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 19:44:36 -0700</bug_when>
    <thetext>Comment on attachment 155889
Patch

Clearing flags on attachment: 155889

Committed r124837: &lt;http://trac.webkit.org/changeset/124837&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688713</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 19:44:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155094</attachid>
            <date>2012-07-27 17:18:49 -0700</date>
            <delta_ts>2012-08-01 14:42:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85513-20120727171837.patch</filename>
            <type>text/plain</type>
            <size>29903</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjRjYjFjNzI0YjY4YjYzM2EzZjcy
MThhODIxODYxZGVmMzUxZTViMy4uZDYyOTgxN2IxYTJhYjBhZDNlNDJmODY5MzM4OGVmYmFkNjJj
NjIxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA3LTI3ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBUaHJvdyBwcm9wZXIgZXhj
ZXB0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODU1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0IGFsbCBvZiB0aGUgZXhjZXB0aW9uIHRocm93aW5nIGNsYXVzZXMgaW4gdGhlIHNwZWMsIHVu
bGVzcyB0aGV5IGFyZQorICAgICAgICB3ZWxsIGNvdmVyZWQgZWxzZXdoZXJlIChpbmRpY2F0ZWQg
YnkgYSBjb21tZW50IGluIHRoZSBzY3JpcHQpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvZXhjZXB0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZXhjZXB0aW9ucy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnJlcXVlc3Qub25z
dWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRl
c3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdC5y
ZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGRvbmVWZXJzaW9u
Q2hhbmdlLnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKGRvbmVWZXJzaW9uQ2hhbmdlKToK
KyAgICAgICAgKHRlc3RNZXRob2RzKToKKyAgICAgICAgKHRlc3RPYmplY3RTdG9yZSk6CisgICAg
ICAgICh0ZXN0SW5kZXgpOgorICAgICAgICAodGVzdEN1cnNvci5tYWtlQ3Vyc29yLnJlcXVlc3Qu
b25zdWNjZXNzKToKKyAgICAgICAgKHRlc3RDdXJzb3IubWFrZUN1cnNvcik6CisgICAgICAgICh0
ZXN0Q3Vyc29yLm1ha2VLZXlDdXJzb3IucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVz
dEN1cnNvci5tYWtlS2V5Q3Vyc29yKToKKyAgICAgICAgKHRlc3RDdXJzb3IubWFrZVJldmVyc2VD
dXJzb3IucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdEN1cnNvci5tYWtlUmV2ZXJz
ZUN1cnNvcik6CisgICAgICAgICh0ZXN0Q3Vyc29yLm1ha2VJbmxpbmVDdXJzb3IucmVxdWVzdC5v
bnN1Y2Nlc3MpOgorICAgICAgICAodGVzdEN1cnNvci5tYWtlSW5saW5lQ3Vyc29yKToKKyAgICAg
ICAgKHRlc3RDdXJzb3IudGVzdEN1cnNvckFkdmFuY2UpOgorICAgICAgICAodGVzdEN1cnNvci50
ZXN0Q3Vyc29yQ29udGludWUpOgorICAgICAgICAodGVzdEN1cnNvci50ZXN0Q3Vyc29yVXBkYXRl
KToKKyAgICAgICAgKHRlc3RDdXJzb3IubWFrZVJlYWRPbmx5Q3Vyc29yLnJlcXVlc3Qub25zdWNj
ZXNzKToKKyAgICAgICAgKHRlc3RDdXJzb3IubWFrZVJlYWRPbmx5Q3Vyc29yKToKKyAgICAgICAg
KHRlc3RDdXJzb3IuZG9SZWFkT25seUN1cnNvclRlc3RzKToKKyAgICAgICAgKHRlc3RDdXJzb3Ip
OgorICAgICAgICAodGVzdFRyYW5zYWN0aW9uKToKKwogMjAxMi0wNy0yNiAgw4Fkw6FtIEthbGxh
aSAgPGthZGFtQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2Fy
ZGVuaW5nLiBGaXggYWZ0ZXIgcjEyMzczMy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2V4Y2VwdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2V4Y2VwdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2EyMTVkMjJmYzAyNTA1OWFkYjRjNGI1
NWNiNmE2ZDkxM2ExNDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZXhjZXB0aW9ucy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V4Y2VwdGlvbnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZXhjZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9leGNlcHRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZGFj
MmEwYTkyZDM2YTgxZTRmZjE2ODEzZmJiMzc3N2YyZmJjNDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZXhjZXB0aW9ucy5qcwpAQCAt
MCwwICsxLDQ3MSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlw
dHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1w
b3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGV4cGVj
dGVkIGV4Y2VwdGlvbnMgYXJlIHRocm93biBwZXIgSW5kZXhlZERCIHNwZWMuIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZXhjZXB0aW9ucycpIik7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRl
eGVkREIub3BlbignZXhjZXB0aW9ucycpIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVxdWVzdC5yZWFkeVN0YXRlIiwgInBlbmRpbmciKTsKKworICAgICAgICBkZWJ1ZygiV2hl
biB0aGUgZG9uZSBmbGFnIGlzIGZhbHNlLCBnZXR0aW5nIHRoaXMgcHJvcGVydHkgbXVzdCB0aHJv
dyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLiIpOworICAgICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXF1ZXN0LmVycm9yIiwgIkRPTUV4Y2VwdGlvbi5JTlZB
TElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisKKyAgICAgICAgZGVidWco
IldoZW4gdGhlIGRvbmUgZmxhZyBpcyBmYWxzZSwgZ2V0dGluZyB0aGlzIHByb3BlcnR5IG11c3Qg
dGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4iKTsKKyAgICAg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigicmVxdWVzdC5yZXN1bHQiLCAiRE9NRXhjZXB0aW9u
LklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKworICAgICAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0g
cmVxdWVzdC5yZXN1bHQiKTsKKworICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRi
LnNldFZlcnNpb24oJzEnKSIpOworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhw
ZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0Owor
ICAgICAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
KworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlJykiKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJpbmRleCA9IHN0b3Jl
LmNyZWF0ZUluZGV4KCdpbmRleCcsICdpZCcpIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExv
Zygic3RvcmUucHV0KHtpZDogJ2EnfSwgMSkiKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9n
KCJzdG9yZS5wdXQoe2lkOiAnYid9LCAyKSIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2co
InN0b3JlLnB1dCh7aWQ6ICdjJ30sIDMpIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygi
c3RvcmUucHV0KHtpZDogJ2QnfSwgNCkiKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJz
dG9yZS5wdXQoe2lkOiAnZSd9LCA1KSIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0
b3JlLnB1dCh7aWQ6ICdmJ30sIDYpIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3Rv
cmUucHV0KHtpZDogJ2cnfSwgNykiKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9y
ZS5wdXQoe2lkOiAnaCd9LCA4KSIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3Jl
LnB1dCh7aWQ6ICdpJ30sIDkpIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUu
cHV0KHtpZDogJ2onfSwgMTApIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygib3RoZXJT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvdGhlclN0b3JlJykiKTsKKyAgICAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJpbmxpbmVLZXlTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdp
bmxpbmVLZXlTdG9yZScsIHtrZXlQYXRoOiAnaWQnfSkiKTsKKyAgICAgICAgICAgICAgICBldmFs
QW5kTG9nKCJpbmxpbmVLZXlTdG9yZS5wdXQoe2lkOiAwfSkiKTsKKworICAgICAgICAgICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiSURCRGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoKSIpOworCisgICAgICAgICAgICAgICAgZGVidWcoIklmIGFuIG9iamVjdFN0b3Jl
IHdpdGggdGhlIHNhbWUgbmFtZSBhbHJlYWR5IGV4aXN0cywgdGhlIGltcGxlbWVudGF0aW9uIG11
c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBDb25zdHJhaW50RXJyb3IuIik7CisgICAg
ICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiJ0NvbnN0
cmFpbnRFcnJvciciKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCJJZiBrZXlQYXRoIGlzIG5v
dCBhIHZhbGlkIGtleSBwYXRoIHRoZW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBTeW50YXhFcnJv
ciBtdXN0IGJlIHRocm93bi4iKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZmFpbCcsIHtrZXlQYXRoOiAnLWludmFsaWQtJ30p
IiwgIkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIiwgIidTeW50YXhFcnJvciciKTsKKworICAgICAg
ICAgICAgICAgIGRlYnVnKCJJZiB0aGUgb3B0aW9uYWxQYXJhbWV0ZXJzIHBhcmFtZXRlciBpcyBz
cGVjaWZpZWQsIGFuZCBhdXRvSW5jcmVtZW50IGlzIHNldCB0byB0cnVlLCBhbmQgdGhlIGtleVBh
dGggcGFyYW1ldGVyIGlzIHNwZWNpZmllZCB0byB0aGUgZW1wdHkgc3RyaW5nLCBvciBzcGVjaWZp
ZWQgdG8gYW4gQXJyYXksIHRoaXMgZnVuY3Rpb24gbXVzdCB0aHJvdyBhIEludmFsaWRBY2Nlc3NF
cnJvciBleGNlcHRpb24uIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZhaWwnLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5
UGF0aDogJyd9KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIiwgIidJbnZhbGlk
QWNjZXNzRXJyb3InIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZhaWwnLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0
aDogWydhJ119KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIiwgIidJbnZhbGlk
QWNjZXNzRXJyb3InIik7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAg
ICAgICAgZGVidWcoIklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkiKTsKKworICAgICAg
ICAgICAgICAgIGRlYnVnKCJUaGVyZSBpcyBubyBvYmplY3Qgc3RvcmUgd2l0aCB0aGUgZ2l2ZW4g
bmFtZSwgY29tcGFyZWQgaW4gYSBjYXNlLXNlbnNpdGl2ZSBtYW5uZXIsIGluIHRoZSBjb25uZWN0
ZWQgZGF0YWJhc2UuIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ25vLXN1Y2gtc3RvcmUnKSIsICJET01FeGNlcHRpb24uTk9U
X0ZPVU5EX0VSUiIsICInTm90Rm91bmRFcnJvciciKTsKKworICAgICAgICAgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgo
KSIpOworCisgICAgICAgICAgICAgICAgZGVidWcoIklmIGFuIGluZGV4IHdpdGggdGhlIHNhbWUg
bmFtZSBhbHJlYWR5IGV4aXN0cywgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01F
eGNlcHRpb24gb2YgdHlwZSBDb25zdHJhaW50RXJyb3IuICIpOworICAgICAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdrZXlQYXRo
JykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiJ0NvbnN0cmFpbnRF
cnJvciciKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCJJZiBrZXlQYXRoIGlzIG5vdCBhIHZh
bGlkIGtleSBwYXRoIHRoZW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBTeW50YXhFcnJvciBtdXN0
IGJlIHRocm93bi4iKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJz
dG9yZS5jcmVhdGVJbmRleCgnZmFpbCcsICctaW52YWxpZC0nKSIsICJET01FeGNlcHRpb24uU1lO
VEFYX0VSUiIsICInU3ludGF4RXJyb3InIik7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiSWYg
a2V5UGF0aCBpcyBhbiBBcnJheSBhbmQgdGhlIG11bHRpRW50cnkgcHJvcGVydHkgaW4gdGhlIG9w
dGlvbmFsUGFyYW1ldGVycyBpcyB0cnVlLCB0aGVuIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52
YWxpZEFjY2Vzc0Vycm9yIG11c3QgYmUgdGhyb3duLiIpOworICAgICAgICAgICAgICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmNyZWF0ZUluZGV4KCdmYWlsJywgWydhJ10sIHttdWx0
aUVudHJ5OiB0cnVlfSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiIsICInSW52
YWxpZEFjY2Vzc0Vycm9yJyIpOworCisgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICAgICAgICAgIGRlYnVnKCJJREJPYmplY3RTdG9yZS5kZWxldGVJbmRleCgpIik7CisKKyAgICAg
ICAgICAgICAgICBkZWJ1ZygiVGhlcmUgaXMgbm8gaW5kZXggd2l0aCB0aGUgZ2l2ZW4gbmFtZSwg
Y29tcGFyZWQgaW4gYSBjYXNlLXNlbnNpdGl2ZSBtYW5uZXIsIGluIHRoZSBjb25uZWN0ZWQgZGF0
YWJhc2UuIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUu
ZGVsZXRlSW5kZXgoJ25vLXN1Y2gtaW5kZXgnKSIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VS
UiIsICInTm90Rm91bmRFcnJvciciKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSIpOworCisgICAg
ICAgICAgICAgICAgZGVidWcoJ0lmIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiBJREJEYXRhYmFz
ZSBvYmplY3QgZm9yIHdoaWNoIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIGlzIHN0aWxs
IHJ1bm5pbmcsIGEgSW52YWxpZFN0YXRlRXJyb3IgZXhjZXB0aW9uIG11c3QgYmUgdGhyb3duLicp
OworICAgICAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9u
KCdzdG9yZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7CisKKyAgICAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gZG9uZVZl
cnNpb25DaGFuZ2U7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH07Cit9CisKK2Z1
bmN0aW9uIGRvbmVWZXJzaW9uQ2hhbmdlKCkKK3sKKyAgICBkZWJ1ZygiT25lIG9mIHRoZSBuYW1l
cyBwcm92aWRlZCBpbiB0aGUgc3RvcmVOYW1lcyBhcmd1bWVudCBkb2Vzbid0IGV4aXN0IGluIHRo
aXMgZGF0YWJhc2UuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rp
b24oJ25vLXN1Y2gtc3RvcmUnKSIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIsICInTm90
Rm91bmRFcnJvciciKTsKKworICAgIGRlYnVnKCJUaGUgdmFsdWUgZm9yIHRoZSBtb2RlIHBhcmFt
ZXRlciBpcyBpbnZhbGlkLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb25DbGFzcygiZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlJywgJ2ludmFsaWQtbW9kZScpIiwgIlR5cGVFcnJvciIpOworCisg
ICAgZGVidWcoIlRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIHdpdGggYW4gZW1wdHkgbGlzdCBvZiBz
dG9yZSBuYW1lcyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9u
KFtdKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIiwgIidJbnZhbGlkQWNjZXNz
RXJyb3InIik7CisKKyAgICBldmFsQW5kTG9nKCJmaW5pc2hlZFRyYW5zYWN0aW9uID0gaW5hY3Rp
dmVUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpIik7CisgICAgaW5hY3RpdmVU
cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgZXZhbEFu
ZExvZygic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbiA9IGluYWN0aXZlVHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJpbmRleEZyb21JbmFjdGl2
ZVRyYW5zYWN0aW9uID0gc3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5pbmRleCgnaW5kZXgn
KSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBzdG9yZUZyb21JbmFjdGl2ZVRyYW5zYWN0
aW9uLm9wZW5DdXJzb3IoKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IGV2YWxBbmRMb2coImN1cnNvckZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uID0gcmVxdWVzdC5yZXN1
bHQiKTsKKyAgICB9OworICAgIGRlYnVnKCJMZXQgdGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlIHNv
IGl0IGlzIGluYWN0aXZlLiIpOworICAgIGluYWN0aXZlVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9
IHRlc3RNZXRob2RzOworfQorCitmdW5jdGlvbiB0ZXN0TWV0aG9kcygpCit7CisgICAgZGVidWco
J0lmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gb3V0c2lkZSBhICJ2ZXJzaW9uY2hhbmdl
IiB0cmFuc2FjdGlvbiBjYWxsYmFjayAuLi4gdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4nKTsKKyAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZmFpbCcpIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisKKyAgICBk
ZWJ1ZygnSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBvdXRzaWRlIGEgInZlcnNpb25j
aGFuZ2UiIHRyYW5zYWN0aW9uIGNhbGxiYWNrIC4uLiB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0
aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLicpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLmRlbGV0ZU9iamVjdFN0b3JlKCdmYWlsJykiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKwor
ICAgIGRlYnVnKCdJZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG91dHNpZGUgYSAidmVy
c2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gY2FsbGJhY2sgLi4uIHRoZSBpbXBsZW1lbnRhdGlvbiBt
dXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IuJyk7Cisg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0
U3RvcmUoJ3N0b3JlJykuY3JlYXRlSW5kZXgoJ2ZhaWwnLCAna2V5UGF0aCcpIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisKKyAgICBk
ZWJ1ZygnSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBvdXRzaWRlIGEgInZlcnNpb25j
aGFuZ2UiIHRyYW5zYWN0aW9uIGNhbGxiYWNrIC4uLiB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0
aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLicpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3Jl
KCdzdG9yZScpLmRlbGV0ZUluZGV4KCdmYWlsJywgJ2tleVBhdGgnKSIsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworCisgICAgdGVzdE9i
amVjdFN0b3JlKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RPYmplY3RTdG9yZSgpCit7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJJREJPYmplY3RTdG9yZSIpOworICAgIGV2YWxBbmRMb2coInN0
b3JlRnJvbVJlYWRPbmx5VHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVh
ZG9ubHknKS5vYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3cml0ZScpLm9iamVjdFN0b3JlKCdzdG9yZScp
Iik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklEQk9iamVjdFN0b3JlLmFkZCgpIik7
CisKKyAgICBkZWJ1Zygic3RvcmVGcm9tUmVhZE9ubHlUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZScsICdyZWFkb25seScpLm9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZGVi
dWcoInN0b3JlID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3cml0ZScpLm9iamVjdFN0
b3JlKCdzdG9yZScpIik7CisKKyAgICBkZWJ1ZygnVGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgUmVhZE9ubHlFcnJvciBpZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggdGhp
cyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIGhhcyBpdHMgbW9kZSBzZXQgdG8gInJlYWRv
bmx5Ii4nKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZyb21SZWFkT25seVRy
YW5zYWN0aW9uLmFkZCgwLCAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJS
IiwgIidSZWFkT25seUVycm9yJyIpOworCisgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIHRydWUsIHRoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBv
ZiB0eXBlIERhdGFFcnJvcjoiIC0gY292ZXJlZCBpbiBvYmplY3RzdG9yZS1iYXNpY3MuaHRtbAor
CisgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3Mg
dG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZy
b21JbmFjdGl2ZVRyYW5zYWN0aW9uLmFkZCgwLCAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5U
UkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsK
KworICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0
IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQt
b2JqZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiVGhlIGRhdGEgYmVpbmcgc3RvcmVkIGNvdWxkIG5v
dCBiZSBjbG9uZWQgYnkgdGhlIGludGVybmFsIHN0cnVjdHVyZWQgY2xvbmluZyBhbGdvcml0aG0u
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuYWRkKHNlbGYsIDApIiwgIkRP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOyAvLyBGSVhNRTogVGVzdCAnRGF0YUNsb25lRXJy
b3InIG5hbWUgd2hlbiBET000IGV4Y2VwdGlvbnMgYXJlIHVzZWQgaW4gYmluZGluZy4KKworICAg
IGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSURCT2JqZWN0U3RvcmUuY2xlYXIoKSIpOworCisgICAg
ZGVidWcoJ1RoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIFJlYWRPbmx5
RXJyb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNoIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25n
cyB0byBpcyBoYXMgaXRzIG1vZGUgc2V0IHRvICJyZWFkb25seSIuJyk7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigic3RvcmVGcm9tUmVhZE9ubHlUcmFuc2FjdGlvbi5jbGVhcigpIiwgIklE
QkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiLCAiJ1JlYWRPbmx5RXJyb3InIik7CisK
KyAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0
byBpcyBub3QgYWN0aXZlLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlRnJv
bUluYWN0aXZlVHJhbnNhY3Rpb24uY2xlYXIoKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFO
U0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKwor
ICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRo
YXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2Jq
ZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklEQk9iamVjdFN0b3JlLmNv
dW50KCkiKTsKKworICAgIGRlYnVnKCJJZiB0aGUgb3B0aW9uYWwga2V5IHBhcmFtZXRlciBpcyBu
b3QgYSB2YWxpZCBrZXkgb3IgYSBrZXkgcmFuZ2UsIHRoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4
Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvci4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJzdG9yZS5jb3VudCh7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0Rh
dGFFcnJvciciKTsKKworICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RT
dG9yZSBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5jb3VudCgpIiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yJyIpOworCisgICAgLy8gIk9jY3VycyBpZiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIHNv
dXJjZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVkIG9yIHJlbW92ZWQuIiAtIGNvdmVyZWQg
aW4gZGVsZXRlZC1vYmplY3RzLmh0bWwKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSURC
T2JqZWN0U3RvcmUuZGVsZXRlKCkiKTsKKworICAgIGRlYnVnKCdUaGlzIG1ldGhvZCB0aHJvd3Mg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBSZWFkT25seUVycm9yIGlmIHRoZSB0cmFuc2FjdGlvbiB3
aGljaCB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaXMgaGFzIGl0cyBtb2RlIHNldCB0
byAicmVhZG9ubHkiLicpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlRnJvbVJl
YWRPbmx5VHJhbnNhY3Rpb24uZGVsZXRlKDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURf
T05MWV9FUlIiLCAiJ1JlYWRPbmx5RXJyb3InIik7CisKKyAgICBkZWJ1ZygiSWYgdGhlIGtleSBw
YXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlIHRoaXMgbWV0aG9kIHRo
cm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvci4iKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJzdG9yZS5kZWxldGUoe30pIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRB
VEFfRVJSIiwgIidEYXRhRXJyb3InIik7CisKKyAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRo
aXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLiIpOworICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oInN0b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uYWRkKDAsIDAp
IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJ
REJPYmplY3RTdG9yZS5nZXQoKSIpOworCisgICAgZGVidWcoIklmIHRoZSBrZXkgcGFyYW1ldGVy
IGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhpcyBtZXRob2QgdGhyb3dzIGEg
RE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oInN0b3JlLmdldCh7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAi
J0RhdGFFcnJvciciKTsKKworICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmpl
Y3RTdG9yZSBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5nZXQoMCkiLCAiSURCRGF0YWJh
c2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2FjdGlvbkluYWN0
aXZlRXJyb3InIik7CisKKyAgICAvLyAiT2NjdXJzIGlmIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEg
c291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVtb3ZlZC4iIC0gY292ZXJl
ZCBpbiBkZWxldGVkLW9iamVjdHMuaHRtbAorCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJ
REJPYmplY3RTdG9yZS5pbmRleCgpIik7CisKKyAgICBkZWJ1ZygiVGhlcmUgaXMgbm8gaW5kZXgg
d2l0aCB0aGUgZ2l2ZW4gbmFtZSwgY29tcGFyZWQgaW4gYSBjYXNlLXNlbnNpdGl2ZSBtYW5uZXIs
IGluIHRoZSBjb25uZWN0ZWQgZGF0YWJhc2UuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigic3RvcmUuaW5kZXgoJ25vLXN1Y2gtaW5kZXgnKSIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5E
X0VSUiIsICInTm90Rm91bmRFcnJvciciKTsKKworICAgIGRlYnVnKCJPY2N1cnMgaWYgYSByZXF1
ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciBy
ZW1vdmVkLCBvciBpZiB0aGUgdHJhbnNhY3Rpb24gdGhlIG9iamVjdCBzdG9yZSBiZWxvbmdzIHRv
IGhhcyBmaW5pc2hlZC4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZyb21J
bmFjdGl2ZVRyYW5zYWN0aW9uLmluZGV4KCdpbmRleCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisKKyAgICAvLyAiT2NjdXJzIGlm
IGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0
ZWQgb3IgcmVtb3ZlZC4iIC0gY292ZXJlZCBpbiBkZWxldGVkLW9iamVjdHMuaHRtbAorCisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkiKTsKKwor
ICAgIGRlYnVnKCJJZiB0aGUgcmFuZ2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBidXQgaXMgbm90
IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
c3RvcmUub3BlbkN1cnNvcih7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAi
J0RhdGFFcnJvciciKTsKKworICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmpl
Y3RTdG9yZSBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5vcGVuQ3Vyc29yKCkiLCAiSURC
RGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3InIik7CisKKyAgICBkZWJ1ZygiVGhlIHZhbHVlIGZvciB0aGUgZGlyZWN0
aW9uIHBhcmFtZXRlciBpcyBpbnZhbGlkLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb25D
bGFzcygic3RvcmUub3BlbkN1cnNvcigwLCAnaW52YWxpZC1kaXJlY3Rpb24nKSIsICJUeXBlRXJy
b3IiKTsKKworICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ug
b2JqZWN0IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRl
bGV0ZWQtb2JqZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklEQk9iamVj
dFN0b3JlLnB1dCgpIik7CisKKyAgICBkZWJ1ZygnVGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgUmVhZE9ubHlFcnJvciBpZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggdGhp
cyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIGhhcyBpdHMgbW9kZSBzZXQgdG8gInJlYWRv
bmx5Ii4nKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZyb21SZWFkT25seVRy
YW5zYWN0aW9uLnB1dCgwLCAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJS
IiwgIidSZWFkT25seUVycm9yJyIpOworCisgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIHRydWUsIHRoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBv
ZiB0eXBlIERhdGFFcnJvcjoiIC0gY292ZXJlZCBpbiBvYmplY3RzdG9yZS1iYXNpY3MuaHRtbAor
CisgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3Mg
dG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZy
b21JbmFjdGl2ZVRyYW5zYWN0aW9uLnB1dCgwLCAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5U
UkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsK
KworICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0
IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQt
b2JqZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiVGhlIGRhdGEgYmVpbmcgc3RvcmVkIGNvdWxkIG5v
dCBiZSBjbG9uZWQgYnkgdGhlIGludGVybmFsIHN0cnVjdHVyZWQgY2xvbmluZyBhbGdvcml0aG0u
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KHNlbGYsIDApIiwgIkRP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOyAvLyBGSVhNRTogVGVzdCAnRGF0YUNsb25lRXJy
b3InIG5hbWUgd2hlbiBET000IGV4Y2VwdGlvbnMgYXJlIHVzZWQgaW4gYmluZGluZy4KKworICAg
IHRlc3RJbmRleCgpOworfQorCitmdW5jdGlvbiB0ZXN0SW5kZXgoKQoreworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiSURCSW5kZXgiKTsKKyAgICBldmFsQW5kTG9nKCJpbmRleEZyb21SZWFk
T25seVRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWRvbmx5Jykub2Jq
ZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2luZGV4JykiKTsKKyAgICBldmFsQW5kTG9nKCJpbmRl
eCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScsICdyZWFkd3JpdGUnKS5vYmplY3RTdG9yZSgnc3Rv
cmUnKS5pbmRleCgnaW5kZXgnKSIpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJREJJ
bmRleC5jb3VudCgpIik7CisKKyAgICBkZWJ1ZygiSWYgdGhlIG9wdGlvbmFsIGtleSBwYXJhbWV0
ZXIgaXMgbm90IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3Mg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiaW5kZXguY291bnQoe30pIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJS
IiwgIidEYXRhRXJyb3InIik7CisKKyAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURC
SW5kZXggYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImluZGV4RnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uY291bnQoKSIsICJJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvciciKTsKKworICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBz
b3VyY2Ugb2JqZWN0IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVk
IGluIGRlbGV0ZWQtb2JqZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklE
QkluZGV4LmdldCgpIik7CisKKyAgICBkZWJ1ZygiSWYgdGhlIGtleSBwYXJhbWV0ZXIgaXMgbm90
IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
aW5kZXguZ2V0KHt9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVy
cm9yJyIpOworCisgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkluZGV4IGJlbG9u
Z3MgdG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJpbmRl
eEZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmdldCgwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5U
UkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsK
KworICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0
IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQt
b2JqZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklEQkluZGV4LmdldEtl
eSgpIik7CisKKyAgICBkZWJ1ZygiSWYgdGhlIGtleSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQg
a2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2Yg
dHlwZSBEYXRhRXJyb3IuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiaW5kZXguZ2V0
S2V5KHt9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIp
OworCisgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkluZGV4IGJlbG9uZ3MgdG8g
aXMgbm90IGFjdGl2ZS4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJpbmRleEZyb21J
bmFjdGl2ZVRyYW5zYWN0aW9uLmdldEtleSgwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFO
U0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKwor
ICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRo
YXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2Jq
ZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklEQkluZGV4Lm9wZW5DdXJz
b3IoKSIpOworCisgICAgZGVidWcoIklmIHRoZSByYW5nZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVk
IGJ1dCBpcyBub3QgYSB2YWxpZCBrZXkgb3IgYSBrZXkgcmFuZ2UsIHRoaXMgbWV0aG9kIHRocm93
cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvci4iKTsKKyAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJpbmRleC5vcGVuQ3Vyc29yKHt9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5E
QVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworCisgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0
aGlzIElEQkluZGV4IGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJpbmRleEZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLm9wZW5DdXJzb3IoKSIs
ICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKworICAgIGRlYnVnKCJUaGUgdmFsdWUgZm9yIHRoZSBk
aXJlY3Rpb24gcGFyYW1ldGVyIGlzIGludmFsaWQuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbkNsYXNzKCJpbmRleC5vcGVuQ3Vyc29yKDAsICdpbnZhbGlkLWRpcmVjdGlvbicpIiwgIlR5
cGVFcnJvciIpOworCisgICAgLy8gIk9jY3VycyBpZiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIHNv
dXJjZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVkIG9yIHJlbW92ZWQuIiAtIGNvdmVyZWQg
aW4gZGVsZXRlZC1vYmplY3RzLmh0bWwKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSURC
SW5kZXgub3BlbktleUN1cnNvcigpIik7CisKKyAgICBkZWJ1ZygiSWYgdGhlIHJhbmdlIHBhcmFt
ZXRlciBpcyBzcGVjaWZpZWQgYnV0IGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwg
dGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yLiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4Lm9wZW5LZXlDdXJzb3Ioe30pIiwgIklE
QkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIidEYXRhRXJyb3InIik7CisKKyAgICBkZWJ1
ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCSW5kZXggYmVsb25ncyB0byBpcyBub3QgYWN0aXZl
LiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4RnJvbUluYWN0aXZlVHJhbnNh
Y3Rpb24ub3BlbktleUN1cnNvcigpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9O
X0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworCisgICAgZGVi
dWcoIlRoZSB2YWx1ZSBmb3IgdGhlIGRpcmVjdGlvbiBwYXJhbWV0ZXIgaXMgaW52YWxpZC4iKTsK
KyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uQ2xhc3MoImluZGV4Lm9wZW5LZXlDdXJzb3IoMCwg
J2ludmFsaWQtZGlyZWN0aW9uJykiLCAiVHlwZUVycm9yIik7CisKKyAgICAvLyAiT2NjdXJzIGlm
IGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0
ZWQgb3IgcmVtb3ZlZC4iIC0gY292ZXJlZCBpbiBkZWxldGVkLW9iamVjdHMuaHRtbAorCisgICAg
dGVzdEN1cnNvcigpOworfQorCitmdW5jdGlvbiB0ZXN0Q3Vyc29yKCkKK3sKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoIklEQkN1cnNvciIpOworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oWydzdG9yZScsICdpbmxpbmVLZXlTdG9yZSddLCAncmVhZHdyaXRl
JykiKTsKKworICAgIG1ha2VDdXJzb3IoKTsKKworICAgIGZ1bmN0aW9uIG1ha2VDdXJzb3IoKSB7
CisgICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmUnKS5vcGVuQ3Vyc29yKCkiKTsKKyAgICAgICAgcHJpbWFyeUN1cnNvclJlcXVlc3QgPSBy
ZXF1ZXN0OworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGV2YWxBbmRMb2coImN1cnNvciA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgICAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IG51bGw7CisgICAgICAgICAgICBtYWtlS2V5Q3Vyc29yKCk7CisgICAg
ICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24gbWFrZUtleUN1cnNvcigpIHsKKyAgICAgICAg
ZXZhbEFuZExvZygicmVxdWVzdCA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLmlu
ZGV4KCdpbmRleCcpLm9wZW5LZXlDdXJzb3IoKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImtleUN1cnNvciA9IHJlcXVlc3Qu
cmVzdWx0Iik7CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG51bGw7CisgICAgICAg
ICAgICBtYWtlUmV2ZXJzZUN1cnNvcigpOworICAgICAgICB9OworICAgIH0KKworICAgIGZ1bmN0
aW9uIG1ha2VSZXZlcnNlQ3Vyc29yKCkgeworICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykub3BlbkN1cnNvcihJREJLZXlSYW5nZS5s
b3dlckJvdW5kKC1JbmZpbml0eSksICdwcmV2JykiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJyZXZlcnNlQ3Vyc29yID0gcmVx
dWVzdC5yZXN1bHQiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gbnVsbDsKKyAg
ICAgICAgICAgIG1ha2VJbmxpbmVDdXJzb3IoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBtYWtlSW5saW5lQ3Vyc29yKCkgeworICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ2lubGluZUtleVN0b3JlJykub3BlbkN1cnNvcigp
Iik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZXZh
bEFuZExvZygiaW5saW5lQ3Vyc29yID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICAgICAgICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gbnVsbDsKKyAgICAgICAgICAgIHRlc3RDdXJzb3JBZHZhbmNlKCk7
CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdEN1cnNvckFkdmFuY2UoKSB7
CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIklEQkN1cnNvci5hZHZhbmNlKCki
KTsKKyAgICAgICAgZGVidWcoIkNhbGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0aGFuIG9uY2UgYmVm
b3JlIG5ldyBjdXJzb3IgZGF0YSBoYXMgYmVlbiBsb2FkZWQgaXMgbm90IGFsbG93ZWQgYW5kIHJl
c3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWluZyB0
aHJvd24uIik7CisgICAgICAgIGRlYnVnKCJJZiB0aGUgdmFsdWUgZm9yIGNvdW50IGlzIDAgKHpl
cm8pIG9yIGEgbmVnYXRpdmUgbnVtYmVyLCB0aGlzIG1ldGhvZCBtdXN0IHRocm93IGEgSmF2YVNj
cmlwdCBUeXBlRXJyb3IgZXhjZXB0aW9uLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uQ2xhc3MoImN1cnNvci5hZHZhbmNlKDApIiwgIlR5cGVFcnJvciIpOworICAgICAgICBldmFs
QW5kTG9nKCJjdXJzb3IuYWR2YW5jZSgxKSIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJjdXJzb3IuYWR2YW5jZSgxKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIi
LCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgICAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9u
IHRoaXMgSURCQ3Vyc29yIGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICAgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29yRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uYWR2YW5j
ZSgxKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAi
J1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKyAgICAgICAgcHJpbWFyeUN1cnNvclJlcXVl
c3Qub25zdWNjZXNzID0gdGVzdEN1cnNvckNvbnRpbnVlOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3RDdXJzb3JDb250aW51ZSgpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiSURCQ3Vyc29yLmNvbnRpbnVlKCkiKTsKKyAgICAgICAgZGVidWcoIlRoZSBwYXJhbWV0ZXIg
aXMgbm90IGEgdmFsaWQga2V5LiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJj
dXJzb3IuY29udGludWUoe30pIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIidE
YXRhRXJyb3InIik7CisgICAgICAgIGRlYnVnKCJUaGUgcGFyYW1ldGVyIGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidzIGRpcmVj
dGlvbiBpcyBcIm5leHRcIiBvciBcIm5leHR1bmlxdWVcIi4iKTsKKyAgICAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiY3Vyc29yLmNvbnRpbnVlKC1JbmZpbml0eSkiLCAiSURCRGF0YWJhc2VF
eGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICAgICAgZGVidWcoIlRoZSBw
YXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vyc29yJ3MgcG9zaXRp
b24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzIFwicHJldlwiIG9yIFwicHJldnVuaXF1
ZVwiLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJyZXZlcnNlQ3Vyc29yLmNv
bnRpbnVlKDEwMCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJv
ciciKTsKKyAgICAgICAgZGVidWcoIkNhbGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0aGFuIG9uY2Ug
YmVmb3JlIG5ldyBjdXJzb3IgZGF0YSBoYXMgYmVlbiBsb2FkZWQgaXMgbm90IGFsbG93ZWQgYW5k
IHJlc3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBiZWlu
ZyB0aHJvd24uIik7CisgICAgICAgIGV2YWxBbmRMb2coImN1cnNvci5jb250aW51ZSgpIik7Cisg
ICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvci5jb250aW51ZSgpIiwgIkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAg
ICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJDdXJzb3IgYmVsb25ncyB0byBpcyBu
b3QgYWN0aXZlLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3JGcm9t
SW5hY3RpdmVUcmFuc2FjdGlvbi5jb250aW51ZSgpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRS
QU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOwor
CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIklEQkN1cnNvci5kZWxldGUoKSIp
OworICAgICAgICBkZWJ1ZygiSWYgdGhpcyBjdXJzb3IncyBnb3QgdmFsdWUgZmxhZyBpcyBmYWxz
ZSwgb3IgaWYgdGhpcyBjdXJzb3Igd2FzIGNyZWF0ZWQgdXNpbmcgb3BlbktleUN1cnNvciBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIGlzIHRocm93bi4iKTsKKyAgICAg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigia2V5Q3Vyc29yLmRlbGV0ZSgpIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgICAg
IGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJDdXJzb3IgYmVsb25ncyB0byBpcyBub3Qg
YWN0aXZlLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3JGcm9tSW5h
Y3RpdmVUcmFuc2FjdGlvbi5kZWxldGUoKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FD
VElPTl9JTkFDVElWRV9FUlIiLCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKyAgICAg
ICAgcHJpbWFyeUN1cnNvclJlcXVlc3Qub25zdWNjZXNzID0gdGVzdEN1cnNvclVwZGF0ZTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q3Vyc29yVXBkYXRlKCkgeworICAgICAgICBkZWJ1Zygi
Iik7CisgICAgICAgIGRlYnVnKCJJREJDdXJzb3IudXBkYXRlKCkiKTsKKyAgICAgICAgZGVidWco
IklmIHRoaXMgY3Vyc29yJ3MgZ290IHZhbHVlIGZsYWcgaXMgZmFsc2Ugb3IgaWYgdGhpcyBjdXJz
b3Igd2FzIGNyZWF0ZWQgdXNpbmcgb3BlbktleUN1cnNvci4gVGhpcyBtZXRob2QgdGhyb3dzIGEg
RE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IuIik7CisgICAgICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImtleUN1cnNvci51cGRhdGUoe30pIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgICAgIGRlYnVn
KCJJZiB0aGUgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBvZiB0aGlzIGN1cnNvciB1c2VzIGluLWxp
bmUga2V5cyBhbmQgZXZhbHVhdGluZyB0aGUga2V5IHBhdGggb2YgdGhlIHZhbHVlIHBhcmFtZXRl
ciByZXN1bHRzIGluIGEgZGlmZmVyZW50IHZhbHVlIHRoYW4gdGhlIGN1cnNvcidzIGVmZmVjdGl2
ZSBrZXksIHRoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJv
ci4iKTsKKyAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiaW5saW5lQ3Vyc29yLnVwZGF0
ZSh7aWQ6IDF9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9y
JyIpOworICAgICAgICBkZWJ1ZygiSWYgdGhlIHN0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtIHRo
cm93cyBhbiBleGNlcHRpb24sIHRoYXQgZXhjZXB0aW9uIGlzIHJldGhyb3duLiIpOworICAgICAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3IudXBkYXRlKHNlbGYpIiwgIkRPTUV4Y2Vw
dGlvbi5EQVRBX0NMT05FX0VSUiIpOyAvLyBGSVhNRTogVGVzdCAnRGF0YUNsb25lRXJyb3InIG5h
bWUgd2hlbiBET000IGV4Y2VwdGlvbnMgYXJlIHVzZWQgaW4gYmluZGluZy4KKyAgICAgICAgZGVi
dWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkN1cnNvciBiZWxvbmdzIHRvIGlzIG5vdCBhY3Rp
dmUuIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvckZyb21JbmFjdGl2
ZVRyYW5zYWN0aW9uLnVwZGF0ZSh7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJ
T05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InIik7CisKKyAgICAg
ICAgcHJpbWFyeUN1cnNvclJlcXVlc3Qub25zdWNjZXNzID0gbnVsbDsKKyAgICAgICAgbWFrZVJl
YWRPbmx5Q3Vyc29yKCk7CisgICAgfQorCisgICAgLy8gQ2FuJ3QgaGF2ZSBib3RoIHRyYW5zYWN0
aW9ucyBydW5uaW5nIGF0IG9uY2UsIHNvIHRoZXNlIHRlc3RzIG11c3QgYmUgc2VwYXJhdGVkIG91
dC4KKyAgICBmdW5jdGlvbiBtYWtlUmVhZE9ubHlDdXJzb3IoKSB7CisgICAgICAgIGV2YWxBbmRM
b2coInJlYWRPbmx5VHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZG9u
bHknKSIpOworICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gcmVhZE9ubHlUcmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmUnKS5vcGVuQ3Vyc29yKCkiKTsKKyAgICAgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3JGcm9tUmVh
ZE9ubHlUcmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgICAgICBkb1JlYWRP
bmx5Q3Vyc29yVGVzdHMoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkb1Jl
YWRPbmx5Q3Vyc29yVGVzdHMoKSB7CisgICAgICAgZGVidWcoIiIpOworICAgICAgIGRlYnVnKCJJ
REJDdXJzb3IuZGVsZXRlKCkgLSByZWFkIG9ubHkgdHJhbnNhY3Rpb24iKTsKKyAgICAgICBkZWJ1
ZygnVGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgUmVhZE9ubHlFcnJv
ciBpZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggdGhpcyBJREJDdXJzb3IgYmVsb25ncyB0byBoYXMg
aXRzIG1vZGUgc2V0IHRvICJyZWFkb25seSIuJyk7CisgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigiY3Vyc29yRnJvbVJlYWRPbmx5VHJhbnNhY3Rpb24uZGVsZXRlKCkiLCAiSURCRGF0YWJh
c2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIsICInUmVhZE9ubHlFcnJvciciKTsKKworICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICBkZWJ1ZygiSURCQ3Vyc29yLnVwZGF0ZSgpIC0gcmVhZCBvbmx5
IHRyYW5zYWN0aW9uIik7CisgICAgICAgZGVidWcoJ1RoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4
Y2VwdGlvbiBvZiB0eXBlIFJlYWRPbmx5RXJyb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNoIHRo
aXMgSURCQ3Vyc29yIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byAicmVhZG9ubHkiLicp
OworICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvckZyb21SZWFkT25seVRyYW5z
YWN0aW9uLnVwZGF0ZSh7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIs
ICInUmVhZE9ubHlFcnJvciciKTsKKworICAgICAgIHRlc3RUcmFuc2FjdGlvbigpOworICAgIH0K
K30KKworZnVuY3Rpb24gdGVzdFRyYW5zYWN0aW9uKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAg
ZGVidWcoIklEQlRyYW5zYWN0aW9uIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklE
QlRyYW5zYWN0aW9uLmFib3J0KCkiKTsKKworICAgIGRlYnVnKCJJZiB0aGlzIHRyYW5zYWN0aW9u
IGlzIGZpbmlzaGVkLCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yLiAiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJmaW5pc2hlZFRyYW5zYWN0aW9u
LmFib3J0KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKworICAgIGRlYnVnKCJJZiB0aGUgcmVxdWVzdGVkIG9iamVjdCBzdG9yZSBp
cyBub3QgaW4gdGhpcyB0cmFuc2FjdGlvbidzIHNjb3BlLiIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdvdGhlclN0b3Jl
JykiLCAiRE9NRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiLCAiJ05vdEZvdW5kRXJyb3InIik7CisK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155889</attachid>
            <date>2012-08-01 14:42:11 -0700</date>
            <delta_ts>2012-08-06 19:44:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85513-20120801154152.patch</filename>
            <type>text/plain</type>
            <size>55223</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzYxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjU1MjgzMTRiYTZlYmEyOWFlZDFh
ZjYwNjk5Mzg2NWFiZjBlN2IwMC4uY2EyM2U4MTBlMWJiNjI1Zjk5OGNiZDNjNzNjOTNlNTM5NTlj
MjllNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDEyLTA4LTAxICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgSW5kZXhlZERCOiBUaHJvdyBwcm9wZXIgZXhj
ZXB0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODU1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0IGFsbCBvZiB0aGUgZXhjZXB0aW9uIHRocm93aW5nIGNsYXVzZXMgaW4gdGhlIHNwZWMsIHVu
bGVzcyB0aGV5IGFyZQorICAgICAgICB3ZWxsIGNvdmVyZWQgZWxzZXdoZXJlIChpbmRpY2F0ZWQg
YnkgYSBjb21tZW50IGluIHRoZSBzY3JpcHQpLgorICAgICAgICAKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9leGNlcHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvZXhjZXB0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZXhjZXB0aW9ucy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
LnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzKToK
KyAgICAgICAgKHRlc3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAg
ICAgICAodGVzdC5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KHRlc3REYXRhYmFzZS5yZXF1ZXN0Lm9uc3VjY2Vzcy50cmFucy5vbmNvbXBsZXRlKToKKyAgICAg
ICAgKHRlc3REYXRhYmFzZS5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0RGF0YWJh
c2UpOgorICAgICAgICAocHJlcGFyZVN0b3JlQW5kSW5kZXgucmVxdWVzdC5vbnN1Y2Nlc3MpOgor
ICAgICAgICAocHJlcGFyZVN0b3JlQW5kSW5kZXgpOgorICAgICAgICAodGVzdE9iamVjdFN0b3Jl
LnJlcXVlc3Qub25zdWNjZXNzLnRyYW5zLm9uY29tcGxldGUpOgorICAgICAgICAodGVzdE9iamVj
dFN0b3JlLnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRlc3RPYmplY3RTdG9yZSk6Cisg
ICAgICAgICh0ZXN0SW5kZXgpOgorICAgICAgICAodGVzdEN1cnNvci5tYWtlQ3Vyc29yLnJlcXVl
c3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRlc3RDdXJzb3IubWFrZUN1cnNvcik6CisgICAgICAg
ICh0ZXN0Q3Vyc29yLm1ha2VLZXlDdXJzb3IucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAo
dGVzdEN1cnNvci5tYWtlS2V5Q3Vyc29yKToKKyAgICAgICAgKHRlc3RDdXJzb3IubWFrZVJldmVy
c2VDdXJzb3IucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdEN1cnNvci5tYWtlUmV2
ZXJzZUN1cnNvcik6CisgICAgICAgICh0ZXN0Q3Vyc29yLm1ha2VJbmxpbmVDdXJzb3IucmVxdWVz
dC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdEN1cnNvci5tYWtlSW5saW5lQ3Vyc29yKToKKyAg
ICAgICAgKHRlc3RDdXJzb3IudGVzdEN1cnNvckFkdmFuY2UpOgorICAgICAgICAodGVzdEN1cnNv
ci50ZXN0Q3Vyc29yQ29udGludWUpOgorICAgICAgICAodGVzdEN1cnNvci50ZXN0Q3Vyc29yRGVs
ZXRlKToKKyAgICAgICAgKHRlc3RDdXJzb3IudGVzdEN1cnNvclVwZGF0ZSk6CisgICAgICAgICh0
ZXN0Q3Vyc29yLm1ha2VSZWFkT25seUN1cnNvci5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAg
ICh0ZXN0Q3Vyc29yLm1ha2VSZWFkT25seUN1cnNvcik6CisgICAgICAgICh0ZXN0Q3Vyc29yLmRv
UmVhZE9ubHlDdXJzb3JUZXN0cyk6CisgICAgICAgICh0ZXN0Q3Vyc29yKToKKyAgICAgICAgKHRl
c3RUcmFuc2FjdGlvbik6CisKKzIwMTItMDgtMDEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBJbmRleGVkREI6IElEQkN1cnNvci5jb250aW51ZShrZXkpIGRv
ZXMgbm90IHRocm93IGZvciBrZXkgImJlaGluZCIgY3Vyc29yCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU2MgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBmNTlmYWIyYmRiOTE4OGM3MmMxNGVkZmEwYjA4N2EyMjZjMjk4ODYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb25zLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQ4MCBAQAorVGVzdCB0aGF0IGV4cGVjdGVkIGV4Y2VwdGlvbnMgYXJlIHRo
cm93biBwZXIgSW5kZXhlZERCIHNwZWMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
KworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdleGNlcHRpb25zJykKK3JlcXVlc3QgPSBpbmRl
eGVkREIub3BlbignZXhjZXB0aW9ucycpCitQQVNTIHJlcXVlc3QucmVhZHlTdGF0ZSBpcyAicGVu
ZGluZyIKKworMy4yLjEgVGhlIElEQlJlcXVlc3QgSW50ZXJmYWNlCisKK0lEQlJlcXVlc3QuZXJy
b3IKK1doZW4gdGhlIGRvbmUgZmxhZyBpcyBmYWxzZSwgZ2V0dGluZyB0aGlzIHByb3BlcnR5IG11
c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4KK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSByZXF1ZXN0LmVycm9yCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhy
b3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgorUEFTUyBl
bmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCisKK0lEQlJlcXVlc3QucmVzdWx0CitXaGVuIHRo
ZSBkb25lIGZsYWcgaXMgZmFsc2UsIGdldHRpbmcgdGhpcyBwcm9wZXJ0eSBtdXN0IHRocm93IGEg
RE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IuCitFeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gcmVxdWVzdC5yZXN1bHQKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNT
IGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCitQQVNTIGVuYW1lIGlzICdJ
bnZhbGlkU3RhdGVFcnJvcicKKworMy4yLjMgT3BlbmluZyBhIGRhdGFiYXNlCisKK0lEQkZhY3Rv
cnkuY21wKCkKK09uZSBvZiB0aGUgc3VwcGxpZWQga2V5cyB3YXMgbm90IGEgdmFsaWQga2V5Lgor
RXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGluZGV4ZWREQi5jbXAobnVsbCwgMCkKK1BBU1MgRXhj
ZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uREFU
QV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0RhdGFFcnJvcicKKworZGIgPSByZXF1ZXN0LnJlc3VsdAor
ZGIuc2V0VmVyc2lvbignMScpCitzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScp
CitpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdpZCcpCitzdG9yZS5wdXQoe2lk
OiAnYSd9LCAxKQorc3RvcmUucHV0KHtpZDogJ2InfSwgMikKK3N0b3JlLnB1dCh7aWQ6ICdjJ30s
IDMpCitzdG9yZS5wdXQoe2lkOiAnZCd9LCA0KQorc3RvcmUucHV0KHtpZDogJ2UnfSwgNSkKK3N0
b3JlLnB1dCh7aWQ6ICdmJ30sIDYpCitzdG9yZS5wdXQoe2lkOiAnZyd9LCA3KQorc3RvcmUucHV0
KHtpZDogJ2gnfSwgOCkKK3N0b3JlLnB1dCh7aWQ6ICdpJ30sIDkpCitzdG9yZS5wdXQoe2lkOiAn
aid9LCAxMCkKK290aGVyU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3RoZXJTdG9yZScp
CitpbmxpbmVLZXlTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdpbmxpbmVLZXlTdG9yZScs
IHtrZXlQYXRoOiAnaWQnfSkKK2lubGluZUtleVN0b3JlLnB1dCh7aWQ6IDB9KQorCiszLjIuNCBE
YXRhYmFzZQorZGIuc2V0VmVyc2lvbignMicpCisKK0lEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0
b3JlKCkKK0lmIGFuIG9iamVjdFN0b3JlIHdpdGggdGhlIHNhbWUgbmFtZSBhbHJlYWR5IGV4aXN0
cywgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBD
b25zdHJhaW50RXJyb3IuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMg
SURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIKK1BBU1MgZW5hbWUgaXMgJ0NvbnN0
cmFpbnRFcnJvcicKK0lmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBhdGggdGhlbiBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIFN5bnRheEVycm9yIG11c3QgYmUgdGhyb3duLgorRXhwZWN0aW5n
IGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmYWlsJywge2tleVBhdGg6ICct
aW52YWxpZC0nfSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9N
RXhjZXB0aW9uLlNZTlRBWF9FUlIKK1BBU1MgZW5hbWUgaXMgJ1N5bnRheEVycm9yJworSWYgdGhl
IG9wdGlvbmFsUGFyYW1ldGVycyBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLCBhbmQgYXV0b0luY3Jl
bWVudCBpcyBzZXQgdG8gdHJ1ZSwgYW5kIHRoZSBrZXlQYXRoIHBhcmFtZXRlciBpcyBzcGVjaWZp
ZWQgdG8gdGhlIGVtcHR5IHN0cmluZywgb3Igc3BlY2lmaWVkIHRvIGFuIEFycmF5LCB0aGlzIGZ1
bmN0aW9uIG11c3QgdGhyb3cgYSBJbnZhbGlkQWNjZXNzRXJyb3IgZXhjZXB0aW9uLgorRXhwZWN0
aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmYWlsJywge2F1dG9JbmNy
ZW1lbnQ6IHRydWUsIGtleVBhdGg6ICcnfSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQ
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBlbmFtZSBp
cyAnSW52YWxpZEFjY2Vzc0Vycm9yJworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdmYWlsJywge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6IFsnYSdd
fSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9u
LklOVkFMSURfQUNDRVNTX0VSUgorUEFTUyBlbmFtZSBpcyAnSW52YWxpZEFjY2Vzc0Vycm9yJwor
CitJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpCitUaGVyZSBpcyBubyBvYmplY3Qgc3Rv
cmUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSwgY29tcGFyZWQgaW4gYSBjYXNlLXNlbnNpdGl2ZSBtYW5u
ZXIsIGluIHRoZSBjb25uZWN0ZWQgZGF0YWJhc2UuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20g
ZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ25vLXN1Y2gtc3RvcmUnKQorUEFTUyBFeGNlcHRpb24gd2Fz
IHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgorUEFTUyBl
bmFtZSBpcyAnTm90Rm91bmRFcnJvcicKKworSURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKQorSWYg
dGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIElEQkRhdGFiYXNlIG9iamVjdCBmb3Igd2hpY2ggYSAi
dmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gaXMgc3RpbGwgcnVubmluZywgYSBJbnZhbGlkU3Rh
dGVFcnJvciBleGNlcHRpb24gbXVzdCBiZSB0aHJvd24uCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZy
b20gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQ
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCitQQVNTIGVuYW1lIGlz
ICdJbnZhbGlkU3RhdGVFcnJvcicKK09uZSBvZiB0aGUgbmFtZXMgcHJvdmlkZWQgaW4gdGhlIHN0
b3JlTmFtZXMgYXJndW1lbnQgZG9lc24ndCBleGlzdCBpbiB0aGlzIGRhdGFiYXNlLgorRXhwZWN0
aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKCduby1zdWNoLXN0b3JlJykKK1BBU1Mg
RXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLk5PVF9GT1VO
RF9FUlIKK1BBU1MgZW5hbWUgaXMgJ05vdEZvdW5kRXJyb3InCitUaGUgdmFsdWUgZm9yIHRoZSBt
b2RlIHBhcmFtZXRlciBpcyBpbnZhbGlkLgorRXhwZWN0aW5nIFR5cGVFcnJvciBleGNlcHRpb24g
ZnJvbSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAnaW52YWxpZC1tb2RlJykKK1BBU1MgRXhjZXB0
aW9uIHdhcyB0aHJvd24uCitQQVNTIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScsICdpbnZhbGlkLW1v
ZGUnKSB0aHJldyBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1RoZSBmdW5jdGlvbiB3YXMgY2FsbGVk
IHdpdGggYW4gZW1wdHkgbGlzdCBvZiBzdG9yZSBuYW1lcworRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLnRyYW5zYWN0aW9uKFtdKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1Mg
Y29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCitQQVNTIGVuYW1lIGlzICdJ
bnZhbGlkQWNjZXNzRXJyb3InCisKK09uZSBtb3JlIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0
b3JlKCkgdGVzdDoKK0lmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gb3V0c2lkZSBhICJ2
ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiBjYWxsYmFjayAuLi4gdGhlIGltcGxlbWVudGF0aW9u
IG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZmFpbCcpCitQQVNT
IEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUgorUEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCisKK09uZSBtb3Jl
IElEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgdGVzdDoKK0lmIHRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIGZyb20gb3V0c2lkZSBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiBjYWxs
YmFjayAuLi4gdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2Yg
dHlwZSBJbnZhbGlkU3RhdGVFcnJvci4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5kZWxl
dGVPYmplY3RTdG9yZSgnZmFpbCcpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBj
b2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgorUEFTUyBlbmFtZSBpcyAnSW52
YWxpZFN0YXRlRXJyb3InCisKK1ByZXBhcmUgYW4gb2JqZWN0IHN0b3JlIGFuZCBpbmRleCBmcm9t
IGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uIGZvciBsYXRlciB1c2UuCitmaW5pc2hlZFRyYW5zYWN0
aW9uID0gaW5hY3RpdmVUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpCitzdG9y
ZUZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uID0gaW5hY3RpdmVUcmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmUnKQoraW5kZXhGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbiA9IHN0b3JlRnJvbUluYWN0
aXZlVHJhbnNhY3Rpb24uaW5kZXgoJ2luZGV4JykKK3JlcXVlc3QgPSBzdG9yZUZyb21JbmFjdGl2
ZVRyYW5zYWN0aW9uLm9wZW5DdXJzb3IoKQorY3Vyc29yRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24g
PSByZXF1ZXN0LnJlc3VsdAorCiszLjIuNSBPYmplY3QgU3RvcmUKK3N0b3JlRnJvbVJlYWRPbmx5
VHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZG9ubHknKS5vYmplY3RT
dG9yZSgnc3RvcmUnKQorc3RvcmUgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZHdyaXRl
Jykub2JqZWN0U3RvcmUoJ3N0b3JlJykKKworSURCT2JqZWN0U3RvcmUuYWRkKCkKK3N0b3JlRnJv
bVJlYWRPbmx5VHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZG9ubHkn
KS5vYmplY3RTdG9yZSgnc3RvcmUnKQorc3RvcmUgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAn
cmVhZHdyaXRlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykKK1RoaXMgbWV0aG9kIHRocm93cyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIFJlYWRPbmx5RXJyb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNo
IHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBoYXMgaXRzIG1vZGUgc2V0IHRvICJy
ZWFkb25seSIuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmVGcm9tUmVhZE9ubHlUcmFu
c2FjdGlvbi5hZGQoMCwgMCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUg
aXMgSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgorUEFTUyBlbmFtZSBpcyAnUmVh
ZE9ubHlFcnJvcicKK1RoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3Mg
dG8gaXMgbm90IGFjdGl2ZS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZUZyb21JbmFj
dGl2ZVRyYW5zYWN0aW9uLmFkZCgwLCAwKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIK
K1BBU1MgZW5hbWUgaXMgJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicKK1RoZSBkYXRhIGJlaW5n
IHN0b3JlZCBjb3VsZCBub3QgYmUgY2xvbmVkIGJ5IHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVkIGNs
b25pbmcgYWxnb3JpdGhtLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLmFkZChzZWxm
LCAwKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRp
b24uREFUQV9DTE9ORV9FUlIKKworSURCT2JqZWN0U3RvcmUuY2xlYXIoKQorVGhpcyBtZXRob2Qg
dGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgUmVhZE9ubHlFcnJvciBpZiB0aGUgdHJhbnNh
Y3Rpb24gd2hpY2ggdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIGhhcyBpdHMgbW9k
ZSBzZXQgdG8gInJlYWRvbmx5Ii4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZUZyb21S
ZWFkT25seVRyYW5zYWN0aW9uLmNsZWFyKCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQ
QVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgorUEFTUyBlbmFt
ZSBpcyAnUmVhZE9ubHlFcnJvcicKK1RoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3Jl
IGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9y
ZUZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmNsZWFyKCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJv
d24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJ
VkVfRVJSCitQQVNTIGVuYW1lIGlzICdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InCisKK0lEQk9i
amVjdFN0b3JlLmNvdW50KCkKK0lmIHRoZSBvcHRpb25hbCBrZXkgcGFyYW1ldGVyIGlzIG5vdCBh
IHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgRGF0YUVycm9yLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLmNv
dW50KHt9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAnRGF0YUVycm9yJworVGhlIHRy
YW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLgor
RXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uY291
bnQoKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIKK1BBU1MgZW5hbWUgaXMgJ1RyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvcicKKworSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkKK1RoaXMgbWV0
aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIFJlYWRPbmx5RXJyb3IgaWYgdGhlIHRy
YW5zYWN0aW9uIHdoaWNoIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBoYXMgaXRz
IG1vZGUgc2V0IHRvICJyZWFkb25seSIuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmVG
cm9tUmVhZE9ubHlUcmFuc2FjdGlvbi5kZWxldGUoMCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJv
d24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgorUEFT
UyBlbmFtZSBpcyAnUmVhZE9ubHlFcnJvcicKK0lmIHRoZSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBh
IHZhbGlkIGtleSBvciBhIGtleSByYW5nZSB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRp
b24gb2YgdHlwZSBEYXRhRXJyb3IuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUuZGVs
ZXRlKHt9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAnRGF0YUVycm9yJworVGhlIHRy
YW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLgor
RXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uYWRk
KDAsIDApCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFi
YXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUgorUEFTUyBlbmFtZSBpcyAnVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yJworCitJREJPYmplY3RTdG9yZS5nZXQoKQorSWYgdGhlIGtl
eSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhv
ZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuCitFeHBlY3RpbmcgZXhj
ZXB0aW9uIGZyb20gc3RvcmUuZ2V0KHt9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAn
RGF0YUVycm9yJworVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0
byBpcyBub3QgYWN0aXZlLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlRnJvbUluYWN0
aXZlVHJhbnNhY3Rpb24uZ2V0KDApCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBj
b2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUgorUEFT
UyBlbmFtZSBpcyAnVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJworCitJREJPYmplY3RTdG9yZS5p
bmRleCgpCitUaGVyZSBpcyBubyBpbmRleCB3aXRoIHRoZSBnaXZlbiBuYW1lLCBjb21wYXJlZCBp
biBhIGNhc2Utc2Vuc2l0aXZlIG1hbm5lciwgaW4gdGhlIGNvbm5lY3RlZCBkYXRhYmFzZS4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5pbmRleCgnbm8tc3VjaC1pbmRleCcpCitQQVNT
IEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5OT1RfRk9V
TkRfRVJSCitQQVNTIGVuYW1lIGlzICdOb3RGb3VuZEVycm9yJworT2NjdXJzIGlmIGEgcmVxdWVz
dCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVt
b3ZlZCwgb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHRoZSBvYmplY3Qgc3RvcmUgYmVsb25ncyB0byBo
YXMgZmluaXNoZWQuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmVGcm9tSW5hY3RpdmVU
cmFuc2FjdGlvbi5pbmRleCgnaW5kZXgnKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKK1BBU1MgZW5hbWUgaXMg
J0ludmFsaWRTdGF0ZUVycm9yJworCitJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkKK0lmIHRo
ZSByYW5nZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGJ1dCBpcyBub3QgYSB2YWxpZCBrZXkgb3Ig
YSBrZXkgcmFuZ2UsIHRoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERh
dGFFcnJvci4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5vcGVuQ3Vyc29yKHt9KQor
UEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAnRGF0YUVycm9yJworVGhlIHRyYW5zYWN0aW9u
IHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLgorRXhwZWN0aW5n
IGV4Y2VwdGlvbiBmcm9tIHN0b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24ub3BlbkN1cnNvcigp
CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhj
ZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUgorUEFTUyBlbmFtZSBpcyAnVHJhbnNhY3Rp
b25JbmFjdGl2ZUVycm9yJworVGhlIHZhbHVlIGZvciB0aGUgZGlyZWN0aW9uIHBhcmFtZXRlciBp
cyBpbnZhbGlkLgorRXhwZWN0aW5nIFR5cGVFcnJvciBleGNlcHRpb24gZnJvbSBzdG9yZS5vcGVu
Q3Vyc29yKDAsICdpbnZhbGlkLWRpcmVjdGlvbicpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3du
LgorUEFTUyBzdG9yZS5vcGVuQ3Vyc29yKDAsICdpbnZhbGlkLWRpcmVjdGlvbicpIHRocmV3IFR5
cGVFcnJvcjogVHlwZSBlcnJvcgorCitJREJPYmplY3RTdG9yZS5wdXQoKQorVGhpcyBtZXRob2Qg
dGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgUmVhZE9ubHlFcnJvciBpZiB0aGUgdHJhbnNh
Y3Rpb24gd2hpY2ggdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIGhhcyBpdHMgbW9k
ZSBzZXQgdG8gInJlYWRvbmx5Ii4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZUZyb21S
ZWFkT25seVRyYW5zYWN0aW9uLnB1dCgwLCAwKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4K
K1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSCitQQVNTIGVu
YW1lIGlzICdSZWFkT25seUVycm9yJworVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3Rv
cmUgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0
b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24ucHV0KDAsIDApCitQQVNTIEV4Y2VwdGlvbiB3YXMg
dGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lO
QUNUSVZFX0VSUgorUEFTUyBlbmFtZSBpcyAnVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJworVGhl
IGRhdGEgYmVpbmcgc3RvcmVkIGNvdWxkIG5vdCBiZSBjbG9uZWQgYnkgdGhlIGludGVybmFsIHN0
cnVjdHVyZWQgY2xvbmluZyBhbGdvcml0aG0uCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3Rv
cmUucHV0KHNlbGYsIDApCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlz
IERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorZGIuc2V0VmVyc2lvbignMycpCisKK0lEQk9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCkKK0lmIGFuIGluZGV4IHdpdGggdGhlIHNhbWUgbmFtZSBh
bHJlYWR5IGV4aXN0cywgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRp
b24gb2YgdHlwZSBDb25zdHJhaW50RXJyb3IuIAorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0
b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdrZXlQYXRoJykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0
aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIK
K1BBU1MgZW5hbWUgaXMgJ0NvbnN0cmFpbnRFcnJvcicKK0lmIGtleVBhdGggaXMgbm90IGEgdmFs
aWQga2V5IHBhdGggdGhlbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIFN5bnRheEVycm9yIG11c3Qg
YmUgdGhyb3duLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLmNyZWF0ZUluZGV4KCdm
YWlsJywgJy1pbnZhbGlkLScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2Rl
IGlzIERPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSCitQQVNTIGVuYW1lIGlzICdTeW50YXhFcnJvcicK
K0lmIGtleVBhdGggaXMgYW4gQXJyYXkgYW5kIHRoZSBtdWx0aUVudHJ5IHByb3BlcnR5IGluIHRo
ZSBvcHRpb25hbFBhcmFtZXRlcnMgaXMgdHJ1ZSwgdGhlbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBl
IEludmFsaWRBY2Nlc3NFcnJvciBtdXN0IGJlIHRocm93bi4KK0V4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBzdG9yZS5jcmVhdGVJbmRleCgnZmFpbCcsIFsnYSddLCB7bXVsdGlFbnRyeTogdHJ1ZX0p
CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5J
TlZBTElEX0FDQ0VTU19FUlIKK1BBU1MgZW5hbWUgaXMgJ0ludmFsaWRBY2Nlc3NFcnJvcicKKwor
SURCT2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKQorVGhlcmUgaXMgbm8gaW5kZXggd2l0aCB0aGUg
Z2l2ZW4gbmFtZSwgY29tcGFyZWQgaW4gYSBjYXNlLXNlbnNpdGl2ZSBtYW5uZXIsIGluIHRoZSBj
b25uZWN0ZWQgZGF0YWJhc2UuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUuZGVsZXRl
SW5kZXgoJ25vLXN1Y2gtaW5kZXgnKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1Mg
Y29kZSBpcyBET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgorUEFTUyBlbmFtZSBpcyAnTm90Rm91
bmRFcnJvcicKKworT25lIG1vcmUgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSB0ZXN0Ogor
SWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBvdXRzaWRlIGEgInZlcnNpb25jaGFuZ2Ui
IHRyYW5zYWN0aW9uIGNhbGxiYWNrIC4uLiB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBh
IERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLgorRXhwZWN0aW5nIGV4Y2Vw
dGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLmNy
ZWF0ZUluZGV4KCdmYWlsJywgJ2tleVBhdGgnKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4K
K1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKK1BBU1MgZW5hbWUg
aXMgJ0ludmFsaWRTdGF0ZUVycm9yJworCitPbmUgbW9yZSBJREJPYmplY3RTdG9yZS5kZWxldGVJ
bmRleCgpIHRlc3Q6CitJZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG91dHNpZGUgYSAi
dmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gY2FsbGJhY2sgLi4uIHRoZSBpbXBsZW1lbnRhdGlv
biBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IuCitF
eHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0U3Rv
cmUoJ3N0b3JlJykuZGVsZXRlSW5kZXgoJ2ZhaWwnLCAna2V5UGF0aCcpCitQQVNTIEV4Y2VwdGlv
biB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UgorUEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCisKKzMuMi42IEluZGV4CitpbmRl
eEZyb21SZWFkT25seVRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWRv
bmx5Jykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2luZGV4JykKK2luZGV4ID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3cml0ZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLmluZGV4
KCdpbmRleCcpCisKK0lEQkluZGV4LmNvdW50KCkKK0lmIHRoZSBvcHRpb25hbCBrZXkgcGFyYW1l
dGVyIGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhpcyBtZXRob2QgdGhyb3dz
IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGluZGV4LmNvdW50KHt9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29k
ZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAnRGF0YUVy
cm9yJworVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCSW5kZXggYmVsb25ncyB0byBpcyBub3QgYWN0
aXZlLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGluZGV4RnJvbUluYWN0aXZlVHJhbnNhY3Rp
b24uY291bnQoKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJE
YXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIKK1BBU1MgZW5hbWUgaXMg
J1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicKKworSURCSW5kZXguZ2V0KCkKK0lmIHRoZSBrZXkg
cGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhpcyBtZXRob2Qg
dGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yLgorRXhwZWN0aW5nIGV4Y2Vw
dGlvbiBmcm9tIGluZGV4LmdldCh7fSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNT
IGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0Rh
dGFFcnJvcicKK1RoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkluZGV4IGJlbG9uZ3MgdG8gaXMgbm90
IGFjdGl2ZS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBpbmRleEZyb21JbmFjdGl2ZVRyYW5z
YWN0aW9uLmdldCgwKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIKK1BBU1MgZW5hbWUg
aXMgJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicKKworSURCSW5kZXguZ2V0S2V5KCkKK0lmIHRo
ZSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhpcyBt
ZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yLgorRXhwZWN0aW5n
IGV4Y2VwdGlvbiBmcm9tIGluZGV4LmdldEtleSh7fSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJv
d24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKK1BBU1MgZW5h
bWUgaXMgJ0RhdGFFcnJvcicKK1RoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkluZGV4IGJlbG9uZ3Mg
dG8gaXMgbm90IGFjdGl2ZS4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBpbmRleEZyb21JbmFj
dGl2ZVRyYW5zYWN0aW9uLmdldEtleSgwKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIK
K1BBU1MgZW5hbWUgaXMgJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicKKworSURCSW5kZXgub3Bl
bkN1cnNvcigpCitJZiB0aGUgcmFuZ2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBidXQgaXMgbm90
IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gaW5kZXgu
b3BlbkN1cnNvcih7fSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMg
SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0RhdGFFcnJvcicK
K1RoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkluZGV4IGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4K
K0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBpbmRleEZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLm9w
ZW5DdXJzb3IoKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJE
YXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIKK1BBU1MgZW5hbWUgaXMg
J1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicKK1RoZSB2YWx1ZSBmb3IgdGhlIGRpcmVjdGlvbiBw
YXJhbWV0ZXIgaXMgaW52YWxpZC4KK0V4cGVjdGluZyBUeXBlRXJyb3IgZXhjZXB0aW9uIGZyb20g
aW5kZXgub3BlbkN1cnNvcigwLCAnaW52YWxpZC1kaXJlY3Rpb24nKQorUEFTUyBFeGNlcHRpb24g
d2FzIHRocm93bi4KK1BBU1MgaW5kZXgub3BlbkN1cnNvcigwLCAnaW52YWxpZC1kaXJlY3Rpb24n
KSB0aHJldyBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKKworSURCSW5kZXgub3BlbktleUN1cnNvcigp
CitJZiB0aGUgcmFuZ2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBidXQgaXMgbm90IGEgdmFsaWQg
a2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2Yg
dHlwZSBEYXRhRXJyb3IuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gaW5kZXgub3BlbktleUN1
cnNvcih7fSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0
YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0RhdGFFcnJvcicKK1RoZSB0
cmFuc2FjdGlvbiB0aGlzIElEQkluZGV4IGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4KK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSBpbmRleEZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLm9wZW5LZXlD
dXJzb3IoKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIKK1BBU1MgZW5hbWUgaXMgJ1Ry
YW5zYWN0aW9uSW5hY3RpdmVFcnJvcicKK1RoZSB2YWx1ZSBmb3IgdGhlIGRpcmVjdGlvbiBwYXJh
bWV0ZXIgaXMgaW52YWxpZC4KK0V4cGVjdGluZyBUeXBlRXJyb3IgZXhjZXB0aW9uIGZyb20gaW5k
ZXgub3BlbktleUN1cnNvcigwLCAnaW52YWxpZC1kaXJlY3Rpb24nKQorUEFTUyBFeGNlcHRpb24g
d2FzIHRocm93bi4KK1BBU1MgaW5kZXgub3BlbktleUN1cnNvcigwLCAnaW52YWxpZC1kaXJlY3Rp
b24nKSB0aHJldyBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKKworMy4yLjcgQ3Vyc29yCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnc3RvcmUnLCAnaW5saW5lS2V5U3RvcmUnXSwgJ3JlYWR3
cml0ZScpCityZXF1ZXN0ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykub3BlbkN1
cnNvcigpCitjdXJzb3IgPSByZXF1ZXN0LnJlc3VsdAorcmVxdWVzdCA9IHRyYW5zYWN0aW9uLm9i
amVjdFN0b3JlKCdzdG9yZScpLmluZGV4KCdpbmRleCcpLm9wZW5LZXlDdXJzb3IoKQora2V5Q3Vy
c29yID0gcmVxdWVzdC5yZXN1bHQKK3JlcXVlc3QgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmUnKS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmxvd2VyQm91bmQoLUluZmluaXR5KSwgJ3By
ZXYnKQorcmV2ZXJzZUN1cnNvciA9IHJlcXVlc3QucmVzdWx0CityZXF1ZXN0ID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ2lubGluZUtleVN0b3JlJykub3BlbkN1cnNvcigpCitpbmxpbmVDdXJz
b3IgPSByZXF1ZXN0LnJlc3VsdAorCitJREJDdXJzb3IuYWR2YW5jZSgpCitDYWxsaW5nIHRoaXMg
bWV0aG9kIG1vcmUgdGhhbiBvbmNlIGJlZm9yZSBuZXcgY3Vyc29yIGRhdGEgaGFzIGJlZW4gbG9h
ZGVkIGlzIG5vdCBhbGxvd2VkIGFuZCByZXN1bHRzIGluIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
SW52YWxpZFN0YXRlRXJyb3IgYmVpbmcgdGhyb3duLgorSWYgdGhlIHZhbHVlIGZvciBjb3VudCBp
cyAwICh6ZXJvKSBvciBhIG5lZ2F0aXZlIG51bWJlciwgdGhpcyBtZXRob2QgbXVzdCB0aHJvdyBh
IEphdmFTY3JpcHQgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK0V4cGVjdGluZyBUeXBlRXJyb3IgZXhj
ZXB0aW9uIGZyb20gY3Vyc29yLmFkdmFuY2UoMCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
CitQQVNTIGN1cnNvci5hZHZhbmNlKDApIHRocmV3IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorY3Vy
c29yLmFkdmFuY2UoMSkKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBjdXJzb3IuYWR2YW5jZSgx
KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJworVGhl
IHRyYW5zYWN0aW9uIHRoaXMgSURCQ3Vyc29yIGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBjdXJzb3JGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5hZHZh
bmNlKDEpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFi
YXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUgorUEFTUyBlbmFtZSBpcyAnVHJh
bnNhY3Rpb25JbmFjdGl2ZUVycm9yJworCitJREJDdXJzb3IuY29udGludWUoKQorVGhlIHBhcmFt
ZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gY3Vyc29y
LmNvbnRpbnVlKHt9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAnRGF0YUVycm9yJwor
VGhlIHBhcmFtZXRlciBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBwb3Np
dGlvbiBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgIm5leHQiIG9yICJuZXh0dW5pcXVl
Ii4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBjdXJzb3IuY29udGludWUoLUluZmluaXR5KQor
UEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5EQVRBX0VSUgorUEFTUyBlbmFtZSBpcyAnRGF0YUVycm9yJworVGhlIHBhcmFtZXRlciBp
cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBwb3NpdGlvbiBhbmQgdGhp
cyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgInByZXYiIG9yICJwcmV2dW5pcXVlIi4KK0V4cGVjdGlu
ZyBleGNlcHRpb24gZnJvbSByZXZlcnNlQ3Vyc29yLmNvbnRpbnVlKDEwMCkKK1BBU1MgRXhjZXB0
aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9F
UlIKK1BBU1MgZW5hbWUgaXMgJ0RhdGFFcnJvcicKK0NhbGxpbmcgdGhpcyBtZXRob2QgbW9yZSB0
aGFuIG9uY2UgYmVmb3JlIG5ldyBjdXJzb3IgZGF0YSBoYXMgYmVlbiBsb2FkZWQgaXMgbm90IGFs
bG93ZWQgYW5kIHJlc3VsdHMgaW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVF
cnJvciBiZWluZyB0aHJvd24uCitjdXJzb3IuY29udGludWUoKQorRXhwZWN0aW5nIGV4Y2VwdGlv
biBmcm9tIGN1cnNvci5jb250aW51ZSgpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFT
UyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgorUEFTUyBlbmFtZSBpcyAn
SW52YWxpZFN0YXRlRXJyb3InCitUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJDdXJzb3IgYmVsb25n
cyB0byBpcyBub3QgYWN0aXZlLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1cnNvckZyb21J
bmFjdGl2ZVRyYW5zYWN0aW9uLmNvbnRpbnVlKCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
CitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVf
RVJSCitQQVNTIGVuYW1lIGlzICdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InCisKK0lEQkN1cnNv
ci5kZWxldGUoKQorSWYgdGhpcyBjdXJzb3IncyBnb3QgdmFsdWUgZmxhZyBpcyBmYWxzZSwgb3Ig
aWYgdGhpcyBjdXJzb3Igd2FzIGNyZWF0ZWQgdXNpbmcgb3BlbktleUN1cnNvciBhIERPTUV4Y2Vw
dGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIGlzIHRocm93bi4KK0V4cGVjdGluZyBleGNl
cHRpb24gZnJvbSBrZXlDdXJzb3IuZGVsZXRlKCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
CitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCitQQVNTIGVuYW1l
IGlzICdJbnZhbGlkU3RhdGVFcnJvcicKK1RoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkN1cnNvciBi
ZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gY3Vyc29y
RnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uZGVsZXRlKCkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJv
d24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJ
VkVfRVJSCitQQVNTIGVuYW1lIGlzICdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InCisKK0lEQkN1
cnNvci51cGRhdGUoKQorSWYgdGhpcyBjdXJzb3IncyBnb3QgdmFsdWUgZmxhZyBpcyBmYWxzZSBv
ciBpZiB0aGlzIGN1cnNvciB3YXMgY3JlYXRlZCB1c2luZyBvcGVuS2V5Q3Vyc29yLiBUaGlzIG1l
dGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBrZXlDdXJzb3IudXBkYXRlKHt9KQorUEFTUyBFeGNlcHRp
b24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9F
UlIKK1BBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJworSWYgdGhlIGVmZmVjdGl2ZSBv
YmplY3Qgc3RvcmUgb2YgdGhpcyBjdXJzb3IgdXNlcyBpbi1saW5lIGtleXMgYW5kIGV2YWx1YXRp
bmcgdGhlIGtleSBwYXRoIG9mIHRoZSB2YWx1ZSBwYXJhbWV0ZXIgcmVzdWx0cyBpbiBhIGRpZmZl
cmVudCB2YWx1ZSB0aGFuIHRoZSBjdXJzb3IncyBlZmZlY3RpdmUga2V5LCB0aGlzIG1ldGhvZCB0
aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuCitFeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gaW5saW5lQ3Vyc29yLnVwZGF0ZSh7aWQ6IDF9KQorUEFTUyBFeGNlcHRpb24gd2Fz
IHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFT
UyBlbmFtZSBpcyAnRGF0YUVycm9yJworSWYgdGhlIHN0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGht
IHRocm93cyBhbiBleGNlcHRpb24sIHRoYXQgZXhjZXB0aW9uIGlzIHJldGhyb3duLgorRXhwZWN0
aW5nIGV4Y2VwdGlvbiBmcm9tIGN1cnNvci51cGRhdGUoc2VsZikKK1BBU1MgRXhjZXB0aW9uIHdh
cyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitUaGUg
dHJhbnNhY3Rpb24gdGhpcyBJREJDdXJzb3IgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLgorRXhw
ZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1cnNvckZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLnVwZGF0
ZSh7fSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJh
c2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSCitQQVNTIGVuYW1lIGlzICdUcmFu
c2FjdGlvbkluYWN0aXZlRXJyb3InCityZWFkT25seVRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlJywgJ3JlYWRvbmx5JykKK3JlcXVlc3QgPSByZWFkT25seVRyYW5zYWN0aW9uLm9i
amVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKQorY3Vyc29yRnJvbVJlYWRPbmx5VHJhbnNh
Y3Rpb24gPSByZXF1ZXN0LnJlc3VsdAorCitPbmUgbW9yZSBJREJDdXJzb3IuZGVsZXRlKCkgdGVz
dDoKK1RoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIFJlYWRPbmx5RXJy
b3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNoIHRoaXMgSURCQ3Vyc29yIGJlbG9uZ3MgdG8gaGFz
IGl0cyBtb2RlIHNldCB0byAicmVhZG9ubHkiLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1
cnNvckZyb21SZWFkT25seVRyYW5zYWN0aW9uLmRlbGV0ZSgpCitQQVNTIEV4Y2VwdGlvbiB3YXMg
dGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIK
K1BBU1MgZW5hbWUgaXMgJ1JlYWRPbmx5RXJyb3InCisKK09uZSBtb3JlIElEQkN1cnNvci51cGRh
dGUoKSB0ZXN0OgorVGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgUmVh
ZE9ubHlFcnJvciBpZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggdGhpcyBJREJDdXJzb3IgYmVsb25n
cyB0byBoYXMgaXRzIG1vZGUgc2V0IHRvICJyZWFkb25seSIuCitFeHBlY3RpbmcgZXhjZXB0aW9u
IGZyb20gY3Vyc29yRnJvbVJlYWRPbmx5VHJhbnNhY3Rpb24udXBkYXRlKHt9KQorUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFE
X09OTFlfRVJSCitQQVNTIGVuYW1lIGlzICdSZWFkT25seUVycm9yJworCiszLjIuOCBUcmFuc2Fj
dGlvbgorCitJREJUcmFuc2FjdGlvbi5hYm9ydCgpCitJZiB0aGlzIHRyYW5zYWN0aW9uIGlzIGZp
bmlzaGVkLCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLiAK
K0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBmaW5pc2hlZFRyYW5zYWN0aW9uLmFib3J0KCkKK1BB
U1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSCitQQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJvcicKK0lmIHRoZSBy
ZXF1ZXN0ZWQgb2JqZWN0IHN0b3JlIGlzIG5vdCBpbiB0aGlzIHRyYW5zYWN0aW9uJ3Mgc2NvcGUu
CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0
U3RvcmUoJ290aGVyU3RvcmUnKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29k
ZSBpcyBET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgorUEFTUyBlbmFtZSBpcyAnTm90Rm91bmRF
cnJvcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb25zLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzdhMjE1ZDIyZmMwMjUwNTlhZGI0YzRiNTVjYjZhNmQ5MTNhMTQ5OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbnMuaHRtbApA
QCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9leGNlcHRpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2V4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
ZXhjZXB0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDI1Mzg0MjgyZDU1Mjc2NTBlNGI5N2NkNmU5MTcx
Y2IxNzVmMWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2V4Y2VwdGlvbnMuanMKQEAgLTAsMCArMSw0NjUgQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOwor
fQorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBleHBlY3RlZCBleGNlcHRpb25zIGFyZSB0aHJvd24g
cGVyIEluZGV4ZWREQiBzcGVjLiIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoJ2V4Y2VwdGlvbnMnKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ2V4Y2VwdGlvbnMnKSIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlcXVlc3QucmVhZHlTdGF0ZSIsICJw
ZW5kaW5nIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiMy4yLjEgVGhl
IElEQlJlcXVlc3QgSW50ZXJmYWNlIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBk
ZWJ1ZygiSURCUmVxdWVzdC5lcnJvciIpOworICAgICAgICBkZWJ1ZygiV2hlbiB0aGUgZG9uZSBm
bGFnIGlzIGZhbHNlLCBnZXR0aW5nIHRoaXMgcHJvcGVydHkgbXVzdCB0aHJvdyBhIERPTUV4Y2Vw
dGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJyZXF1ZXN0LmVycm9yIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICBkZWJ1ZygiSURCUmVxdWVzdC5yZXN1bHQiKTsKKyAgICAgICAgZGVidWcoIldoZW4gdGhlIGRv
bmUgZmxhZyBpcyBmYWxzZSwgZ2V0dGluZyB0aGlzIHByb3BlcnR5IG11c3QgdGhyb3cgYSBET01F
eGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4iKTsKKyAgICAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigicmVxdWVzdC5yZXN1bHQiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKworICAgICAgICBkZWJ1ZygiIik7Cisg
ICAgICAgIGRlYnVnKCIzLjIuMyBPcGVuaW5nIGEgZGF0YWJhc2UiKTsKKworICAgICAgICBkZWJ1
ZygiIik7CisgICAgICAgIGRlYnVnKCJJREJGYWN0b3J5LmNtcCgpIik7CisgICAgICAgIGRlYnVn
KCJPbmUgb2YgdGhlIHN1cHBsaWVkIGtleXMgd2FzIG5vdCBhIHZhbGlkIGtleS4iKTsKKyAgICAg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiaW5kZXhlZERCLmNtcChudWxsLCAwKSIsICJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworCisgICAgICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOworCisgICAgICAgICAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgICAgICAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgIHJl
cXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgICAgICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIHRy
YW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworCisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgICAgICAgICAgICAgIGV2
YWxBbmRMb2coImluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ2lkJykiKTsKKyAg
ICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoe2lkOiAnYSd9LCAxKSIpOworICAg
ICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCh7aWQ6ICdiJ30sIDIpIik7CisgICAg
ICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUucHV0KHtpZDogJ2MnfSwgMykiKTsKKyAgICAg
ICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoe2lkOiAnZCd9LCA0KSIpOworICAgICAg
ICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCh7aWQ6ICdlJ30sIDUpIik7CisgICAgICAg
ICAgICAgICAgZXZhbEFuZExvZygic3RvcmUucHV0KHtpZDogJ2YnfSwgNikiKTsKKyAgICAgICAg
ICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoe2lkOiAnZyd9LCA3KSIpOworICAgICAgICAg
ICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCh7aWQ6ICdoJ30sIDgpIik7CisgICAgICAgICAg
ICAgICAgZXZhbEFuZExvZygic3RvcmUucHV0KHtpZDogJ2knfSwgOSkiKTsKKyAgICAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoe2lkOiAnaid9LCAxMCkiKTsKKyAgICAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJvdGhlclN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ290aGVy
U3RvcmUnKSIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coImlubGluZUtleVN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2lubGluZUtleVN0b3JlJywge2tleVBhdGg6ICdpZCd9KSIp
OworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coImlubGluZUtleVN0b3JlLnB1dCh7aWQ6IDB9
KSIpOworCisgICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3REYXRhYmFzZTsK
KyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gdGVzdERh
dGFiYXNlKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIjMuMi40IERhdGFiYXNlIik7
CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMicpIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0Owor
ICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisKKyAgICAg
ICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSIpOworICAgICAgICBkZWJ1ZygiSWYgYW4gb2JqZWN0U3RvcmUgd2l0aCB0aGUgc2FtZSBu
YW1lIGFscmVhZHkgZXhpc3RzLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4
Y2VwdGlvbiBvZiB0eXBlIENvbnN0cmFpbnRFcnJvci4iKTsKKyAgICAgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiLCAiSURCRGF0YWJhc2VF
eGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiJ0NvbnN0cmFpbnRFcnJvciciKTsKKyAgICAgICAg
ZGVidWcoIklmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBhdGggdGhlbiBhIERPTUV4Y2Vw
dGlvbiBvZiB0eXBlIFN5bnRheEVycm9yIG11c3QgYmUgdGhyb3duLiIpOworICAgICAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZmFpbCcsIHtrZXlQYXRo
OiAnLWludmFsaWQtJ30pIiwgIkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIiwgIidTeW50YXhFcnJv
ciciKTsKKyAgICAgICAgZGVidWcoIklmIHRoZSBvcHRpb25hbFBhcmFtZXRlcnMgcGFyYW1ldGVy
IGlzIHNwZWNpZmllZCwgYW5kIGF1dG9JbmNyZW1lbnQgaXMgc2V0IHRvIHRydWUsIGFuZCB0aGUg
a2V5UGF0aCBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIHRvIHRoZSBlbXB0eSBzdHJpbmcsIG9yIHNw
ZWNpZmllZCB0byBhbiBBcnJheSwgdGhpcyBmdW5jdGlvbiBtdXN0IHRocm93IGEgSW52YWxpZEFj
Y2Vzc0Vycm9yIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZhaWwnLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0
aDogJyd9KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIiwgIidJbnZhbGlkQWNj
ZXNzRXJyb3InIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdmYWlsJywge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6IFsnYSddfSki
LCAiRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiIsICInSW52YWxpZEFjY2Vzc0Vycm9y
JyIpOworCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIklEQkRhdGFiYXNlLmRl
bGV0ZU9iamVjdFN0b3JlKCkiKTsKKyAgICAgICAgZGVidWcoIlRoZXJlIGlzIG5vIG9iamVjdCBz
dG9yZSB3aXRoIHRoZSBnaXZlbiBuYW1lLCBjb21wYXJlZCBpbiBhIGNhc2Utc2Vuc2l0aXZlIG1h
bm5lciwgaW4gdGhlIGNvbm5lY3RlZCBkYXRhYmFzZS4iKTsKKyAgICAgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ25vLXN1Y2gtc3RvcmUnKSIsICJET01F
eGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIsICInTm90Rm91bmRFcnJvciciKTsKKworICAgICAgICBk
ZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJJREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIik7Cisg
ICAgICAgIGRlYnVnKCdJZiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gSURCRGF0YWJhc2Ugb2Jq
ZWN0IGZvciB3aGljaCBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiBpcyBzdGlsbCBydW5u
aW5nLCBhIEludmFsaWRTdGF0ZUVycm9yIGV4Y2VwdGlvbiBtdXN0IGJlIHRocm93bi4nKTsKKyAg
ICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
KworICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBk
ZWJ1ZygiT25lIG9mIHRoZSBuYW1lcyBwcm92aWRlZCBpbiB0aGUgc3RvcmVOYW1lcyBhcmd1bWVu
dCBkb2Vzbid0IGV4aXN0IGluIHRoaXMgZGF0YWJhc2UuIik7CisgICAgICAgICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkYi50cmFuc2FjdGlvbignbm8tc3VjaC1zdG9yZScpIiwgIkRPTUV4
Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIidOb3RGb3VuZEVycm9yJyIpOworICAgICAgICAgICAg
ZGVidWcoIlRoZSB2YWx1ZSBmb3IgdGhlIG1vZGUgcGFyYW1ldGVyIGlzIGludmFsaWQuIik7Cisg
ICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uQ2xhc3MoImRiLnRyYW5zYWN0aW9uKCdz
dG9yZScsICdpbnZhbGlkLW1vZGUnKSIsICJUeXBlRXJyb3IiKTsKKyAgICAgICAgICAgIGRlYnVn
KCJUaGUgZnVuY3Rpb24gd2FzIGNhbGxlZCB3aXRoIGFuIGVtcHR5IGxpc3Qgb2Ygc3RvcmUgbmFt
ZXMiKTsKKyAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9u
KFtdKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIiwgIidJbnZhbGlkQWNjZXNz
RXJyb3InIik7CisKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgIGRlYnVnKCJP
bmUgbW9yZSBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIHRlc3Q6Iik7CisgICAgICAg
ICAgICBkZWJ1ZygnSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBvdXRzaWRlIGEgInZl
cnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIGNhbGxiYWNrIC4uLiB0aGUgaW1wbGVtZW50YXRpb24g
bXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yLicpOwor
ICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J2ZhaWwnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0
ZUVycm9yJyIpOworCisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICBkZWJ1Zygi
T25lIG1vcmUgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSB0ZXN0OiIpOworICAgICAg
ICAgICAgZGVidWcoJ0lmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gb3V0c2lkZSBhICJ2
ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiBjYWxsYmFjayAuLi4gdGhlIGltcGxlbWVudGF0aW9u
IG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvci4nKTsK
KyAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLmRlbGV0ZU9iamVjdFN0b3Jl
KCdmYWlsJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKworICAgICAgICAgICAgcHJlcGFyZVN0b3JlQW5kSW5kZXgoKTsKKyAgICAg
ICAgfTsKKyAgICB9OworfQorCitmdW5jdGlvbiBwcmVwYXJlU3RvcmVBbmRJbmRleCgpCit7Cisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJQcmVwYXJlIGFuIG9iamVjdCBzdG9yZSBhbmQgaW5k
ZXggZnJvbSBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiBmb3IgbGF0ZXIgdXNlLiIpOworICAgIGV2
YWxBbmRMb2coImZpbmlzaGVkVHJhbnNhY3Rpb24gPSBpbmFjdGl2ZVRyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlJykiKTsKKyAgICBpbmFjdGl2ZVRyYW5zYWN0aW9uLm9uYWJvcnQg
PSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJzdG9yZUZyb21JbmFj
dGl2ZVRyYW5zYWN0aW9uID0gaW5hY3RpdmVUcmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUn
KSIpOworICAgIGV2YWxBbmRMb2coImluZGV4RnJvbUluYWN0aXZlVHJhbnNhY3Rpb24gPSBzdG9y
ZUZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmluZGV4KCdpbmRleCcpIik7CisgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IHN0b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24ub3BlbkN1cnNvcigpIik7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZXZhbEFuZExvZygiY3Vyc29y
RnJvbUluYWN0aXZlVHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOworICAgIH07CisgICAg
aW5hY3RpdmVUcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdGVzdE9iamVjdFN0b3JlOworfQorCitm
dW5jdGlvbiB0ZXN0T2JqZWN0U3RvcmUoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
My4yLjUgT2JqZWN0IFN0b3JlIik7CisgICAgZXZhbEFuZExvZygic3RvcmVGcm9tUmVhZE9ubHlU
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScsICdyZWFkb25seScpLm9iamVjdFN0
b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi50cmFuc2FjdGlvbign
c3RvcmUnLCAncmVhZHdyaXRlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiSURCT2JqZWN0U3RvcmUuYWRkKCkiKTsKKyAgICBkZWJ1Zygic3Rv
cmVGcm9tUmVhZE9ubHlUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScsICdyZWFk
b25seScpLm9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZGVidWcoInN0b3JlID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3cml0ZScpLm9iamVjdFN0b3JlKCdzdG9yZScpIik7Cisg
ICAgZGVidWcoJ1RoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIFJlYWRP
bmx5RXJyb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNoIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVs
b25ncyB0byBpcyBoYXMgaXRzIG1vZGUgc2V0IHRvICJyZWFkb25seSIuJyk7CisgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigic3RvcmVGcm9tUmVhZE9ubHlUcmFuc2FjdGlvbi5hZGQoMCwgMCki
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIsICInUmVhZE9ubHlFcnJvcici
KTsKKyAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdHJ1ZSwg
dGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yOiIgLSBj
b3ZlcmVkIGluIG9iamVjdHN0b3JlLWJhc2ljcy5odG1sCisgICAgZGVidWcoIlRoZSB0cmFuc2Fj
dGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmFk
ZCgwLCAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIi
LCAiJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKyAgICAvLyAiT2NjdXJzIGlmIGEgcmVx
dWVzdCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3Ig
cmVtb3ZlZC4iIC0gY292ZXJlZCBpbiBkZWxldGVkLW9iamVjdHMuaHRtbAorICAgIGRlYnVnKCJU
aGUgZGF0YSBiZWluZyBzdG9yZWQgY291bGQgbm90IGJlIGNsb25lZCBieSB0aGUgaW50ZXJuYWwg
c3RydWN0dXJlZCBjbG9uaW5nIGFsZ29yaXRobS4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJzdG9yZS5hZGQoc2VsZiwgMCkiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7
IC8vIEZJWE1FOiBUZXN0ICdEYXRhQ2xvbmVFcnJvcicgbmFtZSB3aGVuIERPTTQgZXhjZXB0aW9u
cyBhcmUgdXNlZCBpbiBiaW5kaW5nLgorCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJREJP
YmplY3RTdG9yZS5jbGVhcigpIik7CisgICAgZGVidWcoJ1RoaXMgbWV0aG9kIHRocm93cyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIFJlYWRPbmx5RXJyb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNo
IHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBoYXMgaXRzIG1vZGUgc2V0IHRvICJy
ZWFkb25seSIuJyk7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmVGcm9tUmVhZE9u
bHlUcmFuc2FjdGlvbi5jbGVhcigpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9F
UlIiLCAiJ1JlYWRPbmx5RXJyb3InIik7CisgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlz
IElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmNsZWFyKCkiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2Fj
dGlvbkluYWN0aXZlRXJyb3InIik7CisgICAgLy8gIk9jY3VycyBpZiBhIHJlcXVlc3QgaXMgbWFk
ZSBvbiBhIHNvdXJjZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVkIG9yIHJlbW92ZWQuIiAt
IGNvdmVyZWQgaW4gZGVsZXRlZC1vYmplY3RzLmh0bWwKKworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiSURCT2JqZWN0U3RvcmUuY291bnQoKSIpOworICAgIGRlYnVnKCJJZiB0aGUgb3B0aW9u
YWwga2V5IHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkgb3IgYSBrZXkgcmFuZ2UsIHRoaXMg
bWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvci4iKTsKKyAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5jb3VudCh7fSkiLCAiSURCRGF0YWJhc2VFeGNl
cHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0
aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLiIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uY291
bnQoKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAi
J1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciciKTsKKyAgICAvLyAiT2NjdXJzIGlmIGEgcmVxdWVz
dCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVt
b3ZlZC4iIC0gY292ZXJlZCBpbiBkZWxldGVkLW9iamVjdHMuaHRtbAorCisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJJREJPYmplY3RTdG9yZS5kZWxldGUoKSIpOworICAgIGRlYnVnKCdUaGlz
IG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBSZWFkT25seUVycm9yIGlmIHRo
ZSB0cmFuc2FjdGlvbiB3aGljaCB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaXMgaGFz
IGl0cyBtb2RlIHNldCB0byAicmVhZG9ubHkiLicpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oInN0b3JlRnJvbVJlYWRPbmx5VHJhbnNhY3Rpb24uZGVsZXRlKDApIiwgIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlJFQURfT05MWV9FUlIiLCAiJ1JlYWRPbmx5RXJyb3InIik7CisgICAgZGVidWco
IklmIHRoZSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSB0
aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuIik7Cisg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuZGVsZXRlKHt9KSIsICJJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworICAgIGRlYnVnKCJUaGUgdHJh
bnNhY3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7
CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlv
bi5hZGQoMCwgMCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVf
RVJSIiwgIidUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InIik7CisgICAgLy8gIk9jY3VycyBpZiBh
IHJlcXVlc3QgaXMgbWFkZSBvbiBhIHNvdXJjZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVk
IG9yIHJlbW92ZWQuIiAtIGNvdmVyZWQgaW4gZGVsZXRlZC1vYmplY3RzLmh0bWwKKworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiSURCT2JqZWN0U3RvcmUuZ2V0KCkiKTsKKyAgICBkZWJ1Zygi
SWYgdGhlIGtleSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5IG9yIGEga2V5IHJhbmdlLCB0
aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuIik7Cisg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuZ2V0KHt9KSIsICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworICAgIGRlYnVnKCJUaGUgdHJhbnNh
Y3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7Cisg
ICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5n
ZXQoMCkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwg
IidUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InIik7CisgICAgLy8gIk9jY3VycyBpZiBhIHJlcXVl
c3QgaXMgbWFkZSBvbiBhIHNvdXJjZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVkIG9yIHJl
bW92ZWQuIiAtIGNvdmVyZWQgaW4gZGVsZXRlZC1vYmplY3RzLmh0bWwKKworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiSURCT2JqZWN0U3RvcmUuaW5kZXgoKSIpOworICAgIGRlYnVnKCJUaGVy
ZSBpcyBubyBpbmRleCB3aXRoIHRoZSBnaXZlbiBuYW1lLCBjb21wYXJlZCBpbiBhIGNhc2Utc2Vu
c2l0aXZlIG1hbm5lciwgaW4gdGhlIGNvbm5lY3RlZCBkYXRhYmFzZS4iKTsKKyAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5pbmRleCgnbm8tc3VjaC1pbmRleCcpIiwgIkRPTUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSIiwgIidOb3RGb3VuZEVycm9yJyIpOworICAgIGRlYnVnKCJPY2N1
cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQgaGFzIGJlZW4g
ZGVsZXRlZCBvciByZW1vdmVkLCBvciBpZiB0aGUgdHJhbnNhY3Rpb24gdGhlIG9iamVjdCBzdG9y
ZSBiZWxvbmdzIHRvIGhhcyBmaW5pc2hlZC4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJzdG9yZUZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmluZGV4KCdpbmRleCcpIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgLy8g
Ik9jY3VycyBpZiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIHNvdXJjZSBvYmplY3QgdGhhdCBoYXMg
YmVlbiBkZWxldGVkIG9yIHJlbW92ZWQuIiAtIGNvdmVyZWQgaW4gZGVsZXRlZC1vYmplY3RzLmh0
bWwKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSURCT2JqZWN0U3RvcmUub3BlbkN1cnNv
cigpIik7CisgICAgZGVidWcoIklmIHRoZSByYW5nZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGJ1
dCBpcyBub3QgYSB2YWxpZCBrZXkgb3IgYSBrZXkgcmFuZ2UsIHRoaXMgbWV0aG9kIHRocm93cyBh
IERPTUV4Y2VwdGlvbiBvZiB0eXBlIERhdGFFcnJvci4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKHt9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRB
X0VSUiIsICInRGF0YUVycm9yJyIpOworICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJ
REJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigic3RvcmVGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5vcGVuQ3Vyc29yKCki
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFu
c2FjdGlvbkluYWN0aXZlRXJyb3InIik7CisgICAgZGVidWcoIlRoZSB2YWx1ZSBmb3IgdGhlIGRp
cmVjdGlvbiBwYXJhbWV0ZXIgaXMgaW52YWxpZC4iKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uQ2xhc3MoInN0b3JlLm9wZW5DdXJzb3IoMCwgJ2ludmFsaWQtZGlyZWN0aW9uJykiLCAiVHlw
ZUVycm9yIik7CisgICAgLy8gIk9jY3VycyBpZiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIHNvdXJj
ZSBvYmplY3QgdGhhdCBoYXMgYmVlbiBkZWxldGVkIG9yIHJlbW92ZWQuIiAtIGNvdmVyZWQgaW4g
ZGVsZXRlZC1vYmplY3RzLmh0bWwKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSURCT2Jq
ZWN0U3RvcmUucHV0KCkiKTsKKyAgICBkZWJ1ZygnVGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgUmVhZE9ubHlFcnJvciBpZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2ggdGhp
cyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGlzIGhhcyBpdHMgbW9kZSBzZXQgdG8gInJlYWRv
bmx5Ii4nKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZUZyb21SZWFkT25seVRy
YW5zYWN0aW9uLnB1dCgwLCAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJS
IiwgIidSZWFkT25seUVycm9yJyIpOworICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZSB0cnVlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2Yg
dHlwZSBEYXRhRXJyb3I6IiAtIGNvdmVyZWQgaW4gb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKKyAg
ICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBp
cyBub3QgYWN0aXZlLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlRnJvbUlu
YWN0aXZlVHJhbnNhY3Rpb24ucHV0KDAsIDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5T
QUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworICAg
IC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQg
aGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2JqZWN0
cy5odG1sCisgICAgZGVidWcoIlRoZSBkYXRhIGJlaW5nIHN0b3JlZCBjb3VsZCBub3QgYmUgY2xv
bmVkIGJ5IHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVkIGNsb25pbmcgYWxnb3JpdGhtLiIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChzZWxmLCAwKSIsICJET01FeGNlcHRp
b24uREFUQV9DTE9ORV9FUlIiKTsgLy8gRklYTUU6IFRlc3QgJ0RhdGFDbG9uZUVycm9yJyBuYW1l
IHdoZW4gRE9NNCBleGNlcHRpb25zIGFyZSB1c2VkIGluIGJpbmRpbmcuCisKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMycpIik7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICB0cmFucy5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgIHN0b3JlID0gdHJhbnMu
b2JqZWN0U3RvcmUoJ3N0b3JlJyk7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSIpOworICAgICAgICBkZWJ1ZygiSWYgYW4g
aW5kZXggd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLCB0aGUgaW1wbGVtZW50YXRp
b24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIENvbnN0cmFpbnRFcnJvci4gIik7
CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRl
eCcsICdrZXlQYXRoJykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAi
J0NvbnN0cmFpbnRFcnJvciciKTsKKyAgICAgICAgZGVidWcoIklmIGtleVBhdGggaXMgbm90IGEg
dmFsaWQga2V5IHBhdGggdGhlbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIFN5bnRheEVycm9yIG11
c3QgYmUgdGhyb3duLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5j
cmVhdGVJbmRleCgnZmFpbCcsICctaW52YWxpZC0nKSIsICJET01FeGNlcHRpb24uU1lOVEFYX0VS
UiIsICInU3ludGF4RXJyb3InIik7CisgICAgICAgIGRlYnVnKCJJZiBrZXlQYXRoIGlzIGFuIEFy
cmF5IGFuZCB0aGUgbXVsdGlFbnRyeSBwcm9wZXJ0eSBpbiB0aGUgb3B0aW9uYWxQYXJhbWV0ZXJz
IGlzIHRydWUsIHRoZW4gYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkQWNjZXNzRXJyb3Ig
bXVzdCBiZSB0aHJvd24uIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3Jl
LmNyZWF0ZUluZGV4KCdmYWlsJywgWydhJ10sIHttdWx0aUVudHJ5OiB0cnVlfSkiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiIsICInSW52YWxpZEFjY2Vzc0Vycm9yJyIpOworICAg
ICAgICAvLyAiT2NjdXJzIGlmIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0
aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVtb3ZlZC4iIC0gY292ZXJlZCBpbiBkZWxldGVkLW9i
amVjdHMuaHRtbAorCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIklEQk9iamVj
dFN0b3JlLmRlbGV0ZUluZGV4KCkiKTsKKyAgICAgICAgZGVidWcoIlRoZXJlIGlzIG5vIGluZGV4
IHdpdGggdGhlIGdpdmVuIG5hbWUsIGNvbXBhcmVkIGluIGEgY2FzZS1zZW5zaXRpdmUgbWFubmVy
LCBpbiB0aGUgY29ubmVjdGVkIGRhdGFiYXNlLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJzdG9yZS5kZWxldGVJbmRleCgnbm8tc3VjaC1pbmRleCcpIiwgIkRPTUV4Y2VwdGlv
bi5OT1RfRk9VTkRfRVJSIiwgIidOb3RGb3VuZEVycm9yJyIpOworICAgICAgICAvLyAiT2NjdXJz
IGlmIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRl
bGV0ZWQgb3IgcmVtb3ZlZC4iIC0gY292ZXJlZCBpbiBkZWxldGVkLW9iamVjdHMuaHRtbAorCisg
ICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgICAgIGRlYnVnKCJPbmUgbW9yZSBJREJPYmplY3RTdG9yZS5jcmVhdGVJ
bmRleCgpIHRlc3Q6Iik7CisgICAgICAgICAgICBkZWJ1ZygnSWYgdGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgZnJvbSBvdXRzaWRlIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIGNhbGxiYWNr
IC4uLiB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBl
IEludmFsaWRTdGF0ZUVycm9yLicpOworICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuY3JlYXRlSW5k
ZXgoJ2ZhaWwnLCAna2V5UGF0aCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIs
ICInSW52YWxpZFN0YXRlRXJyb3InIik7CisKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAg
ICAgICAgIGRlYnVnKCJPbmUgbW9yZSBJREJPYmplY3RTdG9yZS5kZWxldGVJbmRleCgpIHRlc3Q6
Iik7CisgICAgICAgICAgICBkZWJ1ZygnSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBv
dXRzaWRlIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIGNhbGxiYWNrIC4uLiB0aGUgaW1w
bGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0
ZUVycm9yLicpOworICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNh
Y3Rpb24oJ3N0b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuZGVsZXRlSW5kZXgoJ2ZhaWwnLCAn
a2V5UGF0aCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7CisgICAgICAgICAgICB0ZXN0SW5kZXgoKTsKKyAgICAgICAgfTsKKyAgICB9
OworfQorCitmdW5jdGlvbiB0ZXN0SW5kZXgoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiMy4yLjYgSW5kZXgiKTsKKyAgICBldmFsQW5kTG9nKCJpbmRleEZyb21SZWFkT25seVRyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWRvbmx5Jykub2JqZWN0U3RvcmUo
J3N0b3JlJykuaW5kZXgoJ2luZGV4JykiKTsKKyAgICBldmFsQW5kTG9nKCJpbmRleCA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZScsICdyZWFkd3JpdGUnKS5vYmplY3RTdG9yZSgnc3RvcmUnKS5pbmRl
eCgnaW5kZXgnKSIpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJREJJbmRleC5jb3Vu
dCgpIik7CisgICAgZGVidWcoIklmIHRoZSBvcHRpb25hbCBrZXkgcGFyYW1ldGVyIGlzIG5vdCBh
IHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0
aW9uIG9mIHR5cGUgRGF0YUVycm9yLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImlu
ZGV4LmNvdW50KHt9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVy
cm9yJyIpOworICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJJbmRleCBiZWxvbmdz
IHRvIGlzIG5vdCBhY3RpdmUuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiaW5kZXhG
cm9tSW5hY3RpdmVUcmFuc2FjdGlvbi5jb3VudCgpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRS
QU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOwor
ICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRo
YXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2Jq
ZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklEQkluZGV4LmdldCgpIik7
CisgICAgZGVidWcoIklmIHRoZSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSBvciBh
IGtleSByYW5nZSwgdGhpcyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0
YUVycm9yLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4LmdldCh7fSkiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICBkZWJ1
ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCSW5kZXggYmVsb25ncyB0byBpcyBub3QgYWN0aXZl
LiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4RnJvbUluYWN0aXZlVHJhbnNh
Y3Rpb24uZ2V0KDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZF
X0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworICAgIC8vICJPY2N1cnMgaWYg
YSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQgaGFzIGJlZW4gZGVsZXRl
ZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2JqZWN0cy5odG1sCisKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoIklEQkluZGV4LmdldEtleSgpIik7CisgICAgZGVidWcoIklm
IHRoZSBrZXkgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSBvciBhIGtleSByYW5nZSwgdGhp
cyBtZXRob2QgdGhyb3dzIGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgRGF0YUVycm9yLiIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4LmdldEtleSh7fSkiLCAiSURCRGF0YWJhc2VF
eGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICBkZWJ1ZygiVGhlIHRyYW5z
YWN0aW9uIHRoaXMgSURCSW5kZXggYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLiIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4RnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uZ2V0S2V5
KDApIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICIn
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworICAgIC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0
IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBvciByZW1v
dmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2JqZWN0cy5odG1sCisKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoIklEQkluZGV4Lm9wZW5DdXJzb3IoKSIpOworICAgIGRlYnVnKCJJZiB0aGUg
cmFuZ2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBidXQgaXMgbm90IGEgdmFsaWQga2V5IG9yIGEg
a2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRh
RXJyb3IuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiaW5kZXgub3BlbkN1cnNvcih7
fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAg
ICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCSW5kZXggYmVsb25ncyB0byBpcyBub3Qg
YWN0aXZlLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4RnJvbUluYWN0aXZl
VHJhbnNhY3Rpb24ub3BlbkN1cnNvcigpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNU
SU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworICAgIGRl
YnVnKCJUaGUgdmFsdWUgZm9yIHRoZSBkaXJlY3Rpb24gcGFyYW1ldGVyIGlzIGludmFsaWQuIik7
CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbkNsYXNzKCJpbmRleC5vcGVuQ3Vyc29yKDAsICdp
bnZhbGlkLWRpcmVjdGlvbicpIiwgIlR5cGVFcnJvciIpOworICAgIC8vICJPY2N1cnMgaWYgYSBy
ZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQgaGFzIGJlZW4gZGVsZXRlZCBv
ciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2JqZWN0cy5odG1sCisKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoIklEQkluZGV4Lm9wZW5LZXlDdXJzb3IoKSIpOworICAgIGRlYnVn
KCJJZiB0aGUgcmFuZ2UgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBidXQgaXMgbm90IGEgdmFsaWQg
a2V5IG9yIGEga2V5IHJhbmdlLCB0aGlzIG1ldGhvZCB0aHJvd3MgYSBET01FeGNlcHRpb24gb2Yg
dHlwZSBEYXRhRXJyb3IuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiaW5kZXgub3Bl
bktleUN1cnNvcih7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFF
cnJvciciKTsKKyAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCSW5kZXggYmVsb25n
cyB0byBpcyBub3QgYWN0aXZlLiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImluZGV4
RnJvbUluYWN0aXZlVHJhbnNhY3Rpb24ub3BlbktleUN1cnNvcigpIiwgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yJyIpOworICAgIGRlYnVnKCJUaGUgdmFsdWUgZm9yIHRoZSBkaXJlY3Rpb24gcGFyYW1ldGVy
IGlzIGludmFsaWQuIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbkNsYXNzKCJpbmRleC5v
cGVuS2V5Q3Vyc29yKDAsICdpbnZhbGlkLWRpcmVjdGlvbicpIiwgIlR5cGVFcnJvciIpOworICAg
IC8vICJPY2N1cnMgaWYgYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBzb3VyY2Ugb2JqZWN0IHRoYXQg
aGFzIGJlZW4gZGVsZXRlZCBvciByZW1vdmVkLiIgLSBjb3ZlcmVkIGluIGRlbGV0ZWQtb2JqZWN0
cy5odG1sCisKKyAgICB0ZXN0Q3Vyc29yKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDdXJzb3IoKQor
eworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiMy4yLjcgQ3Vyc29yIik7CisgICAgZXZhbEFu
ZExvZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlJywgJ2lubGluZUtleVN0
b3JlJ10sICdyZWFkd3JpdGUnKSIpOworCisgICAgbWFrZUN1cnNvcigpOworCisgICAgZnVuY3Rp
b24gbWFrZUN1cnNvcigpIHsKKyAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKSIpOworICAgICAgICBwcmltYXJ5
Q3Vyc29yUmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yID0gcmVxdWVzdC5yZXN1bHQiKTsK
KyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gbnVsbDsKKyAgICAgICAgICAgIG1ha2VL
ZXlDdXJzb3IoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtYWtlS2V5Q3Vy
c29yKCkgeworICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2luZGV4Jykub3BlbktleUN1cnNvcigpIik7CisgICAgICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZXZhbEFuZExvZygia2V5
Q3Vyc29yID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gbnVsbDsKKyAgICAgICAgICAgIG1ha2VSZXZlcnNlQ3Vyc29yKCk7CisgICAgICAgIH07Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbWFrZVJldmVyc2VDdXJzb3IoKSB7CisgICAgICAgIGV2YWxB
bmRMb2coInJlcXVlc3QgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5vcGVuQ3Vy
c29yKElEQktleVJhbmdlLmxvd2VyQm91bmQoLUluZmluaXR5KSwgJ3ByZXYnKSIpOworICAgICAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInJl
dmVyc2VDdXJzb3IgPSByZXF1ZXN0LnJlc3VsdCIpOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBudWxsOworICAgICAgICAgICAgbWFrZUlubGluZUN1cnNvcigpOworICAgICAgICB9
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG1ha2VJbmxpbmVDdXJzb3IoKSB7CisgICAgICAgIGV2
YWxBbmRMb2coInJlcXVlc3QgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnaW5saW5lS2V5U3Rv
cmUnKS5vcGVuQ3Vyc29yKCkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBldmFsQW5kTG9nKCJpbmxpbmVDdXJzb3IgPSByZXF1ZXN0LnJlc3VsdCIp
OworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBudWxsOworICAgICAgICAgICAgdGVz
dEN1cnNvckFkdmFuY2UoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q3Vyc29yQWR2YW5jZSgpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiSURC
Q3Vyc29yLmFkdmFuY2UoKSIpOworICAgICAgICBkZWJ1ZygiQ2FsbGluZyB0aGlzIG1ldGhvZCBt
b3JlIHRoYW4gb25jZSBiZWZvcmUgbmV3IGN1cnNvciBkYXRhIGhhcyBiZWVuIGxvYWRlZCBpcyBu
b3QgYWxsb3dlZCBhbmQgcmVzdWx0cyBpbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRT
dGF0ZUVycm9yIGJlaW5nIHRocm93bi4iKTsKKyAgICAgICAgZGVidWcoIklmIHRoZSB2YWx1ZSBm
b3IgY291bnQgaXMgMCAoemVybykgb3IgYSBuZWdhdGl2ZSBudW1iZXIsIHRoaXMgbWV0aG9kIG11
c3QgdGhyb3cgYSBKYXZhU2NyaXB0IFR5cGVFcnJvciBleGNlcHRpb24uIik7CisgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb25DbGFzcygiY3Vyc29yLmFkdmFuY2UoMCkiLCAiVHlwZUVycm9y
Iik7CisgICAgICAgIGV2YWxBbmRMb2coImN1cnNvci5hZHZhbmNlKDEpIik7CisgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvci5hZHZhbmNlKDEpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgICAgIGRlYnVn
KCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJREJDdXJzb3IgYmVsb25ncyB0byBpcyBub3QgYWN0aXZl
LiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3JGcm9tSW5hY3RpdmVU
cmFuc2FjdGlvbi5hZHZhbmNlKDEpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9O
X0lOQUNUSVZFX0VSUiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOworICAgICAgICBw
cmltYXJ5Q3Vyc29yUmVxdWVzdC5vbnN1Y2Nlc3MgPSB0ZXN0Q3Vyc29yQ29udGludWU7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdEN1cnNvckNvbnRpbnVlKCkgeworICAgICAgICBkZWJ1Zygi
Iik7CisgICAgICAgIGRlYnVnKCJJREJDdXJzb3IuY29udGludWUoKSIpOworICAgICAgICBkZWJ1
ZygiVGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuIik7CisgICAgICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImN1cnNvci5jb250aW51ZSh7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRp
b24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICAgICAgZGVidWcoIlRoZSBwYXJhbWV0
ZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vyc29yJ3MgcG9zaXRpb24gYW5kIHRo
aXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzIFwibmV4dFwiIG9yIFwibmV4dHVuaXF1ZVwiLiIpOwor
ICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3IuY29udGludWUoLUluZmluaXR5
KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworICAg
ICAgICBkZWJ1ZygiVGhlIHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhp
cyBjdXJzb3IncyBwb3NpdGlvbiBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgXCJwcmV2
XCIgb3IgXCJwcmV2dW5pcXVlXCIuIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
InJldmVyc2VDdXJzb3IuY29udGludWUoMTAwKSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRB
X0VSUiIsICInRGF0YUVycm9yJyIpOworICAgICAgICBkZWJ1ZygiQ2FsbGluZyB0aGlzIG1ldGhv
ZCBtb3JlIHRoYW4gb25jZSBiZWZvcmUgbmV3IGN1cnNvciBkYXRhIGhhcyBiZWVuIGxvYWRlZCBp
cyBub3QgYWxsb3dlZCBhbmQgcmVzdWx0cyBpbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFs
aWRTdGF0ZUVycm9yIGJlaW5nIHRocm93bi4iKTsKKyAgICAgICAgZXZhbEFuZExvZygiY3Vyc29y
LmNvbnRpbnVlKCkiKTsKKyAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29yLmNv
bnRpbnVlKCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKyAgICAgICAgZGVidWcoIlRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQkN1cnNv
ciBiZWxvbmdzIHRvIGlzIG5vdCBhY3RpdmUuIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImN1cnNvckZyb21JbmFjdGl2ZVRyYW5zYWN0aW9uLmNvbnRpbnVlKCkiLCAiSURCRGF0
YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFuc2FjdGlvbklu
YWN0aXZlRXJyb3InIik7CisgICAgICAgIHRlc3RDdXJzb3JEZWxldGUoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q3Vyc29yRGVsZXRlKCkgeworICAgICAgICBkZWJ1ZygiIik7CisgICAg
ICAgIGRlYnVnKCJJREJDdXJzb3IuZGVsZXRlKCkiKTsKKyAgICAgICAgZGVidWcoIklmIHRoaXMg
Y3Vyc29yJ3MgZ290IHZhbHVlIGZsYWcgaXMgZmFsc2UsIG9yIGlmIHRoaXMgY3Vyc29yIHdhcyBj
cmVhdGVkIHVzaW5nIG9wZW5LZXlDdXJzb3IgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlk
U3RhdGVFcnJvciBpcyB0aHJvd24uIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
ImtleUN1cnNvci5kZWxldGUoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgICAgICBkZWJ1ZygiVGhlIHRyYW5zYWN0aW9uIHRo
aXMgSURCQ3Vyc29yIGJlbG9uZ3MgdG8gaXMgbm90IGFjdGl2ZS4iKTsKKyAgICAgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29yRnJvbUluYWN0aXZlVHJhbnNhY3Rpb24uZGVsZXRlKCki
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIidUcmFu
c2FjdGlvbkluYWN0aXZlRXJyb3InIik7CisgICAgICAgIHByaW1hcnlDdXJzb3JSZXF1ZXN0Lm9u
c3VjY2VzcyA9IHRlc3RDdXJzb3JVcGRhdGU7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdEN1
cnNvclVwZGF0ZSgpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiSURCQ3Vy
c29yLnVwZGF0ZSgpIik7CisgICAgICAgIGRlYnVnKCJJZiB0aGlzIGN1cnNvcidzIGdvdCB2YWx1
ZSBmbGFnIGlzIGZhbHNlIG9yIGlmIHRoaXMgY3Vyc29yIHdhcyBjcmVhdGVkIHVzaW5nIG9wZW5L
ZXlDdXJzb3IuIFRoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFs
aWRTdGF0ZUVycm9yLiIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJrZXlDdXJz
b3IudXBkYXRlKHt9KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFs
aWRTdGF0ZUVycm9yJyIpOworICAgICAgICBkZWJ1ZygiSWYgdGhlIGVmZmVjdGl2ZSBvYmplY3Qg
c3RvcmUgb2YgdGhpcyBjdXJzb3IgdXNlcyBpbi1saW5lIGtleXMgYW5kIGV2YWx1YXRpbmcgdGhl
IGtleSBwYXRoIG9mIHRoZSB2YWx1ZSBwYXJhbWV0ZXIgcmVzdWx0cyBpbiBhIGRpZmZlcmVudCB2
YWx1ZSB0aGFuIHRoZSBjdXJzb3IncyBlZmZlY3RpdmUga2V5LCB0aGlzIG1ldGhvZCB0aHJvd3Mg
YSBET01FeGNlcHRpb24gb2YgdHlwZSBEYXRhRXJyb3IuIik7CisgICAgICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImlubGluZUN1cnNvci51cGRhdGUoe2lkOiAxfSkiLCAiSURCRGF0YWJhc2VF
eGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICAgICAgZGVidWcoIklmIHRo
ZSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB0aGF0IGV4
Y2VwdGlvbiBpcyByZXRocm93bi4iKTsKKyAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
Y3Vyc29yLnVwZGF0ZShzZWxmKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsgLy8g
RklYTUU6IFRlc3QgJ0RhdGFDbG9uZUVycm9yJyBuYW1lIHdoZW4gRE9NNCBleGNlcHRpb25zIGFy
ZSB1c2VkIGluIGJpbmRpbmcuCisgICAgICAgIGRlYnVnKCJUaGUgdHJhbnNhY3Rpb24gdGhpcyBJ
REJDdXJzb3IgYmVsb25ncyB0byBpcyBub3QgYWN0aXZlLiIpOworICAgICAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJjdXJzb3JGcm9tSW5hY3RpdmVUcmFuc2FjdGlvbi51cGRhdGUoe30pIiwg
IklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICInVHJhbnNh
Y3Rpb25JbmFjdGl2ZUVycm9yJyIpOworCisgICAgICAgIHByaW1hcnlDdXJzb3JSZXF1ZXN0Lm9u
c3VjY2VzcyA9IG51bGw7CisgICAgICAgIG1ha2VSZWFkT25seUN1cnNvcigpOworICAgIH0KKwor
ICAgIC8vIENhbid0IGhhdmUgYm90aCB0cmFuc2FjdGlvbnMgcnVubmluZyBhdCBvbmNlLCBzbyB0
aGVzZSB0ZXN0cyBtdXN0IGJlIHNlcGFyYXRlZCBvdXQuCisgICAgZnVuY3Rpb24gbWFrZVJlYWRP
bmx5Q3Vyc29yKCkgeworICAgICAgICBldmFsQW5kTG9nKCJyZWFkT25seVRyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWRvbmx5JykiKTsKKyAgICAgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IHJlYWRPbmx5VHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykub3Bl
bkN1cnNvcigpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgZXZhbEFuZExvZygiY3Vyc29yRnJvbVJlYWRPbmx5VHJhbnNhY3Rpb24gPSByZXF1ZXN0
LnJlc3VsdCIpOworICAgICAgICAgICAgZG9SZWFkT25seUN1cnNvclRlc3RzKCk7CisgICAgICAg
IH07CisgICAgfQorCisgICAgZnVuY3Rpb24gZG9SZWFkT25seUN1cnNvclRlc3RzKCkgeworICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICBkZWJ1ZygiT25lIG1vcmUgSURCQ3Vyc29yLmRlbGV0ZSgp
IHRlc3Q6Iik7CisgICAgICAgZGVidWcoJ1RoaXMgbWV0aG9kIHRocm93cyBhIERPTUV4Y2VwdGlv
biBvZiB0eXBlIFJlYWRPbmx5RXJyb3IgaWYgdGhlIHRyYW5zYWN0aW9uIHdoaWNoIHRoaXMgSURC
Q3Vyc29yIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byAicmVhZG9ubHkiLicpOworICAg
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvckZyb21SZWFkT25seVRyYW5zYWN0aW9u
LmRlbGV0ZSgpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiLCAiJ1JlYWRP
bmx5RXJyb3InIik7CisKKyAgICAgICBkZWJ1ZygiIik7CisgICAgICAgZGVidWcoIk9uZSBtb3Jl
IElEQkN1cnNvci51cGRhdGUoKSB0ZXN0OiIpOworICAgICAgIGRlYnVnKCdUaGlzIG1ldGhvZCB0
aHJvd3MgYSBET01FeGNlcHRpb24gb2YgdHlwZSBSZWFkT25seUVycm9yIGlmIHRoZSB0cmFuc2Fj
dGlvbiB3aGljaCB0aGlzIElEQkN1cnNvciBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8g
InJlYWRvbmx5Ii4nKTsKKyAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3JGcm9t
UmVhZE9ubHlUcmFuc2FjdGlvbi51cGRhdGUoe30pIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJF
QURfT05MWV9FUlIiLCAiJ1JlYWRPbmx5RXJyb3InIik7CisKKyAgICAgICB0ZXN0VHJhbnNhY3Rp
b24oKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RUcmFuc2FjdGlvbigpCit7CisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCIzLjIuOCBUcmFuc2FjdGlvbiIpOworCisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJJREJUcmFuc2FjdGlvbi5hYm9ydCgpIik7CisgICAgZGVidWcoIklmIHRo
aXMgdHJhbnNhY3Rpb24gaXMgZmluaXNoZWQsIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUg
SW52YWxpZFN0YXRlRXJyb3IuICIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImZpbmlz
aGVkVHJhbnNhY3Rpb24uYWJvcnQoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIi
LCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGRlYnVnKCJJZiB0aGUgcmVxdWVzdGVkIG9i
amVjdCBzdG9yZSBpcyBub3QgaW4gdGhpcyB0cmFuc2FjdGlvbidzIHNjb3BlLiIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3Jl
KCdvdGhlclN0b3JlJykiLCAiRE9NRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiLCAiJ05vdEZvdW5k
RXJyb3InIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordGVzdCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>