<?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>60804</bug_id>
          
          <creation_ts>2011-05-13 14:21:36 -0700</creation_ts>
          <short_desc>Port Mozilla&apos;s IndexedDB tests: cursors</short_desc>
          <delta_ts>2011-05-16 09:52:54 -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>New Bugs</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>hans</cc>
    
    <cc>pilgrim</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403856</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-05-13 14:21:36 -0700</bug_when>
    <thetext>Original test: http://mxr.mozilla.org/mozilla2.0/source/dom/indexedDB/test/test_cursors.html?force=1

This is a port of a test from Mozilla&apos;s IndexedDB test suite. It creates an object store with a few records and exercises a variety of cursors going forward, backward, and over key ranges. It also updates records from the cursor and checks that the update stuck.

WebKit passes this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403857</commentid>
    <comment_count>1</comment_count>
      <attachid>93510</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-05-13 14:22:46 -0700</bug_when>
    <thetext>Created attachment 93510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404536</commentid>
    <comment_count>2</comment_count>
      <attachid>93510</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 09:52:49 -0700</bug_when>
    <thetext>Comment on attachment 93510
Patch

Clearing flags on attachment: 93510

Committed r86579: &lt;http://trac.webkit.org/changeset/86579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404537</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 09:52:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93510</attachid>
            <date>2011-05-13 14:22:46 -0700</date>
            <delta_ts>2011-05-16 09:52:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60804-20110513172250.patch</filename>
            <type>text/plain</type>
            <size>34464</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg2NDYwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUtMTMgIE1hcmsgUGlsZ3JpbSAgPHBp
bGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcnQgTW96aWxsYSdzIEluZGV4ZWREQiB0ZXN0czogY3Vyc29ycworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4MDQKKworICAg
ICAgICBUaGlzIHRlc3QgY3JlYXRlcyBhbiBvYmplY3Qgc3RvcmUgd2l0aCBhIGZldyByZWNvcmRz
IGFuZCBleGVyY2lzZXMKKyAgICAgICAgYSB2YXJpZXR5IG9mIGN1cnNvcnMgZ29pbmcgZm9yd2Fy
ZCwgYmFja3dhcmQsIGFuZCBvdmVyIGtleSByYW5nZXMuCisgICAgICAgIEl0IGFsc28gdXBkYXRl
cyByZWNvcmRzIGZyb20gdGhlIGN1cnNvciBhbmQgY2hlY2tzIHRoYXQgdGhlIHVwZGF0ZQorICAg
ICAgICBzdHVjay4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvY3Vyc29ycy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNS0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1
cnNvcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2MDYgQEAKK1Rlc3QgSW5kZXhlZERCIGN1cnNvciBiZWhhdmlvcgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5k
b3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7CitQQVNTIGluZGV4ZWRE
QiA9PSBudWxsIGlzIGZhbHNlCitJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRh
YmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247CitQQVNT
IElEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwgaXMgZmFsc2UKK0lEQkN1cnNvciA9IHdpbmRv
dy5JREJDdXJzb3IgfHwgd2luZG93LndlYmtpdElEQkN1cnNvcjsKK1BBU1MgSURCQ3Vyc29yID09
IG51bGwgaXMgZmFsc2UKK0lEQktleVJhbmdlID0gd2luZG93LklEQktleVJhbmdlIHx8IHdpbmRv
dy53ZWJraXRJREJLZXlSYW5nZTsKK1BBU1MgSURCS2V5UmFuZ2UgPT0gbnVsbCBpcyBmYWxzZQor
aW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRpb24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKK3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnYXV0b0luY3JlbWVudCcsIHsgYXV0b0luY3JlbWVu
dDogdHJ1ZSB9KTsKK3JlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CitQQVNTIGV2
ZW50LnRhcmdldC5yZXN1bHQgaXMgbnVsbAorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2F1dG9JbmNy
ZW1lbnRLZXlQYXRoJywgeyBrZXlQYXRoOiAnZm9vJywgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsK
K3JlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CitQQVNTIGV2ZW50LnRhcmdldC5y
ZXN1bHQgaXMgbnVsbAorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2tleVBhdGgnLCB7IGtleVBhdGg6
ICdmb28nIH0pOworcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsKK1BBU1MgZXZl
bnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7City
ZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOworUEFTUyBldmVudC50YXJnZXQucmVz
dWx0IGlzIG51bGwKK2tleXMgPSBbMSwgLTEsIDAsIDEwLCAyMDAwLCAncScsICd6JywgJ3R3bycs
ICdiJywgJ2EnXTsKK3NvcnRlZEtleXMgPSBbLTEsIDAsIDEsIDEwLCAyMDAwLCAnYScsICdiJywg
J3EnLCAndHdvJywgJ3onXTsKK2tleUluZGV4ID0gMDsKK3JlcXVlc3QgPSBvYmplY3RTdG9yZS5h
ZGQoJ2ZvbycsIGtleXNbaV0pOworcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCgnZm9vJywga2V5
c1tpXSk7CityZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKCdmb28nLCBrZXlzW2ldKTsKK3JlcXVl
c3QgPSBvYmplY3RTdG9yZS5hZGQoJ2ZvbycsIGtleXNbaV0pOworcmVxdWVzdCA9IG9iamVjdFN0
b3JlLmFkZCgnZm9vJywga2V5c1tpXSk7CityZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKCdmb28n
LCBrZXlzW2ldKTsKK3JlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoJ2ZvbycsIGtleXNbaV0pOwor
cmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCgnZm9vJywga2V5c1tpXSk7CityZXF1ZXN0ID0gb2Jq
ZWN0U3RvcmUuYWRkKCdmb28nLCBrZXlzW2ldKTsKK3JlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQo
J2ZvbycsIGtleXNbaV0pOworcmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsKK2N1
cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5
c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRl
eF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSBjdXJzb3IuY29udGludWUoKTsKK1BBU1MgRXhjZXB0aW9uIHdh
cyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURf
RVJSCitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlz
ICdmb28nCitrZXlJbmRleCsrOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1
cnNvci5jb250aW51ZSgpOworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1cnNvci5jb250aW51
ZSgpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlz
W2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4
XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7CitjdXJzb3IgPSBldmVu
dC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhd
CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1
cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRpbnVlKCk7CitFeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gY3Vyc29yLmNvbnRpbnVlKCk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUgorUEFTUyBj
dXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5
IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwora2V5
SW5kZXgrKzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkg
aXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVk
S2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGlu
dWUoKTsKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBjdXJzb3IuY29udGludWUoKTsKK1BBU1Mg
RXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24u
Tk9UX0FMTE9XRURfRVJSCitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0K
K1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsrOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJz
b3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUg
aXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOworRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1
cnNvci5jb250aW51ZSgpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBp
cyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIKK1BBU1MgY3Vyc29yLmtleSBp
cyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRL
ZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7Citj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtl
eXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5k
ZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRpbnVlKCk7CitFeHBl
Y3RpbmcgZXhjZXB0aW9uIGZyb20gY3Vyc29yLmNvbnRpbnVlKCk7CitQQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VE
X0VSUgorUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNv
ci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBp
cyAnZm9vJwora2V5SW5kZXgrKzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNT
IGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlL
ZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitj
dXJzb3IuY29udGludWUoKTsKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBjdXJzb3IuY29udGlu
dWUoKTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJh
c2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSCitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5
c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRl
eF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsrOworY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4
XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBj
dXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOworRXhwZWN0aW5nIGV4Y2Vw
dGlvbiBmcm9tIGN1cnNvci5jb250aW51ZSgpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4K
K1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tl
eUluZGV4Kys7CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5
IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRl
ZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRp
bnVlKCk7CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gY3Vyc29yLmNvbnRpbnVlKCk7CitQQVNT
IEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9u
Lk5PVF9BTExPV0VEX0VSUgorUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhd
CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1
cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgrKzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVl
IGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBj
dXJzb3IuY29udGludWUoKTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUg
aXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSCitQQVNTIGN1cnNvci5rZXkg
aXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVk
S2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsrOwor
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1Mga2V5SW5kZXggaXMga2V5cy5sZW5n
dGgKK2tleUluZGV4ID0gNDsKK3JhbmdlID0gSURCS2V5UmFuZ2UuYm91bmQoMjAwMCwgJ3EnKTsK
K3JlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKHJhbmdlKTsKK2N1cnNvciA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0K
K1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBp
cyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRL
ZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7Citj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtl
eXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5k
ZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRpbnVlKCk7CitQQVNT
IGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlL
ZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitr
ZXlJbmRleCsrOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0
ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250
aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1
cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1
ZSBpcyAnZm9vJwora2V5SW5kZXgrKzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQ
QVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28n
CitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUlu
ZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFT
UyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7CitjdXJzb3IgPSBldmVudC50YXJn
ZXQucmVzdWx0OworUEFTUyBrZXlJbmRleCBpcyA4CityZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3Bl
bkN1cnNvcigpOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0
ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250
aW51ZSgnYicpOworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNT
IGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52
YWx1ZSBpcyAnZm9vJwora2V5SW5kZXggKz0ga2V5SW5kZXggPyAxOiA2OworY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4
XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBj
dXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5
IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRl
ZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXggKz0g
a2V5SW5kZXggPyAxOiA2OworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vy
c29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBp
cyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNv
ci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQ
QVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNv
ci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXggKz0ga2V5SW5kZXggPyAxOiA2OworY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUlu
ZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFT
UyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iu
a2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNv
cnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgg
Kz0ga2V5SW5kZXggPyAxOiA2OworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1
cnNvci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhd
CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1
cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXggKz0ga2V5SW5kZXggPyAxOiA2OworY3Vyc29y
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1Mga2V5SW5kZXggaXMga2V5cy5sZW5ndGgKK2tl
eUluZGV4ID0gMDsKK3JlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CitjdXJzb3Ig
PSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5
SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQ
QVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRpbnVlKDEwKTsKK1BBU1MgY3Vy
c29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBp
cyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUlu
ZGV4ICs9IGtleUluZGV4ID8gMTogMzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQ
QVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28n
CitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUlu
ZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFT
UyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4ICs9IGtleUluZGV4ID8gMTogMzsKK2N1
cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5
c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRl
eF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tl
eUluZGV4ICs9IGtleUluZGV4ID8gMTogMzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnBy
aW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdm
b28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tl
eUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQor
UEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4ICs9IGtleUluZGV4ID8gMTogMzsK
K2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVk
S2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJ
bmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BB
U1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFy
eUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycK
K2tleUluZGV4ICs9IGtleUluZGV4ID8gMTogMzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlz
ICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlz
W2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4
XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4ICs9IGtleUluZGV4ID8gMTog
MzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29y
dGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1tr
ZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsK
K1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJp
bWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2Zv
bycKK2tleUluZGV4ICs9IGtleUluZGV4ID8gMTogMzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVl
IGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRL
ZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUlu
ZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4ICs9IGtleUluZGV4ID8g
MTogMzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGtleUluZGV4IGlzIGtl
eXMubGVuZ3RoCitrZXlJbmRleCA9IDA7CityZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNv
cigpOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBz
b3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlz
W2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgn
YycpOworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNv
ci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBp
cyAnZm9vJwora2V5SW5kZXggKz0ga2V5SW5kZXggPyAxIDogNzsKK2N1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BB
U1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29y
LnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBz
b3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlz
W2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4ICs9IGtleUlu
ZGV4ID8gMSA6IDc7CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iu
a2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNv
cnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNv
bnRpbnVlKCk7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1Mg
Y3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZh
bHVlIGlzICdmb28nCitrZXlJbmRleCArPSBrZXlJbmRleCA/IDEgOiA3OworY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4
XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBj
dXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5
IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRl
ZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXggKz0g
a2V5SW5kZXggPyAxIDogNzsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGtl
eUluZGV4IGlzIGtleXMubGVuZ3RoCitrZXlJbmRleCA9IDA7CityZXF1ZXN0ID0gb2JqZWN0U3Rv
cmUub3BlbkN1cnNvcigpOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vy
c29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBp
cyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUlu
ZGV4Kys7CitjdXJzb3IuY29udGludWUoKTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnBy
aW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdm
b28nCitrZXlJbmRleCsrOworY3Vyc29yLmNvbnRpbnVlKCk7CitjdXJzb3IgPSBldmVudC50YXJn
ZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNT
IGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52
YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgrKzsKK2N1cnNvci5jb250aW51ZSgpOworY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUlu
ZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFT
UyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7CitjdXJzb3IuY29udGludWUoKTsK
K2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVk
S2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJ
bmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCityZXF1ZXN0ID0gY3Vyc29yLnVwZGF0
ZSgnYmFyJyk7CitrZXlJbmRleCsrOworY3Vyc29yLmNvbnRpbnVlKCk7CitjdXJzb3IgPSBldmVu
dC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhd
CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1
cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgrKzsKK2N1cnNvci5jb250aW51ZSgpOworY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlz
W2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4
XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7CitjdXJzb3IuY29udGlu
dWUoKTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMg
c29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5
c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsrOworY3Vy
c29yLmNvbnRpbnVlKCk7CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJz
b3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlz
IHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5k
ZXgrKzsKK2N1cnNvci5jb250aW51ZSgpOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
K1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJp
bWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2Zv
bycKK2tleUluZGV4Kys7CitjdXJzb3IuY29udGludWUoKTsKK2N1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7CitQQVNTIGtleUluZGV4IGlzIGtleXMubGVuZ3RoCityZXF1ZXN0ID0gb2JqZWN0
U3RvcmUuZ2V0KHNvcnRlZEtleXNbNF0pOworUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzICdi
YXInCityZXF1ZXN0ID0gb2JqZWN0U3RvcmUucHV0KCdmb28nLCBzb3J0ZWRLZXlzWzRdKTsKK2tl
eUluZGV4ID0gMDsKK3JlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKG51bGwsIElEQkN1
cnNvci5ORVhUKTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5r
ZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29y
dGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsr
OworY3Vyc29yLmNvbnRpbnVlKCk7CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFT
UyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5
S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwor
a2V5SW5kZXgrKzsKK2N1cnNvci5jb250aW51ZSgpOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJz
b3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUg
aXMgJ2ZvbycKK2tleUluZGV4Kys7CitjdXJzb3IuY29udGludWUoKTsKK2N1cnNvciA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0K
K1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsrOworY3Vyc29yLmNvbnRpbnVlKCk7CitjdXJz
b3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNb
a2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhd
CitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworcmVxdWVzdCA9IGN1cnNvci5kZWxldGUoKTsK
K2tleUluZGV4Kys7CitjdXJzb3IuY29udGludWUoKTsKK1BBU1Mga2V5SW5kZXggaXMgNQorZ290
UmVtb3ZlRXZlbnQgPSB0cnVlOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tl
eUluZGV4Kys7CitjdXJzb3IuY29udGludWUoKTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlz
ICdmb28nCitrZXlJbmRleCsrOworY3Vyc29yLmNvbnRpbnVlKCk7CitjdXJzb3IgPSBldmVudC50
YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQ
QVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNv
ci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgrKzsKK2N1cnNvci5jb250aW51ZSgpOworY3Vyc29y
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tl
eUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQor
UEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4Kys7CitjdXJzb3IuY29udGludWUo
KTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29y
dGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1tr
ZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleCsrOworY3Vyc29y
LmNvbnRpbnVlKCk7CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBrZXlJbmRl
eCBpcyBrZXlzLmxlbmd0aAorUEFTUyBnb3RSZW1vdmVFdmVudCBpcyB0cnVlCityZXF1ZXN0ID0g
b2JqZWN0U3RvcmUuZ2V0KHNvcnRlZEtleXNbNF0pOworUEFTUyBldmVudC50YXJnZXQucmVzdWx0
IGlzIHVuZGVmaW5lZAorcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCgnZm9vJywgc29ydGVkS2V5
c1s0XSk7CityZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcihudWxsLCBJREJDdXJzb3Iu
UFJFVik7CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlz
IHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtl
eXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRpbnVl
KCk7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlz
ICdmb28nCitrZXlJbmRleC0tOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1
cnNvci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhd
CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1
cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgtLTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVl
IGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRL
ZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUlu
ZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4LS07CitjdXJzb3IgPSBl
dmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5k
ZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNT
IGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRpbnVlKCk7CitQQVNTIGN1cnNvci5r
ZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29y
dGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleC0t
OworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0
ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tl
eUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOwor
UEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmlt
YXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9v
Jwora2V5SW5kZXgtLTsKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNv
ci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMg
c29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3Iu
Y29udGludWUoKTsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFT
UyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3Iu
dmFsdWUgaXMgJ2ZvbycKK2tleUluZGV4LS07CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworUEFTUyBjdXJzb3Iua2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5w
cmltYXJ5S2V5IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAn
Zm9vJworY3Vyc29yLmNvbnRpbnVlKCk7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1tr
ZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0K
K1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitrZXlJbmRleC0tOworY3Vyc29yID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKK1BBU1MgY3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQor
UEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJz
b3IudmFsdWUgaXMgJ2ZvbycKK2N1cnNvci5jb250aW51ZSgpOworUEFTUyBjdXJzb3Iua2V5IGlz
IHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRlZEtl
eXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJwora2V5SW5kZXgtLTsKK2N1
cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5
c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRl
eF0KK1BBU1MgY3Vyc29yLnZhbHVlIGlzICdmb28nCitjdXJzb3IuY29udGludWUoKTsKK1BBU1Mg
Y3Vyc29yLmtleSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IucHJpbWFyeUtl
eSBpcyBzb3J0ZWRLZXlzW2tleUluZGV4XQorUEFTUyBjdXJzb3IudmFsdWUgaXMgJ2ZvbycKK2tl
eUluZGV4LS07CitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworUEFTUyBjdXJzb3Iua2V5
IGlzIHNvcnRlZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzIHNvcnRl
ZEtleXNba2V5SW5kZXhdCitQQVNTIGN1cnNvci52YWx1ZSBpcyAnZm9vJworY3Vyc29yLmNvbnRp
bnVlKCk7CitQQVNTIGN1cnNvci5rZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vy
c29yLnByaW1hcnlLZXkgaXMgc29ydGVkS2V5c1trZXlJbmRleF0KK1BBU1MgY3Vyc29yLnZhbHVl
IGlzICdmb28nCitrZXlJbmRleC0tOworY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKK1BB
U1Mga2V5SW5kZXggaXMgLTEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2N1cnNvcnMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9yaWdpbmFsIHRlc3Q6IGh0dHA6Ly9t
eHIubW96aWxsYS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9tL2luZGV4ZWREQi90ZXN0L3Rlc3Rf
Y3Vyc29ycy5odG1sP2ZvcmNlPTEKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAgICIg
QW55IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAgICBo
dHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0tPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGN1cnNv
ciBiZWhhdmlvciIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGluZGV4ZWREQiA9IGV2YWxBbmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIg
fHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIpOworICAg
IHNob3VsZEJlRmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7CisgICAgSURCRGF0YWJhc2VFeGNl
cHRpb24gPSBldmFsQW5kTG9nKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRh
YmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247Iik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCIpOworICAgIElE
QkN1cnNvciA9IGV2YWxBbmRMb2coIklEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3IgfHwgd2lu
ZG93LndlYmtpdElEQkN1cnNvcjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJDdXJzb3IgPT0g
bnVsbCIpOworICAgIElEQktleVJhbmdlID0gZXZhbEFuZExvZygiSURCS2V5UmFuZ2UgPSB3aW5k
b3cuSURCS2V5UmFuZ2UgfHwgd2luZG93LndlYmtpdElEQktleVJhbmdlOyIpOworICAgIHNob3Vs
ZEJlRmFsc2UoIklEQktleVJhbmdlID09IG51bGwiKTsKKworICAgIG5hbWUgPSB3aW5kb3cubG9j
YXRpb24ucGF0aG5hbWU7CisgICAgZGVzY3JpcHRpb24gPSAiTXkgVGVzdCBEYXRhYmFzZSI7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0aW9u
KSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNj
ZXNzKCkKK3sKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIp
OworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcx
JykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDE7CisgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHRlc3RHcm91
cDEoKQoreworICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisKKyAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhdXRvSW5jcmVtZW50JywgeyBh
dXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJl
cXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7Iik7CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQucmVzdWx0IiwgIm51
bGwiKTsKKyAgICAgIHRlc3RHcm91cDIoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RHcm91
cDIoKQoreworICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ2F1dG9JbmNyZW1lbnRLZXlQYXRoJywgeyBrZXlQYXRoOiAnZm9vJywgYXV0b0luY3JlbWVu
dDogdHJ1ZSB9KTsiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2Jq
ZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50
KSB7CisgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJudWxsIik7CisgICAg
ICB0ZXN0R3JvdXAzKCk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0R3JvdXAzKCkKK3sKKyAg
ICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdrZXlQYXRo
JywgeyBrZXlQYXRoOiAnZm9vJyB9KTsiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJy
ZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVu
Y3Rpb24gKGV2ZW50KSB7CisgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJu
dWxsIik7CisgICAgICB0ZXN0R3JvdXA0KCk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0R3Jv
dXA0KCkKK3sKKyAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdmb28nKTsiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2Jq
ZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50
KSB7CisgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJudWxsIik7CisgICAg
ICB0ZXN0R3JvdXA1KCk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0R3JvdXA1KCkKK3sKKyAg
ICBrZXlzID0gZXZhbEFuZExvZygia2V5cyA9IFsxLCAtMSwgMCwgMTAsIDIwMDAsICdxJywgJ3on
LCAndHdvJywgJ2InLCAnYSddOyIpOworICAgIHNvcnRlZEtleXMgPSBldmFsQW5kTG9nKCJzb3J0
ZWRLZXlzID0gWy0xLCAwLCAxLCAxMCwgMjAwMCwgJ2EnLCAnYicsICdxJywgJ3R3bycsICd6J107
Iik7CisKKyAgICBrZXlJbmRleCA9IGV2YWxBbmRMb2coImtleUluZGV4ID0gMDsiKTsKKworICAg
IGZvciAoaSBpbiBrZXlzKSB7CisgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9
IG9iamVjdFN0b3JlLmFkZCgnZm9vJywga2V5c1tpXSk7Iik7CisgICAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgaWYgKCsra2V5SW5kZXggPT0ga2V5cy5sZW5ndGgp
IHsKKyAgICAgICAgICB0ZXN0R3JvdXA2KCk7CisgICAgICAgIH0KKyAgICAgIH07CisgICAgfQor
fQorCitmdW5jdGlvbiB0ZXN0R3JvdXA2KCkKK3sKKyAgICBrZXlJbmRleCA9IDA7CisKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsi
KTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgY3Vyc29yID0gZXZh
bEFuZExvZygiY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsKKyAgICAgIGlmIChjdXJz
b3IpIHsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAic29ydGVkS2V5c1trZXlJbmRl
eF0iKTsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci5wcmltYXJ5S2V5IiwgInNvcnRlZEtleXNb
a2V5SW5kZXhdIik7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3IudmFsdWUiLCAiJ2ZvbyciKTsK
KworICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKTsiKTsKKyAgICAgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29yLmNvbnRpbnVlKCk7IiwgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIpOworCisgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5
IiwgInNvcnRlZEtleXNba2V5SW5kZXhdIik7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3IucHJp
bWFyeUtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAgICAgICBzaG91bGRCZSgiY3Vy
c29yLnZhbHVlIiwgIidmb28nIik7CisKKyAgICAgICAgZXZhbEFuZExvZygia2V5SW5kZXgrKzsi
KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBzaG91bGRCZSgia2V5SW5kZXgiLCAi
a2V5cy5sZW5ndGgiKTsKKyAgICAgICAgdGVzdEdyb3VwNygpOworICAgICAgfQorICAgIH0KK30K
KworZnVuY3Rpb24gdGVzdEdyb3VwNygpCit7CisgICAga2V5SW5kZXggPSBldmFsQW5kTG9nKCJr
ZXlJbmRleCA9IDQ7Iik7CisKKyAgICByYW5nZSA9IGV2YWxBbmRMb2coInJhbmdlID0gSURCS2V5
UmFuZ2UuYm91bmQoMjAwMCwgJ3EnKTsiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVx
dWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IocmFuZ2UpOyIpOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICBjdXJzb3IgPSBldmFsQW5kTG9nKCJjdXJzb3IgPSBl
dmVudC50YXJnZXQucmVzdWx0OyIpOworICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICBzaG91
bGRCZSgiY3Vyc29yLmtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAgICAgICBzaG91
bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAic29ydGVkS2V5c1trZXlJbmRleF0iKTsKKyAgICAg
ICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIsICInZm9vJyIpOworCisgICAgICAgIGV2YWxBbmRM
b2coImN1cnNvci5jb250aW51ZSgpOyIpOworCisgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5
IiwgInNvcnRlZEtleXNba2V5SW5kZXhdIik7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3IucHJp
bWFyeUtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAgICAgICBzaG91bGRCZSgiY3Vy
c29yLnZhbHVlIiwgIidmb28nIik7CisKKyAgICAgICAgZXZhbEFuZExvZygia2V5SW5kZXgrKzsi
KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBzaG91bGRCZSgia2V5SW5kZXgiLCAi
OCIpOworICAgICAgICB0ZXN0R3JvdXA4KCk7CisgICAgICB9CisgICAgfQorfQorCitmdW5jdGlv
biB0ZXN0R3JvdXA4KCkKK3sKKyAgICBrZXlJbmRleCA9IDA7CisKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsiKTsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgY3Vyc29yID0gZXZhbEFuZExvZygiY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsiKTsKKyAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAg
ICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAic29ydGVkS2V5c1trZXlJbmRleF0iKTsKKyAgICAg
ICAgc2hvdWxkQmUoImN1cnNvci5wcmltYXJ5S2V5IiwgInNvcnRlZEtleXNba2V5SW5kZXhdIik7
CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3IudmFsdWUiLCAiJ2ZvbyciKTsKKworICAgICAgICBp
ZiAoa2V5SW5kZXgpIHsKKyAgICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKTsi
KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICBldmFsQW5kTG9nKCJjdXJz
b3IuY29udGludWUoJ2InKTsiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNob3VsZEJlKCJjdXJz
b3Iua2V5IiwgInNvcnRlZEtleXNba2V5SW5kZXhdIik7CisgICAgICAgIHNob3VsZEJlKCJjdXJz
b3IucHJpbWFyeUtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAgICAgICBzaG91bGRC
ZSgiY3Vyc29yLnZhbHVlIiwgIidmb28nIik7CisKKyAgICAgICAgZXZhbEFuZExvZygia2V5SW5k
ZXggKz0ga2V5SW5kZXggPyAxOiA2OyIpOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAg
IHNob3VsZEJlKCJrZXlJbmRleCIsICJrZXlzLmxlbmd0aCIpOworICAgICAgICB0ZXN0R3JvdXA5
KCk7CisgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0R3JvdXA5KCkKK3sKKyAgICBr
ZXlJbmRleCA9IGV2YWxBbmRMb2coImtleUluZGV4ID0gMDsiKTsKKworICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICBjdXJzb3IgPSBldmFsQW5kTG9nKCJj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAgICAgaWYgKGN1cnNvcikgeworICAg
ICAgICBzaG91bGRCZSgiY3Vyc29yLmtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAg
ICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAic29ydGVkS2V5c1trZXlJbmRleF0i
KTsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIsICInZm9vJyIpOworCisgICAgICAg
IGlmIChrZXlJbmRleCkgeworICAgICAgICAgIGV2YWxBbmRMb2coImN1cnNvci5jb250aW51ZSgp
OyIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgIGV2YWxBbmRMb2coImN1
cnNvci5jb250aW51ZSgxMCk7Iik7CisgICAgICAgIH0KKworICAgICAgICBzaG91bGRCZSgiY3Vy
c29yLmtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAgICAgICBzaG91bGRCZSgiY3Vy
c29yLnByaW1hcnlLZXkiLCAic29ydGVkS2V5c1trZXlJbmRleF0iKTsKKyAgICAgICAgc2hvdWxk
QmUoImN1cnNvci52YWx1ZSIsICInZm9vJyIpOworCisgICAgICAgIGV2YWxBbmRMb2coImtleUlu
ZGV4ICs9IGtleUluZGV4ID8gMTogMzsiKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAg
ICBzaG91bGRCZSgia2V5SW5kZXgiLCAia2V5cy5sZW5ndGgiKTsKKyAgICAgICAgdGVzdEdyb3Vw
MTAoKTsKKyAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RHcm91cDEwKCkKK3sKKyAg
ICBrZXlJbmRleCA9IGV2YWxBbmRMb2coImtleUluZGV4ID0gMDsiKTsKKworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOyIpOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICBjdXJzb3IgPSBldmFsQW5kTG9n
KCJjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAgICAgaWYgKGN1cnNvcikgewor
ICAgICAgICBzaG91bGRCZSgiY3Vyc29yLmtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOwor
ICAgICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAic29ydGVkS2V5c1trZXlJbmRl
eF0iKTsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIsICInZm9vJyIpOworCisgICAg
ICAgIGlmIChrZXlJbmRleCkgeworICAgICAgICAgIGV2YWxBbmRMb2coImN1cnNvci5jb250aW51
ZSgpOyIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgIGV2YWxBbmRMb2co
ImN1cnNvci5jb250aW51ZSgnYycpOyIpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUo
ImN1cnNvci5rZXkiLCAic29ydGVkS2V5c1trZXlJbmRleF0iKTsKKyAgICAgICAgc2hvdWxkQmUo
ImN1cnNvci5wcmltYXJ5S2V5IiwgInNvcnRlZEtleXNba2V5SW5kZXhdIik7CisgICAgICAgIHNo
b3VsZEJlKCJjdXJzb3IudmFsdWUiLCAiJ2ZvbyciKTsKKworICAgICAgICBldmFsQW5kTG9nKCJr
ZXlJbmRleCArPSBrZXlJbmRleCA/IDEgOiA3OyIpOworICAgICAgfQorICAgICAgZWxzZSB7Cisg
ICAgICAgIHNob3VsZEJlKCJrZXlJbmRleCIsICJrZXlzLmxlbmd0aCIpOworICAgICAgICB0ZXN0
R3JvdXAxMSgpOworICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gdGVzdEdyb3VwMTEoKQor
eworICAgIGtleUluZGV4ID0gZXZhbEFuZExvZygia2V5SW5kZXggPSAwOyIpOworCisgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7Iik7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgIGN1cnNvciA9IGV2YWxB
bmRMb2coImN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Iik7CisgICAgICBpZiAoY3Vyc29y
KSB7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5IiwgInNvcnRlZEtleXNba2V5SW5kZXhd
Iik7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3IucHJpbWFyeUtleSIsICJzb3J0ZWRLZXlzW2tl
eUluZGV4XSIpOworICAgICAgICBzaG91bGRCZSgiY3Vyc29yLnZhbHVlIiwgIidmb28nIik7CisK
KyAgICAgICAgaWYgKGtleUluZGV4ID09IDQpIHsKKyAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygicmVxdWVzdCA9IGN1cnNvci51cGRhdGUoJ2JhcicpOyIpOworICAgICAgICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImtl
eUluZGV4Kys7Iik7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKTsi
KTsKKyAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgIGV2
YWxBbmRMb2coImtleUluZGV4Kys7Iik7CisgICAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yLmNv
bnRpbnVlKCk7Iik7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBz
aG91bGRCZSgia2V5SW5kZXgiLCAia2V5cy5sZW5ndGgiKTsKKyAgICAgICAgdGVzdEdyb3VwMTIo
KTsKKyAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RHcm91cDEyKCkKK3sKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldChzb3J0ZWRLZXlz
WzRdKTsiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDEyYjsKK30KKworZnVuY3Rpb24gdGVz
dEdyb3VwMTJiKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICInYmFy
JyIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5w
dXQoJ2ZvbycsIHNvcnRlZEtleXNbNF0pOyIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdGVzdEdyb3VwMTM7
Cit9CisKK2Z1bmN0aW9uIHRlc3RHcm91cDEzKCkKK3sKKyAgICBrZXlJbmRleCA9IGV2YWxBbmRM
b2coImtleUluZGV4ID0gMDsiKTsKKworICAgIGdvdFJlbW92ZUV2ZW50ID0gZmFsc2U7CisgICAg
cmV0dmFsID0gZmFsc2U7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9i
amVjdFN0b3JlLm9wZW5DdXJzb3IobnVsbCwgSURCQ3Vyc29yLk5FWFQpOyIpOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICBjdXJzb3IgPSBldmFsQW5kTG9nKCJjdXJz
b3IgPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAgICAgaWYgKGN1cnNvcikgeworICAgICAg
ICBzaG91bGRCZSgiY3Vyc29yLmtleSIsICJzb3J0ZWRLZXlzW2tleUluZGV4XSIpOworICAgICAg
ICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAic29ydGVkS2V5c1trZXlJbmRleF0iKTsK
KyAgICAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIsICInZm9vJyIpOworCisgICAgICAgIGlm
IChrZXlJbmRleCA9PSA0KSB7CisgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBjdXJzb3IuZGVsZXRlKCk7Iik7CisgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgIjUiKTsKKyAg
ICAgICAgICAgIGdvdFJlbW92ZUV2ZW50ID0gZXZhbEFuZExvZygiZ290UmVtb3ZlRXZlbnQgPSB0
cnVlOyIpOworICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICBldmFsQW5kTG9nKCJr
ZXlJbmRleCsrOyIpOworICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKTsiKTsK
KyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBzaG91bGRCZSgia2V5SW5kZXgiLCAia2V5
cy5sZW5ndGgiKTsKKyAgICAgICAgc2hvdWxkQmUoImdvdFJlbW92ZUV2ZW50IiwgInRydWUiKTsK
KyAgICAgICAgdGVzdEdyb3VwMTQoKTsKKyAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRl
c3RHcm91cDE0KCkKK3sKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVj
dFN0b3JlLmdldChzb3J0ZWRLZXlzWzRdKTsiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDE0
YjsKK30KKworZnVuY3Rpb24gdGVzdEdyb3VwMTRiKCkKK3sKKyAgICBzaG91bGRCZSgiZXZlbnQu
dGFyZ2V0LnJlc3VsdCIsICJ1bmRlZmluZWQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKCdmb28nLCBzb3J0ZWRLZXlzWzRdKTsiKTsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDE1OworfQorCitmdW5jdGlvbiB0ZXN0R3JvdXAxNSgpCit7
CisgICAga2V5SW5kZXggPSBzb3J0ZWRLZXlzLmxlbmd0aCAtIDE7CisKKyAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IobnVsbCwgSURCQ3Vy
c29yLlBSRVYpOyIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICBj
dXJzb3IgPSBldmFsQW5kTG9nKCJjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OyIpOworICAg
ICAgaWYgKGN1cnNvcikgeworICAgICAgICBzaG91bGRCZSgiY3Vyc29yLmtleSIsICJzb3J0ZWRL
ZXlzW2tleUluZGV4XSIpOworICAgICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAi
c29ydGVkS2V5c1trZXlJbmRleF0iKTsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci52YWx1ZSIs
ICInZm9vJyIpOworCisgICAgICAgIGV2YWxBbmRMb2coImN1cnNvci5jb250aW51ZSgpOyIpOwor
CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5IiwgInNvcnRlZEtleXNba2V5SW5kZXhdIik7
CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3IucHJpbWFyeUtleSIsICJzb3J0ZWRLZXlzW2tleUlu
ZGV4XSIpOworICAgICAgICBzaG91bGRCZSgiY3Vyc29yLnZhbHVlIiwgIidmb28nIik7CisKKyAg
ICAgICAgZXZhbEFuZExvZygia2V5SW5kZXgtLTsiKTsKKyAgICAgIH0KKyAgICAgIGVsc2Ugewor
ICAgICAgICBzaG91bGRCZSgia2V5SW5kZXgiLCAiLTEiKTsKKyAgICAgICAgZG9uZSgpOworICAg
ICAgfQorICAgIH0KK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3Rlc3Qo
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>