<?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>63140</bug_id>
          
          <creation_ts>2011-06-22 07:59:04 -0700</creation_ts>
          <short_desc>IndexedDB: fix multiple issues in IDBDatabase.idl</short_desc>
          <delta_ts>2011-06-22 11:03:53 -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>abarth</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>hans</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>425235</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-06-22 07:59:04 -0700</bug_when>
    <thetext>This is a consolidated patch that fixes the following issues, some of which were previously reported in separate and overlapping bugs:

- createObjectStore() should throw TypeError if required name argument is missing (bug 62414)
- createObjectStore() should treat null name argument as &quot;null&quot; (bug 63117)
- deleteObjectStore() should throw TypeError if required name argument is missing (bug 62415)
- deleteObjectStore() should treat null name argument as &quot;null&quot;
- setVersion() should throw TypeError if required version argument is missing (bug 62401)
- setVersion() should treat null version argument as &quot;null&quot; (bug 62401)
- transaction() should throw TypeError if required storeNames argument is missing (bug 62416)
- transaction() should treat null storeNames argument as &quot;null&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425238</commentid>
    <comment_count>1</comment_count>
      <attachid>98174</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-06-22 08:09:28 -0700</bug_when>
    <thetext>Created attachment 98174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425241</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-06-22 08:13:00 -0700</bug_when>
    <thetext>*** Bug 62414 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425243</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-06-22 08:13:58 -0700</bug_when>
    <thetext>*** Bug 63117 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425245</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-06-22 08:14:17 -0700</bug_when>
    <thetext>*** Bug 62415 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425247</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-06-22 08:14:30 -0700</bug_when>
    <thetext>*** Bug 62416 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425339</commentid>
    <comment_count>6</comment_count>
      <attachid>98174</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-22 10:25:43 -0700</bug_when>
    <thetext>Comment on attachment 98174
Patch

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

&gt; Source/WebCore/storage/IDBDatabase.idl:58
&gt;          // EventTarget interface
&gt;          void addEventListener(in DOMString type,
&gt;                                in EventListener listener,
&gt; -                              in boolean useCapture);
&gt; +                              in [Optional] boolean useCapture);
&gt;          void removeEventListener(in DOMString type,
&gt;                                   in EventListener listener,
&gt; -                                 in boolean useCapture);
&gt; +                                 in [Optional] boolean useCapture);

There&apos;s some question about what the right thing here is globally, but I&apos;m pretty sure this is what we&apos;re going to end up with.  The only question is whether we want to make that decision all-at-once or whether we want to convert these piecemeal.  I think it&apos;s ok to convert them piecemeal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425376</commentid>
    <comment_count>7</comment_count>
      <attachid>98174</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 11:03:47 -0700</bug_when>
    <thetext>Comment on attachment 98174
Patch

Clearing flags on attachment: 98174

Committed r89451: &lt;http://trac.webkit.org/changeset/89451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425377</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 11:03:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98174</attachid>
            <date>2011-06-22 08:09:28 -0700</date>
            <delta_ts>2011-06-22 11:03:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63140-20110622110934.patch</filename>
            <type>text/plain</type>
            <size>37529</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NDMwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDYtMjIgIE1hcmsgUGls
Z3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQjogZml4IG11bHRpcGxlIGlzc3VlcyBpbiBJ
REJEYXRhYmFzZS5pZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYzMTQwCisKKyAgICAgICAgVGVzdHM6IHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9i
amVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbAorICAgICAgICAgICAgICAgc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwKKyAgICAgICAg
ICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQt
cmVxdWlyZWQuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2Jq
ZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRi
L3NldFZlcnNpb24tbnVsbC5odG1sCisgICAgICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2Uv
SURCRGF0YWJhc2UuaWRsOiByZW1vdmUgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzIHNv
CisgICAgICAgIGFsbCBmdW5jdGlvbnMgd2lsbCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cywKKyAgICAgICAgYXMgcGVyIFdlYklETCBzcGVjLiBBbHNv
IHJlbW92ZSBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyBmbGFncyBzbyBudWxsCisgICAgICAgIHZh
bHVlcyBhcmUgc3RyaW5naWZpZWQgYXMgIm51bGwiIChhbHNvIGFzIHBlciBXZWJJREwgc3BlYyku
CisKIDIwMTEtMDYtMjAgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCRGF0YWJhc2UuaWRsCShyZXZpc2lvbiA4OTM5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBA
IG1vZHVsZSBzdG9yYWdlIHsKIAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFs
PUlOREVYRURfREFUQUJBU0UsCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50
cywKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBFdmVudFRhcmdldAogICAgIF0g
SURCRGF0YWJhc2UgewpAQCAtNDAsMjMgKzM5LDIzIEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAg
ICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb252ZXJzaW9uY2hhbmdlOwogCi0gICAgICAgIElEQk9iamVjdFN0b3JlIGNy
ZWF0ZU9iamVjdFN0b3JlKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5h
bWUsIGluIFtPcHRpb25hbF0gT3B0aW9uc09iamVjdCBvcHRpb25zKQorICAgICAgICBJREJPYmpl
Y3RTdG9yZSBjcmVhdGVPYmplY3RTdG9yZShpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFs
XSBPcHRpb25zT2JqZWN0IG9wdGlvbnMpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNl
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbiBET01TdHJpbmcg
bmFtZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCVmVyc2lvbkNoYW5nZVJlcXVl
c3Qgc2V0VmVyc2lvbihpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIHZlcnNpb24pCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBzZXRWZXJzaW9uKGluIERPTVN0cmluZyB2ZXJzaW9u
KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJUcmFuc2FjdGlvbiB0cmFuc2FjdGlv
bihpbiBbT3B0aW9uYWxdIERPTVN0cmluZ0xpc3Qgc3RvcmVOYW1lcywgaW4gW09wdGlvbmFsXSB1
bnNpZ25lZCBzaG9ydCBtb2RlKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oaW4gRE9NU3RyaW5nTGlzdCBzdG9yZU5h
bWVzLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNob3J0IG1vZGUpCiAgICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBjbG9zZSgpOwogCiAgICAg
ICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVu
ZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBF
dmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xl
YW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRF
eGNlcHRpb24pOwogICAgIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4OTQzMCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTA2LTIy
ICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleGVkREI6IGZpeCBtdWx0aXBsZSBp
c3N1ZXMgaW4gSURCRGF0YWJhc2UuaWRsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MzE0MAorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Jl
YXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJn
dW1lbnQtcmVxdWlyZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
Y3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW5hbWUt
YXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51
bGwtbmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVj
dHN0b3JlLW51bGwtbmFtZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NldFZl
cnNpb24tbnVsbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3NldFZlcnNpb24tbnVsbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9zZXRWZXJzaW9uLXVuZGVmaW5lZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9y
ZS1jYWxscy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNy
YXNoLW9uLWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5Lmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFt
ZXMtcmVxdWlyZWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMjIgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYXBwbHkgYSBjb3VwbGUg
b2YgQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbiBjaGFuZ2VzIHRvIHRlc3RfZXhwZWN0YXRpb25z
LnR4dC4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0
b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1l
bnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKK1Rlc3QgSW5kZXhlZERC
IGNyZWF0ZU9iamVjdFN0b3JlIG5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWQKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2lu
ZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOworUEFTUyBpbmRleGVk
REIgPT0gbnVsbCBpcyBmYWxzZQorSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0
YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOworUEFT
UyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIGlzIGZhbHNlCitJREJDdXJzb3IgPSB3aW5k
b3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJREJDdXJzb3I7CitQQVNTIElEQkN1cnNvciA9
PSBudWxsIGlzIGZhbHNlCitJREJLZXlSYW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5k
b3cud2Via2l0SURCS2V5UmFuZ2U7CitQQVNTIElEQktleVJhbmdlID09IG51bGwgaXMgZmFsc2UK
K2luZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uKQorZGIgPSBldmVudC50YXJnZXQucmVz
dWx0CityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitEZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgorUEFTUyBkYi5jcmVhdGVPYmplY3RTdG9yZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jcmVhdGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFt
ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjcmVhdGVPYmplY3RTdG9yZSBuYW1l
IGFyZ3VtZW50IGlzIHJlcXVpcmVkIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24g
dGVzdCgpCit7CisgICAgaW5kZXhlZERCID0gZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93
LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVk
REI7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhlZERCID09IG51bGwiKTsKKyAgICBJREJE
YXRhYmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2lu
ZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2Vw
dGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxs
Iik7CisgICAgSURCQ3Vyc29yID0gZXZhbEFuZExvZygiSURCQ3Vyc29yID0gd2luZG93LklEQkN1
cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yOyIpOworICAgIHNob3VsZEJlRmFsc2UoIklE
QkN1cnNvciA9PSBudWxsIik7CisgICAgSURCS2V5UmFuZ2UgPSBldmFsQW5kTG9nKCJJREJLZXlS
YW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5kb3cud2Via2l0SURCS2V5UmFuZ2U7Iik7
CisgICAgc2hvdWxkQmVGYWxzZSgiSURCS2V5UmFuZ2UgPT0gbnVsbCIpOworCisgICAgbmFtZSA9
IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKKyAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERh
dGFiYXNlIjsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSwg
ZGVzY3JpcHRpb24pIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQoreworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNl
dFZlcnNpb24oJzEnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxh
dGVPYmplY3RTdG9yZTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCit7Cisg
ICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKworICAgIHNob3VsZFRocm93KCJkYi5jcmVh
dGVPYmplY3RTdG9yZSgpOyIpOworICAgIGRvbmUoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKK3Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxs
LW5hbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1u
dWxsLW5hbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACitUZXN0
IEluZGV4ZWREQiBjcmVhdGVPYmplY3RTdG9yZSBudWxsIGhhbmRsaW5nCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRv
dy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK1BBU1MgaW5kZXhlZERC
ID09IG51bGwgaXMgZmFsc2UKK0lEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFi
YXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKK1BBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQorSURCQ3Vyc29yID0gd2luZG93
LklEQkN1cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yOworUEFTUyBJREJDdXJzb3IgPT0g
bnVsbCBpcyBmYWxzZQorSURCS2V5UmFuZ2UgPSB3aW5kb3cuSURCS2V5UmFuZ2UgfHwgd2luZG93
LndlYmtpdElEQktleVJhbmdlOworUEFTUyBJREJLZXlSYW5nZSA9PSBudWxsIGlzIGZhbHNlCitp
bmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAorcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jl
cy4KK2RiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOworUEFTUyBvYmplY3RTdG9yZS5uYW1lIGlz
ICdudWxsJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3Jl
LW51bGwtbmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIG51bGwg
aGFuZGxpbmciKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBpbmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8
IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJpbmRleGVkREIgPT0gbnVsbCIpOworICAgIElEQkRhdGFiYXNlRXhjZXB0
aW9uID0gZXZhbEFuZExvZygiSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0YWJh
c2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOyIpOworICAg
IHNob3VsZEJlRmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsKKyAgICBJREJD
dXJzb3IgPSBldmFsQW5kTG9nKCJJREJDdXJzb3IgPSB3aW5kb3cuSURCQ3Vyc29yIHx8IHdpbmRv
dy53ZWJraXRJREJDdXJzb3I7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURCQ3Vyc29yID09IG51
bGwiKTsKKyAgICBJREJLZXlSYW5nZSA9IGV2YWxBbmRMb2coIklEQktleVJhbmdlID0gd2luZG93
LklEQktleVJhbmdlIHx8IHdpbmRvdy53ZWJraXRJREJLZXlSYW5nZTsiKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJJREJLZXlSYW5nZSA9PSBudWxsIik7CisKKyAgICBuYW1lID0gd2luZG93LmxvY2F0
aW9uLnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRlc3QgRGF0YWJhc2UiOworICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbiki
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
KworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScp
Iik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3Jl
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitm
dW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKK3sKKyAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOworCisgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVh
dGVPYmplY3RTdG9yZShudWxsKTsiKTsKKyAgICBzaG91bGRCZSgib2JqZWN0U3RvcmUubmFtZSIs
ICInbnVsbCciKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVu
dC1yZXF1aXJlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9k
ZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorVGVzdCBJbmRleGVkREIgZGVsZXRlT2JqZWN0U3Rv
cmUgcmVxdWlyZWQgYXJndW1lbnQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3
aW5kb3cubW96SW5kZXhlZERCOworUEFTUyBpbmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQorSURC
RGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93
LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOworUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9
PSBudWxsIGlzIGZhbHNlCitJREJDdXJzb3IgPSB3aW5kb3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53
ZWJraXRJREJDdXJzb3I7CitQQVNTIElEQkN1cnNvciA9PSBudWxsIGlzIGZhbHNlCitJREJLZXlS
YW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5kb3cud2Via2l0SURCS2V5UmFuZ2U7CitQ
QVNTIElEQktleVJhbmdlID09IG51bGwgaXMgZmFsc2UKK2luZGV4ZWREQi5vcGVuKG5hbWUsIGRl
c2NyaXB0aW9uKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CityZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorUEFTUyBkYi5kZWxldGVPYmpl
Y3RTdG9yZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1l
LWFyZ3VtZW50LXJlcXVpcmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2Jq
ZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0
IEluZGV4ZWREQiBkZWxldGVPYmplY3RTdG9yZSByZXF1aXJlZCBhcmd1bWVudCIpOworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGluZGV4ZWREQiA9IGV2YWxB
bmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4
ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIpOworICAgIHNob3VsZEJlRmFsc2UoImluZGV4
ZWREQiA9PSBudWxsIik7CisgICAgSURCRGF0YWJhc2VFeGNlcHRpb24gPSBldmFsQW5kTG9nKCJJ
REJEYXRhYmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5k
b3cud2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURC
RGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCIpOworICAgIElEQkN1cnNvciA9IGV2YWxBbmRMb2co
IklEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3IgfHwgd2luZG93LndlYmtpdElEQkN1cnNvcjsi
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJDdXJzb3IgPT0gbnVsbCIpOworICAgIElEQktleVJh
bmdlID0gZXZhbEFuZExvZygiSURCS2V5UmFuZ2UgPSB3aW5kb3cuSURCS2V5UmFuZ2UgfHwgd2lu
ZG93LndlYmtpdElEQktleVJhbmdlOyIpOworICAgIHNob3VsZEJlRmFsc2UoIklEQktleVJhbmdl
ID09IG51bGwiKTsKKworICAgIG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAg
ZGVzY3JpcHRpb24gPSAiTXkgVGVzdCBEYXRhYmFzZSI7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uKSIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICBkYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworCisgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUFuZFBv
cHVsYXRlT2JqZWN0U3RvcmUoKQoreworICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisK
KyAgICBzaG91bGRUaHJvdygiZGIuZGVsZXRlT2JqZWN0U3RvcmUoKTsiKTsKKyAgICBkb25lKCk7
Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCit0ZXN0KCk7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5h
bWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMyBAQAorVGVzdCBJbmRleGVkREIgZGVsZXRlT2JqZWN0U3RvcmUgcmVx
dWlyZWQgYXJndW1lbnQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWRE
QiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cu
bW96SW5kZXhlZERCOworUEFTUyBpbmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQorSURCRGF0YWJh
c2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtp
dElEQkRhdGFiYXNlRXhjZXB0aW9uOworUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxs
IGlzIGZhbHNlCitJREJDdXJzb3IgPSB3aW5kb3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJ
REJDdXJzb3I7CitQQVNTIElEQkN1cnNvciA9PSBudWxsIGlzIGZhbHNlCitJREJLZXlSYW5nZSA9
IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5kb3cud2Via2l0SURCS2V5UmFuZ2U7CitQQVNTIElE
QktleVJhbmdlID09IG51bGwgaXMgZmFsc2UKK2luZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0
aW9uKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbign
MScpCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ251
bGwnKTsKK2RiLmRlbGV0ZU9iamVjdFN0b3JlKG51bGwpOworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVs
ZXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVu
Y3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCIGRlbGV0ZU9iamVjdFN0b3JlIHJlcXVpcmVkIGFyZ3VtZW50Iik7CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaW5kZXhlZERCID0gZXZhbEFuZExvZygi
aW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8
IHdpbmRvdy5tb3pJbmRleGVkREI7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhlZERCID09
IG51bGwiKTsKKyAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklEQkRhdGFi
YXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJEYXRhYmFz
ZUV4Y2VwdGlvbiA9PSBudWxsIik7CisgICAgSURCQ3Vyc29yID0gZXZhbEFuZExvZygiSURCQ3Vy
c29yID0gd2luZG93LklEQkN1cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yOyIpOworICAg
IHNob3VsZEJlRmFsc2UoIklEQkN1cnNvciA9PSBudWxsIik7CisgICAgSURCS2V5UmFuZ2UgPSBl
dmFsQW5kTG9nKCJJREJLZXlSYW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5kb3cud2Vi
a2l0SURCS2V5UmFuZ2U7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURCS2V5UmFuZ2UgPT0gbnVs
bCIpOworCisgICAgbmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKKyAgICBkZXNjcmlw
dGlvbiA9ICJNeSBUZXN0IERhdGFiYXNlIjsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRpb24pIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQoreworICAgIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVP
YmplY3RTdG9yZSgpCit7CisgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKworICAgIGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdudWxsJyk7Iik7CisgICAgZXZhbEFuZExv
ZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUobnVsbCk7Iik7CisgICAgZG9uZSgpOworfQorCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNp
b24tbnVsbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvc2V0VmVyc2lvbi1udWxsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tbnVsbC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3QgSW5kZXhlZERCIHdpdGggbnVsbCB2
ZXJzaW9uIHN0cmluZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERC
ID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5t
b3pJbmRleGVkREI7CitQQVNTIGluZGV4ZWREQiA9PSBudWxsIGlzIGZhbHNlCitJREJEYXRhYmFz
ZUV4Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0
SURCRGF0YWJhc2VFeGNlcHRpb247CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwg
aXMgZmFsc2UKK0lEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3IgfHwgd2luZG93LndlYmtpdElE
QkN1cnNvcjsKK1BBU1MgSURCQ3Vyc29yID09IG51bGwgaXMgZmFsc2UKK0lEQktleVJhbmdlID0g
d2luZG93LklEQktleVJhbmdlIHx8IHdpbmRvdy53ZWJraXRJREJLZXlSYW5nZTsKK1BBU1MgSURC
S2V5UmFuZ2UgPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRp
b24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2RiLnNldFZlcnNpb24obnVsbCk7CitQQVNT
IGRiLnZlcnNpb24gaXMgJ251bGwnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0
VmVyc2lvbi1udWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvc2V0VmVyc2lvbi1udWxsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9zZXRWZXJzaW9uLW51bGwuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+IAorPGh0bWw+IAorPGhlYWQ+IAorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+IAorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4gCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4gCis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYXJlZC5qcyI+PC9zY3JpcHQ+IAorPC9oZWFkPiAKKzxib2R5PiAKKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPiAKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PiAKKzxzY3JpcHQ+IAorIAorZGVz
Y3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHdpdGggbnVsbCB2ZXJzaW9uIHN0cmluZyIpOworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpbmRleGVkREIgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJ
bmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJp
bmRleGVkREIgPT0gbnVsbCIpOworICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uID0gZXZhbEFuZExv
ZygiSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwg
d2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOyIpOworICAgIHNob3VsZEJlRmFsc2Uo
IklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsKKyAgICBJREJDdXJzb3IgPSBldmFsQW5k
TG9nKCJJREJDdXJzb3IgPSB3aW5kb3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJREJDdXJz
b3I7Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURCQ3Vyc29yID09IG51bGwiKTsKKyAgICBJREJL
ZXlSYW5nZSA9IGV2YWxBbmRMb2coIklEQktleVJhbmdlID0gd2luZG93LklEQktleVJhbmdlIHx8
IHdpbmRvdy53ZWJraXRJREJLZXlSYW5nZTsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJLZXlS
YW5nZSA9PSBudWxsIik7CisgCisgICAgbmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsK
KyAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERhdGFiYXNlIjsKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRpb24pIik7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKK30KKyAKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICBk
YiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworIAorICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKG51bGwpOyIpOworICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gcG9zdFNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHBvc3RTZXRWZXJzaW9uKCkKK3sKKyAgICBz
aG91bGRCZSgiZGIudmVyc2lvbiIsICInbnVsbCciKTsKKyAgICBkb25lKCk7Cit9CisgCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAKK3Rlc3QoKTsKKyAKKzwvc2NyaXB0PiAKKzwv
Ym9keT4gCis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zZXRW
ZXJzaW9uLXVuZGVmaW5lZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc2V0VmVyc2lvbi11bmRlZmluZWQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA4OTM5NykKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24t
dW5kZWZpbmVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLVRl
c3QgSW5kZXhlZERCIHZlcnNpb24gc3RyaW5nIGlzIHJlcXVpcmVkIGFuZCBjYW4gbm90IGJlIG51
bGwKK1Rlc3QgSW5kZXhlZERCIHZlcnNpb24gc3RyaW5nIGlzIHJlcXVpcmVkCiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIApAQCAtMTMsMTIgKzEzLDcgQEAgSURCS2V5UmFuZ2UgPSB3aW5k
b3cuSURCS2V5UmFuZ2UgfHwgd2luZAogUEFTUyBJREJLZXlSYW5nZSA9PSBudWxsIGlzIGZhbHNl
CiBpbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikKIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAotRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnNldFZlcnNpb24oKTsKLVBBU1MgRXhj
ZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9O
X1RSQU5TSUVOVF9FUlIKLUV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5zZXRWZXJzaW9uKG51
bGwpOwotUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KLVBBU1MgY29kZSBpcyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUgorUEFTUyBkYi5zZXRWZXJzaW9uKCk7IHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9zZXRWZXJzaW9uLXVuZGVmaW5lZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NldFZlcnNpb24tdW5kZWZpbmVkLmh0bWwJ
KHJldmlzaW9uIDg5Mzk3KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2V0VmVy
c2lvbi11bmRlZmluZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQAogPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+IAogPHNjcmlwdD4gCiAgCi1kZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIgdmVyc2lvbiBzdHJpbmcgaXMgcmVxdWlyZWQgYW5kIGNhbiBub3QgYmUgbnVsbCIp
OworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIHZlcnNpb24gc3RyaW5nIGlzIHJlcXVpcmVk
Iik7CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAKQEAgLTM3LDggKzM3LDcgQEAgZnVuY3Rpb24gb3Bl
blN1Y2Nlc3MoKQogewogICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7CiAgCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLnNldFZl
cnNpb24oKTsiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIiKTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuc2V0VmVyc2lvbihudWxsKTsi
LCAiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIiKTsKKyAgICBzaG91bGRU
aHJvdygiZGIuc2V0VmVyc2lvbigpOyIpOwogICAgIGRvbmUoKTsKIH0KICAKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxs
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gODkzOTcpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1h
bmQtb2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02Miwx
MiArNjIsNyBAQCBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMub2JqZWN0U3RvCiBQQVNT
IEV4Y2VwdGlvbiB3YXMgdGhyb3duLgogUEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9GT1VORF9FUlIKIAotdHJhbnMgPSBkYi50cmFuc2FjdGlvbigpCi10cmFucy5v
YmplY3RTdG9yZSgnYScpCi10cmFucy5vYmplY3RTdG9yZSgnYicpCi1FeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gdHJhbnMub2JqZWN0U3RvcmUoJ3gnKQotUEFTUyBFeGNlcHRpb24gd2FzIHRocm93
bi4KLVBBU1MgY29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJS
CitQQVNTIHRyYW5zID0gZGIudHJhbnNhY3Rpb24oKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIAogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLnRy
YW5zYWN0aW9uKFsneCddKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxs
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy5odG1sCShyZXZpc2lvbiA4OTM5NykKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1j
YWxscy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04MSwxMCArODEsNyBAQCBmdW5jdGlvbiBjcmVh
dGVkKCkKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgneCcp
IiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsKICAgICBkZWJ1
ZygiIik7CiAKLSAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24o
KSIpOwotICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdhJykiKTsKLSAgICBldmFs
QW5kTG9nKCJ0cmFucy5vYmplY3RTdG9yZSgnYicpIik7Ci0gICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigidHJhbnMub2JqZWN0U3RvcmUoJ3gnKSIsICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlv
bi5OT1RfRk9VTkRfRVJSIik7CisgICAgc2hvdWxkVGhyb3coInRyYW5zID0gZGIudHJhbnNhY3Rp
b24oKSIpOwogICAgIGRlYnVnKCIiKTsKIAogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRi
LnRyYW5zYWN0aW9uKFsneCddKSIsICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9V
TkRfRVJSIik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1jcmFzaC1vbi1hYm9ydC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA4OTM5NykKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWNyYXNoLW9uLWFib3J0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw3
ICs4LDcgQEAgUEFTUyB3ZWJraXRJbmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQogd2Via2l0SW5k
ZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0JykKIG9wZW5TdWNjZXNzKCk6
CiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnRyYW5zYWN0aW9uKCkKK2RiLnRyYW5zYWN0
aW9uKCdmb28nKQogd2luZG93LmdjKCkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gt
b24tYWJvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC5odG1sCShyZXZpc2lvbiA4OTM5NykKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQogewogICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwogICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgZXZhbEFuZExvZygiZGIudHJhbnNhY3Rp
b24oKSIpOworICAgIGV2YWxBbmRMb2coImRiLnRyYW5zYWN0aW9uKCdmb28nKSIpOwogICAgIGV2
YWxBbmRMb2coIndpbmRvdy5nYygpIik7CiAgICAgZG9uZSgpOwogfQpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1y
ZWFkLW9ubHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4OTM5NykKKysrIExheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEyLDE1ICsxMiwxNSBAQCByZXN1bHQgPSBkYi5zZXRWZXJzaW9uKCd2ZXJz
aW9uIDEnKQogRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIHN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlLnB1dCgneCcsICd5JykKLXRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oKQordHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnKQogRXhwZWN0aW5nIGV4Y2Vw
dGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCgnYScsICdiJykKIFBBU1Mg
RXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNl
cHRpb24uUkVBRF9PTkxZX0VSUgotdHJhbnMgPSBkYi50cmFuc2FjdGlvbigpCit0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKCdzdG9yZScpCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMub2Jq
ZWN0U3RvcmUoJ3N0b3JlJykuZGVsZXRlKCd4JykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
CiBQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUgot
dHJhbnMgPSBkYi50cmFuc2FjdGlvbigpCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScp
CiBjdXIgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmUnKS5vcGVuQ3Vyc29yKCkKIFBBU1MgIWV2
ZW50LnRhcmdldC5yZXN1bHQgaXMgZmFsc2UKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBldmVu
dC50YXJnZXQucmVzdWx0LmRlbGV0ZSgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHkuaHRtbAkocmV2aXNpb24g
ODkzOTcpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFk
LW9ubHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3NCArMSw3NCBAQAotPGh0bWw+DQotPGhl
YWQ+DQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+DQotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCi08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4NCi08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+DQotPC9oZWFkPg0KLTxib2R5Pg0K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPg0KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KLTxz
Y3JpcHQ+DQotDQotZGVzY3JpcHRpb24oIlRlc3QgcmVhZC1vbmx5IHRyYW5zYWN0aW9ucyBpbiBJ
bmRleGVkREIuIik7DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KLQ0KLWZ1bmN0aW9uIHRlc3QoKQ0K
LXsNCi0gICAgc2hvdWxkQmVUcnVlKCInd2Via2l0SW5kZXhlZERCJyBpbiB3aW5kb3ciKTsNCi0g
ICAgc2hvdWxkQmVGYWxzZSgid2Via2l0SW5kZXhlZERCID09IG51bGwiKTsNCi0NCi0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1yZWFk
LW9ubHknKSIpOw0KLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOw0KLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsNCi19DQotDQotZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQ0KLXsNCi0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7DQotICAg
IHdpbmRvdy5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOw0KLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAx
JykiKTsNCi0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOw0KLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsNCi19DQotDQotZnVuY3Rpb24g
Y2xlYW5EYXRhYmFzZSgpDQotew0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOw0KLQ0K
LSAgICBldmVudC50YXJnZXQucmVzdWx0Lm9uY29tcGxldGUgPSBzZXRWZXJzaW9uRG9uZTsNCi0g
ICAgZXZlbnQudGFyZ2V0LnJlc3VsdC5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7
DQotICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKSIpOw0KLSAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoJ3gnLCAneScpIik7DQotfQ0K
LQ0KLWZ1bmN0aW9uIHNldFZlcnNpb25Eb25lKCkNCi17DQotICAgIHRyYW5zID0gZXZhbEFuZExv
ZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbigpIik7DQotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oInRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCgnYScsICdiJykiLCAid2Via2l0SURC
RGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOw0KLQ0KLSAgICB0cmFucyA9IGV2YWxB
bmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oKSIpOw0KLSAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJ0cmFucy5vYmplY3RTdG9yZSgnc3RvcmUnKS5kZWxldGUoJ3gnKSIsICJ3ZWJraXRJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSIik7DQotDQotICAgIHRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbigpIik7DQotICAgIGN1ciA9IGV2YWxBbmRM
b2coImN1ciA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKSIpOw0KLSAg
ICBjdXIub25zdWNjZXNzID0gZ290Q3Vyc29yOw0KLSAgICBjdXIub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOw0KLX0NCi0NCi1mdW5jdGlvbiBnb3RDdXJzb3IoKQ0KLXsNCi0gICAg
c2hvdWxkQmVGYWxzZSgiIWV2ZW50LnRhcmdldC5yZXN1bHQiKTsNCi0gICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZXZlbnQudGFyZ2V0LnJlc3VsdC5kZWxldGUoKSIsICJ3ZWJraXRJREJEYXRh
YmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSIik7DQotDQotICAgIGRvbmUoKTsNCi19DQotDQot
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7DQotDQotdGVzdCgpOw0KLQ0KLTwvc2NyaXB0
Pg0KLTwvYm9keT4NCi08L2h0bWw+DQorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qt
ZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgcmVh
ZC1vbmx5IHRyYW5zYWN0aW9ucyBpbiBJbmRleGVkREIuIik7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgc2hvdWxkQmVUcnVlKCInd2Via2l0SW5kZXhlZERC
JyBpbiB3aW5kb3ciKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ3ZWJraXRJbmRleGVkREIgPT0gbnVs
bCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4ZWREQi5vcGVuKCd0
cmFuc2FjdGlvbi1yZWFkLW9ubHknKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1
Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToi
KTsKKyAgICB3aW5kb3cuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVy
c2lvbiAxJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IGNsZWFuRGF0YWJhc2UoKQoreworICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisKKyAg
ICBldmVudC50YXJnZXQucmVzdWx0Lm9uY29tcGxldGUgPSBzZXRWZXJzaW9uRG9uZTsKKyAgICBl
dmVudC50YXJnZXQucmVzdWx0Lm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAg
ICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
JykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoJ3gnLCAneScpIik7Cit9CisKK2Z1bmN0
aW9uIHNldFZlcnNpb25Eb25lKCkKK3sKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0
cmFucy5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoJ2EnLCAnYicpIiwgIndlYmtpdElEQkRhdGFi
YXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKworICAgIHRyYW5zID0gZXZhbEFuZExvZygi
dHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnKSIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oInRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpLmRlbGV0ZSgneCcpIiwgIndlYmtpdElE
QkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiKTsKKworICAgIHRyYW5zID0gZXZhbEFu
ZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnKSIpOworICAgIGN1ciA9IGV2YWxB
bmRMb2coImN1ciA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKSIpOwor
ICAgIGN1ci5vbnN1Y2Nlc3MgPSBnb3RDdXJzb3I7CisgICAgY3VyLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZ290Q3Vyc29yKCkKK3sKKyAgICBzaG91
bGRCZUZhbHNlKCIhZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImV2ZW50LnRhcmdldC5yZXN1bHQuZGVsZXRlKCkiLCAid2Via2l0SURCRGF0YWJhc2VF
eGNlcHRpb24uUkVBRF9PTkxZX0VSUiIpOworCisgICAgZG9uZSgpOworfQorCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0
b3JlTmFtZXMtcmVxdWlyZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjIgQEAKK1Rlc3QgSW5kZXhlZERCOiB0cmFuc2FjdGlvbiBzdG9yZU5hbWVzIHJl
cXVpcmVkIGFyZ3VtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhl
ZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRv
dy5tb3pJbmRleGVkREI7CitQQVNTIGluZGV4ZWREQiA9PSBudWxsIGlzIGZhbHNlCitJREJEYXRh
YmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5JREJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Vi
a2l0SURCRGF0YWJhc2VFeGNlcHRpb247CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51
bGwgaXMgZmFsc2UKK0lEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3IgfHwgd2luZG93LndlYmtp
dElEQkN1cnNvcjsKK1BBU1MgSURCQ3Vyc29yID09IG51bGwgaXMgZmFsc2UKK0lEQktleVJhbmdl
ID0gd2luZG93LklEQktleVJhbmdlIHx8IHdpbmRvdy53ZWJraXRJREJLZXlSYW5nZTsKK1BBU1Mg
SURCS2V5UmFuZ2UgPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3Jp
cHRpb24pCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitQQVNTIGRiLnRyYW5zYWN0aW9uKCk7
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiB0cmFuc2FjdGlvbiBzdG9yZU5hbWVzIHJl
cXVpcmVkIGFyZ3VtZW50cyIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIGluZGV4ZWREQiA9IGV2YWxBbmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRl
eGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIp
OworICAgIHNob3VsZEJlRmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7CisgICAgSURCRGF0YWJh
c2VFeGNlcHRpb24gPSBldmFsQW5kTG9nKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5J
REJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCIpOwor
ICAgIElEQkN1cnNvciA9IGV2YWxBbmRMb2coIklEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3Ig
fHwgd2luZG93LndlYmtpdElEQkN1cnNvcjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJDdXJz
b3IgPT0gbnVsbCIpOworICAgIElEQktleVJhbmdlID0gZXZhbEFuZExvZygiSURCS2V5UmFuZ2Ug
PSB3aW5kb3cuSURCS2V5UmFuZ2UgfHwgd2luZG93LndlYmtpdElEQktleVJhbmdlOyIpOworICAg
IHNob3VsZEJlRmFsc2UoIklEQktleVJhbmdlID09IG51bGwiKTsKKworICAgIG5hbWUgPSB3aW5k
b3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAgZGVzY3JpcHRpb24gPSAiTXkgVGVzdCBEYXRhYmFz
ZSI7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2Ny
aXB0aW9uKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9w
ZW5TdWNjZXNzKCkKK3sKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2Jq
ZWN0U3RvcmU7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQoreworICAgIGRl
bGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisKKyAgICBzaG91bGRUaHJvdygiZGIudHJhbnNhY3Rp
b24oKTsiKTsKKyAgICBkb25lKCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtbnVsbC1u
YW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA4OTM5NykKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
Y3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTExLDkgKzExLDggQEAgaW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRpb24pCiBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKIHJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKIERlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi1FeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRl
T2JqZWN0U3RvcmUobnVsbCk7Ci1QQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgotUEFTUyBjb2Rl
IGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSCitvYmplY3RTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOworUEFTUyBvYmplY3RTdG9yZS5uYW1lIGlzICdu
dWxsJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3Rz
dG9yZS1udWxsLW5hbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbAkocmV2aXNp
b24gODkzOTcpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0
ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgs
OCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsKICAgICBkZWxldGVBbGxPYmplY3RTdG9y
ZXMoZGIpOwogCi0gICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3Rv
cmUobnVsbCk7IiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSIik7Cisg
ICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKG51bGwpOyIpOworICAgIHNob3VsZEJlKCJvYmplY3RTdG9yZS5uYW1lIiwgIidudWxs
JyIpOwogCiAgICAgZG9uZSgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>