<?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>67506</bug_id>
          
          <creation_ts>2011-09-02 10:56:16 -0700</creation_ts>
          <short_desc>Web Inspector: [Extensions API] expose console API</short_desc>
          <delta_ts>2011-09-07 08:10:42 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>kbalazs</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461326</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-02 10:56:16 -0700</bug_when>
    <thetext>This adds an API module to fetch and add console messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461335</commentid>
    <comment_count>1</comment_count>
      <attachid>106157</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-02 11:02:17 -0700</bug_when>
    <thetext>Created attachment 106157
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462036</commentid>
    <comment_count>2</comment_count>
      <attachid>106157</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-04 23:00:18 -0700</bug_when>
    <thetext>Comment on attachment 106157
patch

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

Lets first agree on what is the console message for formatted console records and evaluation results. Otherwise looks good.

&gt; LayoutTests/inspector/extensions/extensions-api-expected.txt:86
&gt; +        MessageLevel : {

Severity ?

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:449
&gt; +        return this._messageText;

Real text is formatted asynchronously, what text do you expect to return for console.log(&quot;Foo %s&quot;, document) ?

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:454
&gt; +        return this._parameters;

Parameters are object wrappers that are not exposed to the user.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462131</commentid>
    <comment_count>3</comment_count>
      <attachid>106326</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-05 05:54:50 -0700</bug_when>
    <thetext>Created attachment 106326
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462133</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-05 05:56:34 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 106157 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106157&amp;action=review
&gt; 
&gt; Lets first agree on what is the console message for formatted console records and evaluation results. Otherwise looks good.
&gt; 
&gt; &gt; LayoutTests/inspector/extensions/extensions-api-expected.txt:86
&gt; &gt; +        MessageLevel : {
&gt; 
&gt; Severity ?

Renamed to MessageSeverity (although we use level internally)

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:449
&gt; &gt; +        return this._messageText;
&gt; 
&gt; Real text is formatted asynchronously, what text do you expect to return for console.log(&quot;Foo %s&quot;, document) ?
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:454
&gt; &gt; +        return this._parameters;
&gt; 
&gt; Parameters are object wrappers that are not exposed to the user.

As discussed offline, dropped parameters altogether for the first version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462705</commentid>
    <comment_count>5</comment_count>
      <attachid>106326</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-06 11:48:17 -0700</bug_when>
    <thetext>Comment on attachment 106326
patch

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

&gt; LayoutTests/inspector/extensions/extensions-api-expected.txt:86
&gt; +        MessageSeverity : {

I&apos;d do simply Severity. It is in either case under console.

&gt; Source/WebCore/inspector/front-end/ExtensionServer.js:-429
&gt; -        // The networkManager is normally created after the ExtensionServer is constructed, but before initExtensions() is called.

This is going against the performance effort we are currently focusing on. Specifically, this will do something upon every console message no matter whether there are extensions interested in this type of event. Probably need to resolve it for all the notifications below. r- for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463298</commentid>
    <comment_count>6</comment_count>
      <attachid>106572</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-07 04:59:45 -0700</bug_when>
    <thetext>Created attachment 106572
patch

- subscribe to front-end events only when an extension subscribes to a related event
- MessageSeverity -&gt; Severity</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463302</commentid>
    <comment_count>7</comment_count>
      <attachid>106572</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-07 05:11:44 -0700</bug_when>
    <thetext>Comment on attachment 106572
patch

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

&gt; LayoutTests/http/tests/inspector/resources/extension-main.js:24
&gt;          else if (typeof propValue === &quot;object&quot;)

typeof === &quot;object&quot; &amp;&amp; propValue !== null will make undefined and null fall to under latest else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463341</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-09-07 07:40:48 -0700</bug_when>
    <thetext>The new test fails on Qt:
-extensions-console.html:50console.trace()logextensions-console.html:50 console-message console-log-level
+extensions-console.html:50console.trace()logextensions-console.html:50onloadextensions-console.html:57 console-message console-log-level

Do you think it&apos;s normal to have platform specific results for the test? If yes, we can simply update the qt expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463342</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-07 07:43:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; The new test fails on Qt:
&gt; -extensions-console.html:50console.trace()logextensions-console.html:50 console-message console-log-level
&gt; +extensions-console.html:50console.trace()logextensions-console.html:50onloadextensions-console.html:57 console-message console-log-level
&gt; 
&gt; Do you think it&apos;s normal to have platform specific results for the test? If yes, we can simply update the qt expectation.

I think I&apos;d rather drop trace() from the test -- it doesn&apos;t add that much value, so we can sacrifice it to avoid custom expectations. I&apos;ll take care of this, just waiting few more minutes for runs on other platforms to complete, to see if there may be other surprises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463353</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-07 08:10:42 -0700</bug_when>
    <thetext>Manually committed r94666: http://trac.webkit.org/changeset/94666</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106157</attachid>
            <date>2011-09-02 11:02:17 -0700</date>
            <delta_ts>2011-09-05 05:54:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>console.diff</filename>
            <type>text/plain</type>
            <size>25274</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NTMwZTE1Li45OWVmODc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MDIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGV4cG9zZSBjb25zb2xlIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTAxICBUYWthc2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbV2ViU29ja2V0XSBJbXBsZW1lbnQgV2ViU29ja2V0OjpjbG9zZSgpIGNv
ZGUgYW5kIHJlYXNvbiBoYW5kbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qcwppbmRleCBhMjc4
NDExLi4xMTIyZmM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmpzCkBAIC0xMywxMSArMTMsMTQg
QEAgZnVuY3Rpb24gZHVtcE9iamVjdChvYmplY3QsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJl
Zml4LCBmaXJzdExpbmVQcmVmaXgpCiAgICAgZm9yICh2YXIgcHJvcCBpbiBvYmplY3QpIHsKICAg
ICAgICAgdmFyIHByZWZpeFdpdGhOYW1lID0gcHJlZml4ICsgIiAgICAiICsgcHJvcCArICIgOiAi
OwogICAgICAgICB2YXIgcHJvcFZhbHVlID0gb2JqZWN0W3Byb3BdOwotICAgICAgICBpZiAobm9u
ZGV0ZXJtaW5pc3RpY1Byb3BzICYmIHByb3AgaW4gbm9uZGV0ZXJtaW5pc3RpY1Byb3BzKSB7Cisg
ICAgICAgIGlmIChwcm9wVmFsdWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIG91dHB1dChw
cmVmaXhXaXRoTmFtZSArICJ1bmRlZmluZWQiKTsKKyAgICAgICAgZWxzZSBpZiAocHJvcFZhbHVl
ID09PSBudWxsKQorICAgICAgICAgICAgb3V0cHV0KHByZWZpeFdpdGhOYW1lICsgIm51bGwiKTsK
KyAgICAgICAgZWxzZSBpZiAobm9uZGV0ZXJtaW5pc3RpY1Byb3BzICYmIHByb3AgaW4gbm9uZGV0
ZXJtaW5pc3RpY1Byb3BzKSB7CiAgICAgICAgICAgICB2YXIgdmFsdWUgPSBub25kZXRlcm1pbmlz
dGljUHJvcHNbcHJvcF0gPT09ICJ1cmwiID8gdHJpbVVSTChwcm9wVmFsdWUpIDogIjwiICsgdHlw
ZW9mIHByb3BWYWx1ZSArICI+IjsKICAgICAgICAgICAgIG91dHB1dChwcmVmaXhXaXRoTmFtZSAr
IHZhbHVlKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcm9wVmFsdWUgPT09IG51bGwpCi0gICAgICAg
ICAgICBvdXRwdXQocHJlZml4V2l0aE5hbWUgKyAibnVsbCIpOworICAgICAgICB9CiAgICAgICAg
IGVsc2UgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICJvYmplY3QiKQogICAgICAgICAgICAgZHVt
cE9iamVjdChwcm9wVmFsdWUsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJlZml4ICsgIiAgICAi
LCBwcmVmaXhXaXRoTmFtZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09
ICJzdHJpbmciKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CmluZGV4IGI0NDRlMmUuLjllYTU4ODMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
YXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKQEAgLTc2LDYgKzc2LDIxIEBAIFJVTk5JTkcgVEVT
VDogZXh0ZW5zaW9uX3Rlc3RBUEkKICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0
aW9uPgogICAgICAgICB9CiAgICAgfQorICAgIGNvbnNvbGUgOiB7CisgICAgICAgIG9uTWVzc2Fn
ZUFkZGVkIDogeworICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CisgICAgICAg
ICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KKyAgICAgICAgfQorICAgICAgICBnZXRN
ZXNzYWdlcyA6IDxmdW5jdGlvbj4KKyAgICAgICAgYWRkTWVzc2FnZSA6IDxmdW5jdGlvbj4KKyAg
ICAgICAgTWVzc2FnZUxldmVsIDogeworICAgICAgICAgICAgVGlwIDogInRpcCIKKyAgICAgICAg
ICAgIERlYnVnIDogImRlYnVnIgorICAgICAgICAgICAgTG9nIDogImxvZyIKKyAgICAgICAgICAg
IFdhcm5pbmcgOiAid2FybmluZyIKKyAgICAgICAgICAgIEVycm9yIDogImVycm9yIgorICAgICAg
ICB9CisgICAgfQogICAgIG9uUmVzZXQgOiB7CiAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0
aW9uPgogICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtY29uc29sZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNv
bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyODRh
MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLWNvbnNvbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIxIEBACitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNDY6IGxvZyBtZXNzYWdlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDc6
IGRlYnVnIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogd2FybmluZyBtZXNzYWdl
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IGVycm9yIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA1MDogdHJhY2UgbWVzc2FnZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUxOiBsb2cg
bWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6
ICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTI6IGxvZyBtZXNzYWdlIHdpdGggdHdvIHBhcmFt
ZXRlcnMsIGFuIGFycmF5OiAlTyBhbmQgYW4gb2JqZWN0OiAlTworQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE6IGxvZyBtZXNzYWdlIGZyb20gZXZhbHVhdGVkIGNvZGUKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSA0NjogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogZGVidWcgbWVz
c2FnZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4OiB3YXJuaW5nIG1lc3NhZ2UKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA0OTogZXJyb3IgbWVzc2FnZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUw
OiB0cmFjZSBtZXNzYWdlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTE6IGxvZyBtZXNzYWdlIHdp
dGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVkIGFuZCBhIHN0cmluZzogJXMKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA1MjogbG9nIG1lc3NhZ2Ugd2l0aCB0d28gcGFyYW1ldGVycywgYW4g
YXJyYXk6ICVPIGFuZCBhbiBvYmplY3Q6ICVPCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogbG9n
IG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZQorVGVzdHMgbWV0aG9kcyBvZiB3ZWJJbnNwZWN0
b3IuY29uc29sZSBleHRlbnNpb24gQVBJCisKK1N0YXJ0ZWQgZXh0ZW5zaW9uLgorUnVubmluZyB0
ZXN0cy4uLgorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEFkZENvbnNvbGVNZXNzYWdlcwor
ZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NDZsb2cgbWVzc2FnZSBjb25zb2xlLW1lc3NhZ2UgY29u
c29sZS1sb2ctbGV2ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5odG1sOjQ3ZGVidWcgbWVzc2FnZSBj
b25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5odG1s
OjQ4d2FybmluZyBtZXNzYWdlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLXdhcm5pbmctbGV2ZWwK
K2V4dGVuc2lvbnMtY29uc29sZS5odG1sOjQ5ZXJyb3IgbWVzc2FnZSBjb25zb2xlLW1lc3NhZ2Ug
Y29uc29sZS1lcnJvci1sZXZlbAorZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NTBjb25zb2xlLnRy
YWNlKClsb2dleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo1MCBjb25zb2xlLW1lc3NhZ2UgY29uc29s
ZS1sb2ctbGV2ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5odG1sOjUxbG9nIG1lc3NhZ2Ugd2l0aCB0
d28gcGFyYW1ldGVycywgYW4gaW50ZWdlcjogNDIgYW5kIGEgc3RyaW5nOiBmb28gY29uc29sZS1t
ZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCitleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo1MmxvZyBt
ZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGFycmF5OiBBcnJheVszXSBhbmQgYW4gb2Jq
ZWN0OiBPYmplY3QgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCitsb2cgbWVzc2Fn
ZSBmcm9tIGV2YWx1YXRlZCBjb2RlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAor
ZGVidWcgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1kZWJ1
Zy1sZXZlbAordGVzdC11cmwuaHRtbDo0MmxvZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIGNvbnNv
bGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAord2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5z
aW9uIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLXdhcm5pbmctbGV2ZWwKK2Vycm9yIG1lc3NhZ2Ug
ZnJvbSBleHRlbnNpb24gY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKK1JVTk5J
TkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRDb25zb2xlTWVzc2FnZXMKK3sKKyAgICAwIDogewor
ICAgICAgICBsZXZlbCA6ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2UiCisgICAg
ICAgIHBhcmFtZXRlcnMgOiB7CisgICAgICAgIH0KKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lv
bnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA0NgorICAgIH0KKyAgICAxIDogeworICAg
ICAgICBsZXZlbCA6ICJsb2ciCisgICAgICAgIHRleHQgOiAiZGVidWcgbWVzc2FnZSIKKyAgICAg
ICAgcGFyYW1ldGVycyA6IHsKKyAgICAgICAgfQorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9u
cy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6IDQ3CisgICAgfQorICAgIDIgOiB7CisgICAg
ICAgIGxldmVsIDogIndhcm5pbmciCisgICAgICAgIHRleHQgOiAid2FybmluZyBtZXNzYWdlIgor
ICAgICAgICBwYXJhbWV0ZXJzIDogeworICAgICAgICB9CisgICAgICAgIHVybCA6IC4uLi9leHRl
bnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNDgKKyAgICB9CisgICAgMyA6IHsK
KyAgICAgICAgbGV2ZWwgOiAiZXJyb3IiCisgICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSIK
KyAgICAgICAgcGFyYW1ldGVycyA6IHsKKyAgICAgICAgfQorICAgICAgICB1cmwgOiAuLi4vZXh0
ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6IDQ5CisgICAgfQorICAgIDQgOiB7
CisgICAgICAgIGxldmVsIDogImxvZyIKKyAgICAgICAgdGV4dCA6ICJ0cmFjZSBtZXNzYWdlIgor
ICAgICAgICBwYXJhbWV0ZXJzIDogeworICAgICAgICAgICAgMCA6IHVuZGVmaW5lZAorICAgICAg
ICB9CisgICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBs
aW5lIDogNTAKKyAgICB9CisgICAgNSA6IHsKKyAgICAgICAgbGV2ZWwgOiAibG9nIgorICAgICAg
ICB0ZXh0IDogImxvZyBtZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVk
IGFuZCBhIHN0cmluZzogJXMiCisgICAgICAgIHBhcmFtZXRlcnMgOiB7CisgICAgICAgICAgICAw
IDogIjQyIgorICAgICAgICAgICAgMSA6ICJmb28iCisgICAgICAgIH0KKyAgICAgICAgdXJsIDog
Li4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA1MQorICAgIH0KKyAg
ICA2IDogeworICAgICAgICBsZXZlbCA6ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3Nh
Z2Ugd2l0aCB0d28gcGFyYW1ldGVycywgYW4gYXJyYXk6ICVPIGFuZCBhbiBvYmplY3Q6ICVPIgor
ICAgICAgICBwYXJhbWV0ZXJzIDogeworICAgICAgICAgICAgMCA6ICJBcnJheVszXSIKKyAgICAg
ICAgICAgIDEgOiAiT2JqZWN0IgorICAgICAgICB9CisgICAgICAgIHVybCA6IC4uLi9leHRlbnNp
b25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNTIKKyAgICB9CisgICAgNyA6IHsKKyAg
ICAgICAgbGV2ZWwgOiAibG9nIgorICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdlIGZyb20gZXZh
bHVhdGVkIGNvZGUiCisgICAgICAgIHBhcmFtZXRlcnMgOiB7CisgICAgICAgIH0KKyAgICAgICAg
dXJsIDogCisgICAgICAgIGxpbmUgOiAxCisgICAgfQorICAgIDggOiB7CisgICAgICAgIGxldmVs
IDogImRlYnVnIgorICAgICAgICB0ZXh0IDogImRlYnVnIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24i
CisgICAgICAgIHBhcmFtZXRlcnMgOiBudWxsCisgICAgICAgIHVybCA6IHVuZGVmaW5lZAorICAg
ICAgICBsaW5lIDogdW5kZWZpbmVkCisgICAgfQorICAgIDkgOiB7CisgICAgICAgIGxldmVsIDog
ImxvZyIKKyAgICAgICAgdGV4dCA6ICJsb2cgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIKKyAgICAg
ICAgcGFyYW1ldGVycyA6IG51bGwKKyAgICAgICAgdXJsIDogdGVzdC11cmwuaHRtbAorICAgICAg
ICBsaW5lIDogNDIKKyAgICB9CisgICAgMTAgOiB7CisgICAgICAgIGxldmVsIDogIndhcm5pbmci
CisgICAgICAgIHRleHQgOiAid2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIgorICAgICAg
ICBwYXJhbWV0ZXJzIDogbnVsbAorICAgICAgICB1cmwgOiB1bmRlZmluZWQKKyAgICAgICAgbGlu
ZSA6IHVuZGVmaW5lZAorICAgIH0KKyAgICAxMSA6IHsKKyAgICAgICAgbGV2ZWwgOiAiZXJyb3Ii
CisgICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIKKyAgICAgICAg
cGFyYW1ldGVycyA6IG51bGwKKyAgICAgICAgdXJsIDogbnVsbAorICAgICAgICBsaW5lIDogNDIK
KyAgICB9Cit9CitSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0T25Db25zb2xlTWVzc2FnZUFk
ZGVkCit7CisgICAgMCA6IHsKKyAgICAgICAgbGV2ZWwgOiAibG9nIgorICAgICAgICB0ZXh0IDog
ImxvZyBtZXNzYWdlIgorICAgICAgICBwYXJhbWV0ZXJzIDogeworICAgICAgICB9CisgICAgICAg
IHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNDYKKyAg
ICB9Cit9Cit7CisgICAgMCA6IHsKKyAgICAgICAgbGV2ZWwgOiAibG9nIgorICAgICAgICB0ZXh0
IDogImRlYnVnIG1lc3NhZ2UiCisgICAgICAgIHBhcmFtZXRlcnMgOiB7CisgICAgICAgIH0KKyAg
ICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA0
NworICAgIH0KK30KK3sKKyAgICAwIDogeworICAgICAgICBsZXZlbCA6ICJ3YXJuaW5nIgorICAg
ICAgICB0ZXh0IDogIndhcm5pbmcgbWVzc2FnZSIKKyAgICAgICAgcGFyYW1ldGVycyA6IHsKKyAg
ICAgICAgfQorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAg
ICAgbGluZSA6IDQ4CisgICAgfQorfQoreworICAgIDAgOiB7CisgICAgICAgIGxldmVsIDogImVy
cm9yIgorICAgICAgICB0ZXh0IDogImVycm9yIG1lc3NhZ2UiCisgICAgICAgIHBhcmFtZXRlcnMg
OiB7CisgICAgICAgIH0KKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1s
CisgICAgICAgIGxpbmUgOiA0OQorICAgIH0KK30KK3sKKyAgICAwIDogeworICAgICAgICBsZXZl
bCA6ICJsb2ciCisgICAgICAgIHRleHQgOiAidHJhY2UgbWVzc2FnZSIKKyAgICAgICAgcGFyYW1l
dGVycyA6IHsKKyAgICAgICAgICAgIDAgOiB1bmRlZmluZWQKKyAgICAgICAgfQorICAgICAgICB1
cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6IDUwCisgICAg
fQorfQoreworICAgIDAgOiB7CisgICAgICAgIGxldmVsIDogImxvZyIKKyAgICAgICAgdGV4dCA6
ICJsb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBz
dHJpbmc6ICVzIgorICAgICAgICBwYXJhbWV0ZXJzIDogeworICAgICAgICAgICAgMCA6ICI0MiIK
KyAgICAgICAgICAgIDEgOiAiZm9vIgorICAgICAgICB9CisgICAgICAgIHVybCA6IC4uLi9leHRl
bnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNTEKKyAgICB9Cit9Cit7CisgICAg
MCA6IHsKKyAgICAgICAgbGV2ZWwgOiAibG9nIgorICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdl
IHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGFycmF5OiAlTyBhbmQgYW4gb2JqZWN0OiAlTyIKKyAg
ICAgICAgcGFyYW1ldGVycyA6IHsKKyAgICAgICAgICAgIDAgOiAiQXJyYXlbM10iCisgICAgICAg
ICAgICAxIDogIk9iamVjdCIKKyAgICAgICAgfQorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9u
cy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6IDUyCisgICAgfQorfQoreworICAgIDAgOiB7
CisgICAgICAgIGxldmVsIDogImxvZyIKKyAgICAgICAgdGV4dCA6ICJsb2cgbWVzc2FnZSBmcm9t
IGV2YWx1YXRlZCBjb2RlIgorICAgICAgICBwYXJhbWV0ZXJzIDogeworICAgICAgICB9CisgICAg
ICAgIHVybCA6IAorICAgICAgICBsaW5lIDogMQorICAgIH0KK30KK0FsbCB0ZXN0cyBkb25lLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWNvbnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtY29uc29sZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMzE1
NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLWNvbnNvbGUuaHRtbApAQCAtMCwwICsxLDYyIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRDb25zb2xlTWVzc2Fn
ZXMobmV4dFRlc3QpCit7CisgICAgZnVuY3Rpb24gY2FsbGJhY2sobWVzc2FnZXMpCisgICAgewor
ICAgICAgICBkdW1wT2JqZWN0KG1lc3NhZ2VzLCB7IHVybDogInVybCIgfSk7CisgICAgfQorICAg
IHdlYkluc3BlY3Rvci5jb25zb2xlLmdldE1lc3NhZ2VzKGNhbGxiYWNrQW5kTmV4dFRlc3QoY2Fs
bGJhY2ssIG5leHRUZXN0KSk7CisKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RBZGRDb25z
b2xlTWVzc2FnZXMobmV4dFRlc3QpCit7CisgICAgd2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVz
c2FnZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5NZXNzYWdlTGV2ZWwuRGVidWcsICJkZWJ1ZyBtZXNz
YWdlIGZyb20gZXh0ZW5zaW9uIik7CisgICAgd2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2Fn
ZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5NZXNzYWdlTGV2ZWwuTG9nLCAibG9nIG1lc3NhZ2UgZnJv
bSBleHRlbnNpb24iLCAidGVzdC11cmwuaHRtbCIsIDQyKTsKKyAgICB3ZWJJbnNwZWN0b3IuY29u
c29sZS5hZGRNZXNzYWdlKHdlYkluc3BlY3Rvci5jb25zb2xlLk1lc3NhZ2VMZXZlbC5XYXJuaW5n
LCAid2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIik7CisgICAgd2ViSW5zcGVjdG9yLmNv
bnNvbGUuYWRkTWVzc2FnZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5NZXNzYWdlTGV2ZWwuRXJyb3Is
ICJlcnJvciBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIiwgbnVsbCwgNDIpOworICAgIGV2YWx1YXRl
T25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMo
KTsgcmVwbHkoKTsiLCBuZXh0VGVzdCkKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPbkNv
bnNvbGVNZXNzYWdlQWRkZWQobmV4dFRlc3QpCit7CisgICAgdmFyIGV4cGVjdGVkTWVzc2FnZXMg
PSA4OworCisgICAgZnVuY3Rpb24gb25NZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgICAgICBk
dW1wT2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCksIHsgdXJs
OiAidXJsIiB9KTsKKyAgICAgICAgaWYgKCEtLWV4cGVjdGVkTWVzc2FnZXMpIHsKKyAgICAgICAg
ICAgIHdlYkluc3BlY3Rvci5jb25zb2xlLm9uTWVzc2FnZUFkZGVkLnJlbW92ZUxpc3RlbmVyKG9u
TWVzc2FnZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9CisgICAgfQorICAg
IHdlYkluc3BlY3Rvci5jb25zb2xlLm9uTWVzc2FnZUFkZGVkLmFkZExpc3RlbmVyKG9uTWVzc2Fn
ZSk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJsb2coKTsiKTsKK30K
KworZnVuY3Rpb24gbG9nKCkKK3sKKyAgICBjb25zb2xlLmxvZygibG9nIG1lc3NhZ2UiKTsKKyAg
ICBjb25zb2xlLmRlYnVnKCJkZWJ1ZyBtZXNzYWdlIik7CisgICAgY29uc29sZS53YXJuKCJ3YXJu
aW5nIG1lc3NhZ2UiKTsKKyAgICBjb25zb2xlLmVycm9yKCJlcnJvciBtZXNzYWdlIik7CisgICAg
Y29uc29sZS50cmFjZSgidHJhY2UgbWVzc2FnZSIpOworICAgIGNvbnNvbGUubG9nKCJsb2cgbWVz
c2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVz
IiwgNDIsICJmb28iKTsKKyAgICBjb25zb2xlLmxvZygibG9nIG1lc3NhZ2Ugd2l0aCB0d28gcGFy
YW1ldGVycywgYW4gYXJyYXk6ICVPIGFuZCBhbiBvYmplY3Q6ICVPIiwgWzEsIDIsIDNdLCB7IGZv
bzogImJhciIgfSk7CisgICAgZXZhbCgiY29uc29sZS5sb2coJ2xvZyBtZXNzYWdlIGZyb20gZXZh
bHVhdGVkIGNvZGUnKSIpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
bG9nKCk7IHJ1blRlc3QoKSI+Cis8cD5UZXN0cyBtZXRob2RzIG9mIHdlYkluc3BlY3Rvci5jb25z
b2xlIGV4dGVuc2lvbiBBUEk8L3A+Cis8ZGl2IGlkPSJ0ZXN0LWRpdiIgY2xhc3M9InRlc3QiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU5Mzc2OTEuLjAwMTg4YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMS0wOS0wMiAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNpb25z
IEFQSV0gZXhwb3NlIGNvbnNvbGUgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzUwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtY29u
c29sZS5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdl
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5nZXQg
dGV4dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLmdl
dCBwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQ
SS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5JbnNwZWN0
b3JFeHRlbnNpb25BUEkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9u
QVBJKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5Db25zb2xl
LnByb3RvdHlwZS5nZXRNZXNzYWdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRF
eHRlbnNpb25BUEkuQ29uc29sZS5wcm90b3R5cGUuYWRkTWVzc2FnZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuQ29uc29sZS5wcm90b3R5cGUuZ2V0IE1lc3Nh
Z2VMZXZlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuTmV0
d29yay5kaXNwYXRjaFJlcXVlc3RFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0
ZWRFeHRlbnNpb25BUEkuTmV0d29yayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRF
eHRlbnNpb25BUEkuQXVkaXRDYXRlZ29yeUltcGwuZGlzcGF0Y2hBdWRpdEV2ZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5BdWRpdENhdGVnb3J5SW1wbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuSW5zcGVjdGVkV2lu
ZG93LmRpc3BhdGNoUmVzb3VyY2VFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0
ZWRFeHRlbnNpb25BUEkuSW5zcGVjdGVkV2luZG93LmRpc3BhdGNoUmVzb3VyY2VDb250ZW50RXZl
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkluc3BlY3Rl
ZFdpbmRvdyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24u
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY29tbW9uRXh0ZW5zaW9uU3ltYm9scyk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRl
bnNpb25TZXJ2ZXIucHJvdG90eXBlLl9ub3RpZnlDb25zb2xlTWVzc2FnZUFkZGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkdldENvbnNvbGVN
ZXNzYWdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlw
ZS5fb25BZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5fbWFrZUNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9tYWtlQ29uc29sZU1lc3NhZ2UuY29udmVy
dFBhcmFtZXRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3Rv
dHlwZS5fZGlzcGF0Y2hDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5pbml0RXh0ZW5zaW9ucyk6CisKIDIwMTEtMDktMDIgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJBdWRpb10gVW5k
ZWNsYXJlZCBkZXBlbmRlbmN5IHRvIFZJREVPCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCA1MjAzYzdhLi5kODQ2NDg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVN
ZXNzYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZU1lc3NhZ2UuanMKQEAgLTQ0NCw2ICs0NDQsMTYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHNvdXJjZVN0cmluZyArICIgIiArIHR5
cGVTdHJpbmcgKyAiICIgKyBsZXZlbFN0cmluZyArICI6ICIgKyB0aGlzLl9mb3JtYXR0ZWRNZXNz
YWdlLnRleHRDb250ZW50ICsgIlxuIiArIHRoaXMudXJsICsgIiBsaW5lICIgKyB0aGlzLmxpbmU7
CiAgICAgfSwKIAorICAgIGdldCB0ZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9t
ZXNzYWdlVGV4dDsKKyAgICB9LAorCisgICAgZ2V0IHBhcmFtZXRlcnMoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX3BhcmFtZXRlcnM7CisgICAgfSwKKwogICAgIGlzRXF1YWw6IGZ1bmN0
aW9uKG1zZykKICAgICB7CiAgICAgICAgIGlmICghbXNnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwppbmRleCAyMmYyMmQxLi5iMDFk
NTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvbkFQSS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvbkFQSS5qcwpAQCAtOTMsNiArOTMsNyBAQCBmdW5jdGlvbiBJbnNwZWN0b3JFeHRlbnNpb25B
UEkoKQogICAgIHRoaXMubmV0d29yayA9IG5ldyBOZXR3b3JrKCk7CiAgICAgZGVmaW5lRGVwcmVj
YXRlZFByb3BlcnR5KHRoaXMsICJ3ZWJJbnNwZWN0b3IiLCAicmVzb3VyY2VzIiwgIm5ldHdvcmsi
KTsKICAgICB0aGlzLnRpbWVsaW5lID0gbmV3IFRpbWVsaW5lKCk7CisgICAgdGhpcy5jb25zb2xl
ID0gbmV3IENvbnNvbGUoKTsKIAogICAgIHRoaXMub25SZXNldCA9IG5ldyBFdmVudFNpbmsoInJl
c2V0Iik7CiB9CkBAIC0xMDQsMTUgKzEwNSwzNyBAQCBJbnNwZWN0b3JFeHRlbnNpb25BUEkucHJv
dG90eXBlID0gewogICAgIH0KIH0KIAorZnVuY3Rpb24gQ29uc29sZSgpCit7CisgICAgdGhpcy5v
bk1lc3NhZ2VBZGRlZCA9IG5ldyBFdmVudFNpbmsoImNvbnNvbGUtbWVzc2FnZS1hZGRlZCIpOwor
fQorCitDb25zb2xlLnByb3RvdHlwZSA9IHsKKyAgICBnZXRNZXNzYWdlczogZnVuY3Rpb24oY2Fs
bGJhY2spCisgICAgeworICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21t
YW5kOiAiZ2V0Q29uc29sZU1lc3NhZ2VzIiB9LCBjYWxsYmFjayk7CisgICAgfSwKKworICAgIGFk
ZE1lc3NhZ2U6IGZ1bmN0aW9uKGxldmVsLCB0ZXh0LCB1cmwsIGxpbmUpCisgICAgeworICAgICAg
ICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiYWRkQ29uc29sZU1lc3Nh
Z2UiLCBsZXZlbDogbGV2ZWwsIHRleHQ6IHRleHQsIHVybDogdXJsLCBsaW5lOiBsaW5lIH0pOwor
ICAgIH0sCisKKyAgICBnZXQgTWVzc2FnZUxldmVsKCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
cGlQcml2YXRlLmNvbnNvbGUuTWVzc2FnZUxldmVsOworICAgIH0sCit9OworCiBmdW5jdGlvbiBO
ZXR3b3JrKCkKIHsKLSAgICBmdW5jdGlvbiByZXF1ZXN0RGlzcGF0Y2gobWVzc2FnZSkKKyAgICBm
dW5jdGlvbiBkaXNwYXRjaFJlcXVlc3RFdmVudChtZXNzYWdlKQogICAgIHsKICAgICAgICAgdmFy
IHJlcXVlc3QgPSBtZXNzYWdlLmFyZ3VtZW50c1sxXTsKICAgICAgICAgcmVxdWVzdC5fX3Byb3Rv
X18gPSBuZXcgUmVxdWVzdChtZXNzYWdlLmFyZ3VtZW50c1swXSk7CiAgICAgICAgIHRoaXMuX2Zp
cmUocmVxdWVzdCk7CiAgICAgfQotICAgIHRoaXMub25SZXF1ZXN0RmluaXNoZWQgPSBuZXcgRXZl
bnRTaW5rKCJuZXR3b3JrLXJlcXVlc3QtZmluaXNoZWQiLCByZXF1ZXN0RGlzcGF0Y2gpOworICAg
IHRoaXMub25SZXF1ZXN0RmluaXNoZWQgPSBuZXcgRXZlbnRTaW5rKCJuZXR3b3JrLXJlcXVlc3Qt
ZmluaXNoZWQiLCBkaXNwYXRjaFJlcXVlc3RFdmVudCk7CiAgICAgZGVmaW5lRGVwcmVjYXRlZFBy
b3BlcnR5KHRoaXMsICJuZXR3b3JrIiwgIm9uRmluaXNoZWQiLCAib25SZXF1ZXN0RmluaXNoZWQi
KTsKICAgICB0aGlzLm9uTmF2aWdhdGVkID0gbmV3IEV2ZW50U2luaygiaW5zcGVjdGVkVVJMQ2hh
bmdlZCIpOwogfQpAQCAtMjcxLDcgKzI5NCw3IEBAIEF1ZGl0cy5wcm90b3R5cGUgPSB7CiAKIGZ1
bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBsKGlkKQogewotICAgIGZ1bmN0aW9uIGF1ZGl0UmVzdWx0
RGlzcGF0Y2gocmVxdWVzdCkKKyAgICBmdW5jdGlvbiBkaXNwYXRjaEF1ZGl0RXZlbnQocmVxdWVz
dCkKICAgICB7CiAgICAgICAgIHZhciBhdWRpdFJlc3VsdCA9IG5ldyBBdWRpdFJlc3VsdChyZXF1
ZXN0LmFyZ3VtZW50c1swXSk7CiAgICAgICAgIHRyeSB7CkBAIC0yODIsNyArMzA1LDcgQEAgZnVu
Y3Rpb24gQXVkaXRDYXRlZ29yeUltcGwoaWQpCiAgICAgICAgIH0KICAgICB9CiAgICAgdGhpcy5f
aWQgPSBpZDsKLSAgICB0aGlzLm9uQXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQt
c3RhcnRlZC0iICsgaWQsIGF1ZGl0UmVzdWx0RGlzcGF0Y2gpOworICAgIHRoaXMub25BdWRpdFN0
YXJ0ZWQgPSBuZXcgRXZlbnRTaW5rKCJhdWRpdC1zdGFydGVkLSIgKyBpZCwgZGlzcGF0Y2hBdWRp
dEV2ZW50KTsKIH0KIAogZnVuY3Rpb24gQXVkaXRSZXN1bHRJbXBsKGlkKQpAQCAtMzU3LDE2ICsz
ODAsMTYgQEAgQXVkaXRSZXN1bHROb2RlLnByb3RvdHlwZSA9IHsKIAogZnVuY3Rpb24gSW5zcGVj
dGVkV2luZG93KCkKIHsKLSAgICBmdW5jdGlvbiByZXNvdXJjZURpc3BhdGNoKG1lc3NhZ2UpCisg
ICAgZnVuY3Rpb24gZGlzcGF0Y2hSZXNvdXJjZUV2ZW50KG1lc3NhZ2UpCiAgICAgewogICAgICAg
ICB0aGlzLl9maXJlKG5ldyBSZXNvdXJjZShtZXNzYWdlLmFyZ3VtZW50c1swXSkpOwogICAgIH0K
LSAgICBmdW5jdGlvbiByZXNvdXJjZUNvbnRlbnREaXNwYXRjaChtZXNzYWdlKQorICAgIGZ1bmN0
aW9uIGRpc3BhdGNoUmVzb3VyY2VDb250ZW50RXZlbnQobWVzc2FnZSkKICAgICB7CiAgICAgICAg
IHRoaXMuX2ZpcmUobmV3IFJlc291cmNlKG1lc3NhZ2UuYXJndW1lbnRzWzBdKSwgbWVzc2FnZS5h
cmd1bWVudHNbMV0pOwogICAgIH0KLSAgICB0aGlzLm9uUmVzb3VyY2VBZGRlZCA9IG5ldyBFdmVu
dFNpbmsoInJlc291cmNlLWFkZGVkIiwgcmVzb3VyY2VEaXNwYXRjaCk7Ci0gICAgdGhpcy5vblJl
c291cmNlQ29udGVudENvbW1pdHRlZCA9IG5ldyBFdmVudFNpbmsoInJlc291cmNlLWNvbnRlbnQt
Y29tbWl0dGVkIiwgcmVzb3VyY2VDb250ZW50RGlzcGF0Y2gpOworICAgIHRoaXMub25SZXNvdXJj
ZUFkZGVkID0gbmV3IEV2ZW50U2luaygicmVzb3VyY2UtYWRkZWQiLCBkaXNwYXRjaFJlc291cmNl
RXZlbnQpOworICAgIHRoaXMub25SZXNvdXJjZUNvbnRlbnRDb21taXR0ZWQgPSBuZXcgRXZlbnRT
aW5rKCJyZXNvdXJjZS1jb250ZW50LWNvbW1pdHRlZCIsIGRpc3BhdGNoUmVzb3VyY2VDb250ZW50
RXZlbnQpOwogfQogCiBJbnNwZWN0ZWRXaW5kb3cucHJvdG90eXBlID0gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24uanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qcwppbmRl
eCA4MDM0MDAxLi44ZWEwMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qcwpAQCAtMzksNiArMzksMTYgQEAgV2ViSW5z
cGVjdG9yLmNvbW1vbkV4dGVuc2lvblN5bWJvbHMgPSBmdW5jdGlvbihhcGlQcml2YXRlKQogICAg
ICAgICBXYXJuaW5nOiAid2FybmluZyIsCiAgICAgICAgIFNldmVyZTogInNldmVyZSIKICAgICB9
OworCisgICAgaWYgKCFhcGlQcml2YXRlLmNvbnNvbGUpCisgICAgICAgIGFwaVByaXZhdGUuY29u
c29sZSA9IHt9OworICAgIGFwaVByaXZhdGUuY29uc29sZS5NZXNzYWdlTGV2ZWwgPSB7CisgICAg
ICAgIFRpcDogInRpcCIsCisgICAgICAgIERlYnVnOiAiZGVidWciLAorICAgICAgICBMb2c6ICJs
b2ciLAorICAgICAgICBXYXJuaW5nOiAid2FybmluZyIsCisgICAgICAgIEVycm9yOiAiZXJyb3Ii
CisgICAgfTsKIH0KIAogV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSSA9IHt9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpp
bmRleCAwODZiMDViLi5mZTVjZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtNDEsMTMgKzQxLDE1IEBAIFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fYWxsb3dl
ZE9yaWdpbnMgPSB7fTsKICAgICB0aGlzLl9zdGF0dXMgPSBuZXcgV2ViSW5zcGVjdG9yLkV4dGVu
c2lvblN0YXR1cygpOwogCi0gICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJhZGRSZXF1ZXN0SGVh
ZGVycyIsIHRoaXMuX29uQWRkUmVxdWVzdEhlYWRlcnMuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5f
cmVnaXN0ZXJIYW5kbGVyKCJhZGRBdWRpdENhdGVnb3J5IiwgdGhpcy5fb25BZGRBdWRpdENhdGVn
b3J5LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiYWRkQXVkaXRSZXN1
bHQiLCB0aGlzLl9vbkFkZEF1ZGl0UmVzdWx0LmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lz
dGVySGFuZGxlcigiYWRkQ29uc29sZU1lc3NhZ2UiLCB0aGlzLl9vbkFkZENvbnNvbGVNZXNzYWdl
LmJpbmQodGhpcykpOworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiYWRkUmVxdWVzdEhlYWRl
cnMiLCB0aGlzLl9vbkFkZFJlcXVlc3RIZWFkZXJzLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3Jl
Z2lzdGVySGFuZGxlcigiY3JlYXRlUGFuZWwiLCB0aGlzLl9vbkNyZWF0ZVBhbmVsLmJpbmQodGhp
cykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiY3JlYXRlU2lkZWJhclBhbmUiLCB0aGlz
Ll9vbkNyZWF0ZVNpZGViYXJQYW5lLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFu
ZGxlcigiZXZhbHVhdGVPbkluc3BlY3RlZFBhZ2UiLCB0aGlzLl9vbkV2YWx1YXRlT25JbnNwZWN0
ZWRQYWdlLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiZ2V0SEFSIiwg
dGhpcy5fb25HZXRIQVIuYmluZCh0aGlzKSk7CisgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJn
ZXRDb25zb2xlTWVzc2FnZXMiLCB0aGlzLl9vbkdldENvbnNvbGVNZXNzYWdlcy5iaW5kKHRoaXMp
KTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldFBhZ2VSZXNvdXJjZXMiLCB0aGlzLl9v
bkdldFBhZ2VSZXNvdXJjZXMuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVy
KCJnZXRSZXF1ZXN0Q29udGVudCIsIHRoaXMuX29uR2V0UmVxdWVzdENvbnRlbnQuYmluZCh0aGlz
KSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJnZXRSZXNvdXJjZUNvbnRlbnQiLCB0aGlz
Ll9vbkdldFJlc291cmNlQ29udGVudC5iaW5kKHRoaXMpKTsKQEAgLTEyMCw2ICsxMjIsMTEgQEAg
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9jbGllbnRPYmplY3RzW2F1ZGl0UnVuLmlkXTsKICAgICB9LAogCisgICAgX25vdGlm
eUNvbnNvbGVNZXNzYWdlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fcG9zdE5vdGlmaWNhdGlvbigiY29uc29sZS1tZXNzYWdlLWFkZGVkIiwgdGhpcy5fbWFrZUNv
bnNvbGVNZXNzYWdlKGV2ZW50LmRhdGEpKTsKKyAgICB9LAorCiAgICAgX25vdGlmeVJlc291cmNl
QWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHJlc291cmNlID0gZXZl
bnQuZGF0YTsKQEAgLTMwNSw5ICszMTIsODQgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZl
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShldmFsRXhwcmVz
c2lvbiwgIiIsIHRydWUsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBfZGlz
cGF0Y2hDYWxsYmFjazogZnVuY3Rpb24ocmVxdWVzdElkLCBwb3J0LCByZXN1bHQpCisgICAgX29u
R2V0Q29uc29sZU1lc3NhZ2VzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBwb3J0LnBvc3RN
ZXNzYWdlKHsgY29tbWFuZDogImNhbGxiYWNrIiwgcmVxdWVzdElkOiByZXF1ZXN0SWQsIHJlc3Vs
dDogcmVzdWx0IH0pOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2Fn
ZXMubWFwKHRoaXMuX21ha2VDb25zb2xlTWVzc2FnZSk7CisgICAgfSwKKworICAgIF9vbkFkZENv
bnNvbGVNZXNzYWdlOiBmdW5jdGlvbihtZXNzYWdlKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24g
Y29udmVydExldmVsKGxldmVsKQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKGxldmVs
KSB7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNv
bGUuTWVzc2FnZUxldmVsLlRpcDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVGlwOworICAgICAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25zb2xlLk1lc3NhZ2VMZXZlbC5Mb2c6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZUxldmVsLkxvZzsKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5leHRlbnNp
b25BUEkuY29uc29sZS5NZXNzYWdlTGV2ZWwuV2FybmluZzoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZzsK
KyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5N
ZXNzYWdlTGV2ZWwuRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yOworICAgICAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25zb2xlLk1lc3NhZ2VMZXZlbC5EZWJ1ZzoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlTGV2ZWwuRGVidWc7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFy
IGxldmVsID0gY29udmVydExldmVsKG1lc3NhZ2UubGV2ZWwpOworICAgICAgICBpZiAoIWxldmVs
KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5FX0JBREFSRygibWVzc2FnZS5sZXZl
bCIsIG1lc3NhZ2UubGV2ZWwpOworCisgICAgICAgIHZhciBjb25zb2xlTWVzc2FnZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UoCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5KUywKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csCisgICAgICAgICAgICBsZXZlbCwKKyAgICAg
ICAgICAgIG1lc3NhZ2UubGluZSwKKyAgICAgICAgICAgIG1lc3NhZ2UudXJsLAorICAgICAgICAg
ICAgMSwKKyAgICAgICAgICAgIG1lc3NhZ2UudGV4dCwKKyAgICAgICAgICAgIG51bGwsIC8vIHBh
cmFtZXRlcnMKKyAgICAgICAgICAgIG51bGwsIC8vIHN0YWNrVHJhY2UKKyAgICAgICAgICAgIG51
bGwpOyAvLyBuZXR3b3JrUmVxdWVzdElkCisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFk
ZE1lc3NhZ2UoY29uc29sZU1lc3NhZ2UpOworICAgIH0sCisKKyAgICBfbWFrZUNvbnNvbGVNZXNz
YWdlOiBmdW5jdGlvbihtZXNzYWdlKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY29udmVydExl
dmVsKGxldmVsKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWxldmVsKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVGlwOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25z
b2xlLk1lc3NhZ2VMZXZlbC5UaXA7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkxvZzoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5NZXNzYWdlTGV2ZWwuTG9nOwor
ICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VM
ZXZlbC5XYXJuaW5nOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmV4
dGVuc2lvbkFQSS5jb25zb2xlLk1lc3NhZ2VMZXZlbC5XYXJuaW5nOworICAgICAgICAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvcjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29s
ZS5NZXNzYWdlTGV2ZWwuRXJyb3I7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkRlYnVnOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25zb2xlLk1lc3NhZ2VMZXZlbC5EZWJ1
ZzsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
V2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25zb2xlLk1lc3NhZ2VMZXZlbC5Mb2c7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gY29udmVydFBhcmFtZXRlcihw
YXJhbWV0ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXIuZGVzY3Jp
cHRpb247CisgICAgICAgIH0KKyAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSBtZXNzYWdlLnBhcmFt
ZXRlcnM7CisgICAgICAgIGlmIChwYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBpZiAobWVzc2Fn
ZS50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nKQor
ICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNsaWNlKDEpOworICAgICAg
ICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMubWFwKGNvbnZlcnRQYXJhbWV0ZXIpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBsZXZlbDogY29udmVydExldmVs
KG1lc3NhZ2UubGV2ZWwpLAorICAgICAgICAgICAgdGV4dDogbWVzc2FnZS50ZXh0LAorICAgICAg
ICAgICAgcGFyYW1ldGVyczogcGFyYW1ldGVycywKKyAgICAgICAgICAgIHVybDogbWVzc2FnZS51
cmwsCisgICAgICAgICAgICBsaW5lOiBtZXNzYWdlLmxpbmUKKyAgICAgICAgfTsKICAgICB9LAog
CiAgICAgX29uR2V0SEFSOiBmdW5jdGlvbigpCkBAIC00MjQsOSArNTA2LDE0IEBAIFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBhdWRpdFJ1bi5jYW5j
ZWwoKTsKICAgICB9LAogCisgICAgX2Rpc3BhdGNoQ2FsbGJhY2s6IGZ1bmN0aW9uKHJlcXVlc3RJ
ZCwgcG9ydCwgcmVzdWx0KQorICAgIHsKKyAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7IGNvbW1h
bmQ6ICJjYWxsYmFjayIsIHJlcXVlc3RJZDogcmVxdWVzdElkLCByZXN1bHQ6IHJlc3VsdCB9KTsK
KyAgICB9LAorCiAgICAgaW5pdEV4dGVuc2lvbnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IC8vIFRoZSBuZXR3b3JrTWFuYWdlciBpcyBub3JtYWxseSBjcmVhdGVkIGFmdGVyIHRoZSBFeHRl
bnNpb25TZXJ2ZXIgaXMgY29uc3RydWN0ZWQsIGJ1dCBiZWZvcmUgaW5pdEV4dGVuc2lvbnMoKSBp
cyBjYWxsZWQuCisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCB0aGlzLl9ub3Rp
ZnlDb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLm5ldHdv
cmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2
ZW50VHlwZXMuUmVzb3VyY2VGaW5pc2hlZCwgdGhpcy5fbm90aWZ5UmVxdWVzdEZpbmlzaGVkLCB0
aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVk
VVJMQ2hhbmdlZCwgdGhpcy5faW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX25vdGlm
eVJlc291cmNlQWRkZWQsIHRoaXMpOwo=
</data>
<flag name="review"
          id="102518"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106326</attachid>
            <date>2011-09-05 05:54:50 -0700</date>
            <delta_ts>2011-09-07 04:59:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-console.diff</filename>
            <type>text/plain</type>
            <size>23153</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMmE5Y2RiLi42MzZlM2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MDIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGV4cG9zZSBjb25zb2xlIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTA1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIHVwZGF0ZSBleHBlY3RlZCBpbWFnZSBmb3IgY2hyb21pdW0g
TGludXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvZXh0ZW5zaW9uLW1haW4uanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uanMKaW5kZXggYTI3ODQxMS4uMTEyMmZjNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVu
c2lvbi1tYWluLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9leHRlbnNpb24tbWFpbi5qcwpAQCAtMTMsMTEgKzEzLDE0IEBAIGZ1bmN0aW9uIGR1bXBP
YmplY3Qob2JqZWN0LCBub25kZXRlcm1pbmlzdGljUHJvcHMsIHByZWZpeCwgZmlyc3RMaW5lUHJl
Zml4KQogICAgIGZvciAodmFyIHByb3AgaW4gb2JqZWN0KSB7CiAgICAgICAgIHZhciBwcmVmaXhX
aXRoTmFtZSA9IHByZWZpeCArICIgICAgIiArIHByb3AgKyAiIDogIjsKICAgICAgICAgdmFyIHBy
b3BWYWx1ZSA9IG9iamVjdFtwcm9wXTsKLSAgICAgICAgaWYgKG5vbmRldGVybWluaXN0aWNQcm9w
cyAmJiBwcm9wIGluIG5vbmRldGVybWluaXN0aWNQcm9wcykgeworICAgICAgICBpZiAocHJvcFZh
bHVlID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICBvdXRwdXQocHJlZml4V2l0aE5hbWUgKyAi
dW5kZWZpbmVkIik7CisgICAgICAgIGVsc2UgaWYgKHByb3BWYWx1ZSA9PT0gbnVsbCkKKyAgICAg
ICAgICAgIG91dHB1dChwcmVmaXhXaXRoTmFtZSArICJudWxsIik7CisgICAgICAgIGVsc2UgaWYg
KG5vbmRldGVybWluaXN0aWNQcm9wcyAmJiBwcm9wIGluIG5vbmRldGVybWluaXN0aWNQcm9wcykg
ewogICAgICAgICAgICAgdmFyIHZhbHVlID0gbm9uZGV0ZXJtaW5pc3RpY1Byb3BzW3Byb3BdID09
PSAidXJsIiA/IHRyaW1VUkwocHJvcFZhbHVlKSA6ICI8IiArIHR5cGVvZiBwcm9wVmFsdWUgKyAi
PiI7CiAgICAgICAgICAgICBvdXRwdXQocHJlZml4V2l0aE5hbWUgKyB2YWx1ZSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAocHJvcFZhbHVlID09PSBudWxsKQotICAgICAgICAgICAgb3V0cHV0KHByZWZp
eFdpdGhOYW1lICsgIm51bGwiKTsKKyAgICAgICAgfQogICAgICAgICBlbHNlIGlmICh0eXBlb2Yg
cHJvcFZhbHVlID09PSAib2JqZWN0IikKICAgICAgICAgICAgIGR1bXBPYmplY3QocHJvcFZhbHVl
LCBub25kZXRlcm1pbmlzdGljUHJvcHMsIHByZWZpeCArICIgICAgIiwgcHJlZml4V2l0aE5hbWUp
OwogICAgICAgICBlbHNlIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSAic3RyaW5nIikKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
YXBpLWV4cGVjdGVkLnR4dAppbmRleCBiNDQ0ZTJlLi4zYWIxYjFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhw
ZWN0ZWQudHh0CkBAIC03Niw2ICs3NiwyMSBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0
QVBJCiAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgfQog
ICAgIH0KKyAgICBjb25zb2xlIDogeworICAgICAgICBvbk1lc3NhZ2VBZGRlZCA6IHsKKyAgICAg
ICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgorICAgICAgICAgICAgcmVtb3ZlTGlzdGVu
ZXIgOiA8ZnVuY3Rpb24+CisgICAgICAgIH0KKyAgICAgICAgZ2V0TWVzc2FnZXMgOiA8ZnVuY3Rp
b24+CisgICAgICAgIGFkZE1lc3NhZ2UgOiA8ZnVuY3Rpb24+CisgICAgICAgIE1lc3NhZ2VTZXZl
cml0eSA6IHsKKyAgICAgICAgICAgIFRpcCA6ICJ0aXAiCisgICAgICAgICAgICBEZWJ1ZyA6ICJk
ZWJ1ZyIKKyAgICAgICAgICAgIExvZyA6ICJsb2ciCisgICAgICAgICAgICBXYXJuaW5nIDogIndh
cm5pbmciCisgICAgICAgICAgICBFcnJvciA6ICJlcnJvciIKKyAgICAgICAgfQorICAgIH0KICAg
ICBvblJlc2V0IDogewogICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAg
cmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjIwYmExCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25z
b2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1MSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDQ2OiBsb2cgbWVzc2FnZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ3OiBkZWJ1ZyBtZXNzYWdl
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IHdhcm5pbmcgbWVzc2FnZQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ5OiBlcnJvciBtZXNzYWdlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IHRy
YWNlIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MTogbG9nIG1lc3NhZ2Ugd2l0aCB0
d28gcGFyYW1ldGVycywgYW4gaW50ZWdlcjogJWQgYW5kIGEgc3RyaW5nOiAlcworQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IGxvZyBtZXNzYWdlIGZyb20gZXZhbHVhdGVkIGNvZGUKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA0NjogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0Nzog
ZGVidWcgbWVzc2FnZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4OiB3YXJuaW5nIG1lc3NhZ2UK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogZXJyb3IgbWVzc2FnZQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDUwOiB0cmFjZSBtZXNzYWdlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTE6IGxvZyBt
ZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVkIGFuZCBhIHN0cmluZzog
JXMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBsb2cgbWVzc2FnZSBmcm9tIGV2YWx1YXRlZCBj
b2RlCitUZXN0cyBtZXRob2RzIG9mIHdlYkluc3BlY3Rvci5jb25zb2xlIGV4dGVuc2lvbiBBUEkK
KworU3RhcnRlZCBleHRlbnNpb24uCitSdW5uaW5nIHRlc3RzLi4uCitSVU5OSU5HIFRFU1Q6IGV4
dGVuc2lvbl90ZXN0QWRkQ29uc29sZU1lc3NhZ2VzCitleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo0
NmxvZyBtZXNzYWdlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAorZXh0ZW5zaW9u
cy1jb25zb2xlLmh0bWw6NDdkZWJ1ZyBtZXNzYWdlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxv
Zy1sZXZlbAorZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NDh3YXJuaW5nIG1lc3NhZ2UgY29uc29s
ZS1tZXNzYWdlIGNvbnNvbGUtd2FybmluZy1sZXZlbAorZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6
NDllcnJvciBtZXNzYWdlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9yLWxldmVsCitleHRl
bnNpb25zLWNvbnNvbGUuaHRtbDo1MGNvbnNvbGUudHJhY2UoKWxvZ2V4dGVuc2lvbnMtY29uc29s
ZS5odG1sOjUwIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAorZXh0ZW5zaW9ucy1j
b25zb2xlLmh0bWw6NTFsb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2Vy
OiA0MiBhbmQgYSBzdHJpbmc6IGZvbyBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwK
K2xvZyBtZXNzYWdlIGZyb20gZXZhbHVhdGVkIGNvZGUgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUt
bG9nLWxldmVsCitkZWJ1ZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIGNvbnNvbGUtbWVzc2FnZSBj
b25zb2xlLWRlYnVnLWxldmVsCit0ZXN0LXVybC5odG1sOjQybG9nIG1lc3NhZ2UgZnJvbSBleHRl
bnNpb24gY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCit3YXJuaW5nIG1lc3NhZ2Ug
ZnJvbSBleHRlbnNpb24gY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtd2FybmluZy1sZXZlbAorZXJy
b3IgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1lcnJvci1s
ZXZlbAorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEdldENvbnNvbGVNZXNzYWdlcworewor
ICAgIDAgOiB7CisgICAgICAgIHNldmVyaXR5IDogImxvZyIKKyAgICAgICAgdGV4dCA6ICJsb2cg
bWVzc2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAg
ICAgIGxpbmUgOiA0NgorICAgIH0KKyAgICAxIDogeworICAgICAgICBzZXZlcml0eSA6ICJsb2ci
CisgICAgICAgIHRleHQgOiAiZGVidWcgbWVzc2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVu
c2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA0NworICAgIH0KKyAgICAyIDogewor
ICAgICAgICBzZXZlcml0eSA6ICJ3YXJuaW5nIgorICAgICAgICB0ZXh0IDogIndhcm5pbmcgbWVz
c2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAg
IGxpbmUgOiA0OAorICAgIH0KKyAgICAzIDogeworICAgICAgICBzZXZlcml0eSA6ICJlcnJvciIK
KyAgICAgICAgdGV4dCA6ICJlcnJvciBtZXNzYWdlIgorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5z
aW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6IDQ5CisgICAgfQorICAgIDQgOiB7Cisg
ICAgICAgIHNldmVyaXR5IDogImxvZyIKKyAgICAgICAgdGV4dCA6ICJ0cmFjZSBtZXNzYWdlIgor
ICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6
IDUwCisgICAgfQorICAgIDUgOiB7CisgICAgICAgIHNldmVyaXR5IDogImxvZyIKKyAgICAgICAg
dGV4dCA6ICJsb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBh
bmQgYSBzdHJpbmc6ICVzIgorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0
bWwKKyAgICAgICAgbGluZSA6IDUxCisgICAgfQorICAgIDYgOiB7CisgICAgICAgIHNldmVyaXR5
IDogImxvZyIKKyAgICAgICAgdGV4dCA6ICJsb2cgbWVzc2FnZSBmcm9tIGV2YWx1YXRlZCBjb2Rl
IgorICAgICAgICBsaW5lIDogMQorICAgIH0KKyAgICA3IDogeworICAgICAgICBzZXZlcml0eSA6
ICJkZWJ1ZyIKKyAgICAgICAgdGV4dCA6ICJkZWJ1ZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIgor
ICAgIH0KKyAgICA4IDogeworICAgICAgICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQg
OiAibG9nIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24iCisgICAgICAgIHVybCA6IHRlc3QtdXJsLmh0
bWwKKyAgICAgICAgbGluZSA6IDQyCisgICAgfQorICAgIDkgOiB7CisgICAgICAgIHNldmVyaXR5
IDogIndhcm5pbmciCisgICAgICAgIHRleHQgOiAid2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5z
aW9uIgorICAgIH0KKyAgICAxMCA6IHsKKyAgICAgICAgc2V2ZXJpdHkgOiAiZXJyb3IiCisgICAg
ICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIKKyAgICAgICAgbGluZSA6
IDQyCisgICAgfQorfQorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uQ29uc29sZU1lc3Nh
Z2VBZGRlZAoreworICAgIDAgOiB7CisgICAgICAgIHNldmVyaXR5IDogImxvZyIKKyAgICAgICAg
dGV4dCA6ICJsb2cgbWVzc2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29s
ZS5odG1sCisgICAgICAgIGxpbmUgOiA0NgorICAgIH0KK30KK3sKKyAgICAwIDogeworICAgICAg
ICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQgOiAiZGVidWcgbWVzc2FnZSIKKyAgICAg
ICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA0Nwor
ICAgIH0KK30KK3sKKyAgICAwIDogeworICAgICAgICBzZXZlcml0eSA6ICJ3YXJuaW5nIgorICAg
ICAgICB0ZXh0IDogIndhcm5pbmcgbWVzc2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lv
bnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA0OAorICAgIH0KK30KK3sKKyAgICAwIDog
eworICAgICAgICBzZXZlcml0eSA6ICJlcnJvciIKKyAgICAgICAgdGV4dCA6ICJlcnJvciBtZXNz
YWdlIgorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAg
bGluZSA6IDQ5CisgICAgfQorfQoreworICAgIDAgOiB7CisgICAgICAgIHNldmVyaXR5IDogImxv
ZyIKKyAgICAgICAgdGV4dCA6ICJ0cmFjZSBtZXNzYWdlIgorICAgICAgICB1cmwgOiAuLi4vZXh0
ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGluZSA6IDUwCisgICAgfQorfQoreworICAg
IDAgOiB7CisgICAgICAgIHNldmVyaXR5IDogImxvZyIKKyAgICAgICAgdGV4dCA6ICJsb2cgbWVz
c2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVz
IgorICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKKyAgICAgICAgbGlu
ZSA6IDUxCisgICAgfQorfQoreworICAgIDAgOiB7CisgICAgICAgIHNldmVyaXR5IDogImxvZyIK
KyAgICAgICAgdGV4dCA6ICJsb2cgbWVzc2FnZSBmcm9tIGV2YWx1YXRlZCBjb2RlIgorICAgICAg
ICBsaW5lIDogMQorICAgIH0KK30KK0FsbCB0ZXN0cyBkb25lLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjOTNiY2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUu
aHRtbApAQCAtMCwwICsxLDYxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwor
ZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRDb25zb2xlTWVzc2FnZXMobmV4dFRlc3QpCit7Cisg
ICAgZnVuY3Rpb24gY2FsbGJhY2sobWVzc2FnZXMpCisgICAgeworICAgICAgICBkdW1wT2JqZWN0
KG1lc3NhZ2VzLCB7IHVybDogInVybCIgfSk7CisgICAgfQorICAgIHdlYkluc3BlY3Rvci5jb25z
b2xlLmdldE1lc3NhZ2VzKGNhbGxiYWNrQW5kTmV4dFRlc3QoY2FsbGJhY2ssIG5leHRUZXN0KSk7
CisKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RBZGRDb25zb2xlTWVzc2FnZXMobmV4dFRl
c3QpCit7CisgICAgd2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2FnZSh3ZWJJbnNwZWN0b3Iu
Y29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuRGVidWcsICJkZWJ1ZyBtZXNzYWdlIGZyb20gZXh0ZW5z
aW9uIik7CisgICAgd2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2FnZSh3ZWJJbnNwZWN0b3Iu
Y29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuTG9nLCAibG9nIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24i
LCAidGVzdC11cmwuaHRtbCIsIDQyKTsKKyAgICB3ZWJJbnNwZWN0b3IuY29uc29sZS5hZGRNZXNz
YWdlKHdlYkluc3BlY3Rvci5jb25zb2xlLk1lc3NhZ2VTZXZlcml0eS5XYXJuaW5nLCAid2Fybmlu
ZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIik7CisgICAgd2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRk
TWVzc2FnZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuRXJyb3IsICJlcnJv
ciBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIiwgbnVsbCwgNDIpOworICAgIGV2YWx1YXRlT25Gcm9u
dGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMoKTsgcmVw
bHkoKTsiLCBuZXh0VGVzdCkKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPbkNvbnNvbGVN
ZXNzYWdlQWRkZWQobmV4dFRlc3QpCit7CisgICAgdmFyIGV4cGVjdGVkTWVzc2FnZXMgPSA3Owor
CisgICAgZnVuY3Rpb24gb25NZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgICAgICBkdW1wT2Jq
ZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCksIHsgdXJsOiAidXJs
IiB9KTsKKyAgICAgICAgaWYgKCEtLWV4cGVjdGVkTWVzc2FnZXMpIHsKKyAgICAgICAgICAgIHdl
Ykluc3BlY3Rvci5jb25zb2xlLm9uTWVzc2FnZUFkZGVkLnJlbW92ZUxpc3RlbmVyKG9uTWVzc2Fn
ZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIHdlYklu
c3BlY3Rvci5jb25zb2xlLm9uTWVzc2FnZUFkZGVkLmFkZExpc3RlbmVyKG9uTWVzc2FnZSk7Cisg
ICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJsb2coKTsiKTsKK30KKworZnVu
Y3Rpb24gbG9nKCkKK3sKKyAgICBjb25zb2xlLmxvZygibG9nIG1lc3NhZ2UiKTsKKyAgICBjb25z
b2xlLmRlYnVnKCJkZWJ1ZyBtZXNzYWdlIik7CisgICAgY29uc29sZS53YXJuKCJ3YXJuaW5nIG1l
c3NhZ2UiKTsKKyAgICBjb25zb2xlLmVycm9yKCJlcnJvciBtZXNzYWdlIik7CisgICAgY29uc29s
ZS50cmFjZSgidHJhY2UgbWVzc2FnZSIpOworICAgIGNvbnNvbGUubG9nKCJsb2cgbWVzc2FnZSB3
aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzIiwgNDIs
ICJmb28iKTsKKyAgICBldmFsKCJjb25zb2xlLmxvZygnbG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0
ZWQgY29kZScpIik7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2co
KTsgcnVuVGVzdCgpIj4KKzxwPlRlc3RzIG1ldGhvZHMgb2Ygd2ViSW5zcGVjdG9yLmNvbnNvbGUg
ZXh0ZW5zaW9uIEFQSTwvcD4KKzxkaXYgaWQ9InRlc3QtZGl2IiBjbGFzcz0idGVzdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjYjNlOC4uZGRmYTU1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDExLTA5LTAyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNl
cUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lvbnMgQVBJ
XSBleHBvc2UgY29uc29sZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xl
Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLmdldCB0ZXh0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUuZ2V0IHBh
cmFtZXRlcnMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkluc3BlY3RvckV4
dGVuc2lvbkFQSSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkNvbnNvbGUucHJv
dG90eXBlLmdldE1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVu
c2lvbkFQSS5Db25zb2xlLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5Db25zb2xlLnByb3RvdHlwZS5nZXQgTWVzc2FnZUxl
dmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5OZXR3b3Jr
LmRpc3BhdGNoUmVxdWVzdEV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4
dGVuc2lvbkFQSS5OZXR3b3JrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVu
c2lvbkFQSS5BdWRpdENhdGVnb3J5SW1wbC5kaXNwYXRjaEF1ZGl0RXZlbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0Q2F0ZWdvcnlJbXBsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5JbnNwZWN0ZWRXaW5kb3cu
ZGlzcGF0Y2hSZXNvdXJjZUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4
dGVuc2lvbkFQSS5JbnNwZWN0ZWRXaW5kb3cuZGlzcGF0Y2hSZXNvdXJjZUNvbnRlbnRFdmVudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuSW5zcGVjdGVkV2lu
ZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25TeW1ib2xzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlcnZlci5wcm90b3R5cGUuX25vdGlmeUNvbnNvbGVNZXNzYWdlQWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uR2V0Q29uc29sZU1lc3Nh
Z2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9v
bkFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlLl9tYWtlQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX21ha2VDb25zb2xlTWVzc2FnZS5jb252ZXJ0UGFy
YW1ldGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBl
Ll9kaXNwYXRjaENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlLmluaXRFeHRlbnNpb25zKToKKwogMjAxMS0wOS0wNSAgS2F1c3R1YmggQXRy
YXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBMb2dpYyBmcm9tIEhU
TUxFbGVtZW50OjpkZXByZWNhdGVkQ3JlYXRlQ29udGV4dHVhbEZyYWdtZW50IG1vdmVkIGludG8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1l
c3NhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNz
YWdlLmpzCmluZGV4IDUyMDNjN2EuLmM3YmQxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtNDQ0LDYgKzQ0NCwx
MSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICBy
ZXR1cm4gc291cmNlU3RyaW5nICsgIiAiICsgdHlwZVN0cmluZyArICIgIiArIGxldmVsU3RyaW5n
ICsgIjogIiArIHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UudGV4dENvbnRlbnQgKyAiXG4iICsgdGhp
cy51cmwgKyAiIGxpbmUgIiArIHRoaXMubGluZTsKICAgICB9LAogCisgICAgZ2V0IHRleHQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VUZXh0OworICAgIH0sCisKICAgICBp
c0VxdWFsOiBmdW5jdGlvbihtc2cpCiAgICAgewogICAgICAgICBpZiAoIW1zZykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKaW5kZXgg
MjJmMjJkMS4uNWZmMzQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25BUEkuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25BUEkuanMKQEAgLTkzLDYgKzkzLDcgQEAgZnVuY3Rpb24gSW5zcGVj
dG9yRXh0ZW5zaW9uQVBJKCkKICAgICB0aGlzLm5ldHdvcmsgPSBuZXcgTmV0d29yaygpOwogICAg
IGRlZmluZURlcHJlY2F0ZWRQcm9wZXJ0eSh0aGlzLCAid2ViSW5zcGVjdG9yIiwgInJlc291cmNl
cyIsICJuZXR3b3JrIik7CiAgICAgdGhpcy50aW1lbGluZSA9IG5ldyBUaW1lbGluZSgpOworICAg
IHRoaXMuY29uc29sZSA9IG5ldyBDb25zb2xlKCk7CiAKICAgICB0aGlzLm9uUmVzZXQgPSBuZXcg
RXZlbnRTaW5rKCJyZXNldCIpOwogfQpAQCAtMTA0LDE1ICsxMDUsMzcgQEAgSW5zcGVjdG9yRXh0
ZW5zaW9uQVBJLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKK2Z1bmN0aW9uIENvbnNvbGUoKQor
eworICAgIHRoaXMub25NZXNzYWdlQWRkZWQgPSBuZXcgRXZlbnRTaW5rKCJjb25zb2xlLW1lc3Nh
Z2UtYWRkZWQiKTsKK30KKworQ29uc29sZS5wcm90b3R5cGUgPSB7CisgICAgZ2V0TWVzc2FnZXM6
IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRS
ZXF1ZXN0KHsgY29tbWFuZDogImdldENvbnNvbGVNZXNzYWdlcyIgfSwgY2FsbGJhY2spOworICAg
IH0sCisKKyAgICBhZGRNZXNzYWdlOiBmdW5jdGlvbihzZXZlcml0eSwgdGV4dCwgdXJsLCBsaW5l
KQorICAgIHsKKyAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDog
ImFkZENvbnNvbGVNZXNzYWdlIiwgc2V2ZXJpdHk6IHNldmVyaXR5LCB0ZXh0OiB0ZXh0LCB1cmw6
IHVybCwgbGluZTogbGluZSB9KTsKKyAgICB9LAorCisgICAgZ2V0IE1lc3NhZ2VTZXZlcml0eSgp
CisgICAgeworICAgICAgICByZXR1cm4gYXBpUHJpdmF0ZS5jb25zb2xlLk1lc3NhZ2VTZXZlcml0
eTsKKyAgICB9LAorfTsKKwogZnVuY3Rpb24gTmV0d29yaygpCiB7Ci0gICAgZnVuY3Rpb24gcmVx
dWVzdERpc3BhdGNoKG1lc3NhZ2UpCisgICAgZnVuY3Rpb24gZGlzcGF0Y2hSZXF1ZXN0RXZlbnQo
bWVzc2FnZSkKICAgICB7CiAgICAgICAgIHZhciByZXF1ZXN0ID0gbWVzc2FnZS5hcmd1bWVudHNb
MV07CiAgICAgICAgIHJlcXVlc3QuX19wcm90b19fID0gbmV3IFJlcXVlc3QobWVzc2FnZS5hcmd1
bWVudHNbMF0pOwogICAgICAgICB0aGlzLl9maXJlKHJlcXVlc3QpOwogICAgIH0KLSAgICB0aGlz
Lm9uUmVxdWVzdEZpbmlzaGVkID0gbmV3IEV2ZW50U2luaygibmV0d29yay1yZXF1ZXN0LWZpbmlz
aGVkIiwgcmVxdWVzdERpc3BhdGNoKTsKKyAgICB0aGlzLm9uUmVxdWVzdEZpbmlzaGVkID0gbmV3
IEV2ZW50U2luaygibmV0d29yay1yZXF1ZXN0LWZpbmlzaGVkIiwgZGlzcGF0Y2hSZXF1ZXN0RXZl
bnQpOwogICAgIGRlZmluZURlcHJlY2F0ZWRQcm9wZXJ0eSh0aGlzLCAibmV0d29yayIsICJvbkZp
bmlzaGVkIiwgIm9uUmVxdWVzdEZpbmlzaGVkIik7CiAgICAgdGhpcy5vbk5hdmlnYXRlZCA9IG5l
dyBFdmVudFNpbmsoImluc3BlY3RlZFVSTENoYW5nZWQiKTsKIH0KQEAgLTI3MSw3ICsyOTQsNyBA
QCBBdWRpdHMucHJvdG90eXBlID0gewogCiBmdW5jdGlvbiBBdWRpdENhdGVnb3J5SW1wbChpZCkK
IHsKLSAgICBmdW5jdGlvbiBhdWRpdFJlc3VsdERpc3BhdGNoKHJlcXVlc3QpCisgICAgZnVuY3Rp
b24gZGlzcGF0Y2hBdWRpdEV2ZW50KHJlcXVlc3QpCiAgICAgewogICAgICAgICB2YXIgYXVkaXRS
ZXN1bHQgPSBuZXcgQXVkaXRSZXN1bHQocmVxdWVzdC5hcmd1bWVudHNbMF0pOwogICAgICAgICB0
cnkgewpAQCAtMjgyLDcgKzMwNSw3IEBAIGZ1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBsKGlkKQog
ICAgICAgICB9CiAgICAgfQogICAgIHRoaXMuX2lkID0gaWQ7Ci0gICAgdGhpcy5vbkF1ZGl0U3Rh
cnRlZCA9IG5ldyBFdmVudFNpbmsoImF1ZGl0LXN0YXJ0ZWQtIiArIGlkLCBhdWRpdFJlc3VsdERp
c3BhdGNoKTsKKyAgICB0aGlzLm9uQXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQt
c3RhcnRlZC0iICsgaWQsIGRpc3BhdGNoQXVkaXRFdmVudCk7CiB9CiAKIGZ1bmN0aW9uIEF1ZGl0
UmVzdWx0SW1wbChpZCkKQEAgLTM1NywxNiArMzgwLDE2IEBAIEF1ZGl0UmVzdWx0Tm9kZS5wcm90
b3R5cGUgPSB7CiAKIGZ1bmN0aW9uIEluc3BlY3RlZFdpbmRvdygpCiB7Ci0gICAgZnVuY3Rpb24g
cmVzb3VyY2VEaXNwYXRjaChtZXNzYWdlKQorICAgIGZ1bmN0aW9uIGRpc3BhdGNoUmVzb3VyY2VF
dmVudChtZXNzYWdlKQogICAgIHsKICAgICAgICAgdGhpcy5fZmlyZShuZXcgUmVzb3VyY2UobWVz
c2FnZS5hcmd1bWVudHNbMF0pKTsKICAgICB9Ci0gICAgZnVuY3Rpb24gcmVzb3VyY2VDb250ZW50
RGlzcGF0Y2gobWVzc2FnZSkKKyAgICBmdW5jdGlvbiBkaXNwYXRjaFJlc291cmNlQ29udGVudEV2
ZW50KG1lc3NhZ2UpCiAgICAgewogICAgICAgICB0aGlzLl9maXJlKG5ldyBSZXNvdXJjZShtZXNz
YWdlLmFyZ3VtZW50c1swXSksIG1lc3NhZ2UuYXJndW1lbnRzWzFdKTsKICAgICB9Ci0gICAgdGhp
cy5vblJlc291cmNlQWRkZWQgPSBuZXcgRXZlbnRTaW5rKCJyZXNvdXJjZS1hZGRlZCIsIHJlc291
cmNlRGlzcGF0Y2gpOwotICAgIHRoaXMub25SZXNvdXJjZUNvbnRlbnRDb21taXR0ZWQgPSBuZXcg
RXZlbnRTaW5rKCJyZXNvdXJjZS1jb250ZW50LWNvbW1pdHRlZCIsIHJlc291cmNlQ29udGVudERp
c3BhdGNoKTsKKyAgICB0aGlzLm9uUmVzb3VyY2VBZGRlZCA9IG5ldyBFdmVudFNpbmsoInJlc291
cmNlLWFkZGVkIiwgZGlzcGF0Y2hSZXNvdXJjZUV2ZW50KTsKKyAgICB0aGlzLm9uUmVzb3VyY2VD
b250ZW50Q29tbWl0dGVkID0gbmV3IEV2ZW50U2luaygicmVzb3VyY2UtY29udGVudC1jb21taXR0
ZWQiLCBkaXNwYXRjaFJlc291cmNlQ29udGVudEV2ZW50KTsKIH0KIAogSW5zcGVjdGVkV2luZG93
LnByb3RvdHlwZSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uQ29tbW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25Db21tb24uanMKaW5kZXggODAzNDAwMS4uNTJlODQ3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24uanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24u
anMKQEAgLTM5LDYgKzM5LDE2IEBAIFdlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25TeW1ib2xz
ID0gZnVuY3Rpb24oYXBpUHJpdmF0ZSkKICAgICAgICAgV2FybmluZzogIndhcm5pbmciLAogICAg
ICAgICBTZXZlcmU6ICJzZXZlcmUiCiAgICAgfTsKKworICAgIGlmICghYXBpUHJpdmF0ZS5jb25z
b2xlKQorICAgICAgICBhcGlQcml2YXRlLmNvbnNvbGUgPSB7fTsKKyAgICBhcGlQcml2YXRlLmNv
bnNvbGUuTWVzc2FnZVNldmVyaXR5ID0geworICAgICAgICBUaXA6ICJ0aXAiLAorICAgICAgICBE
ZWJ1ZzogImRlYnVnIiwKKyAgICAgICAgTG9nOiAibG9nIiwKKyAgICAgICAgV2FybmluZzogIndh
cm5pbmciLAorICAgICAgICBFcnJvcjogImVycm9yIgorICAgIH07CiB9CiAKIFdlYkluc3BlY3Rv
ci5leHRlbnNpb25BUEkgPSB7fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggMDg2YjA1Yi4uMzBhZTc0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25T
ZXJ2ZXIuanMKQEAgLTQxLDEzICs0MSwxNSBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVy
ID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX2FsbG93ZWRPcmlnaW5zID0ge307CiAgICAgdGhpcy5f
c3RhdHVzID0gbmV3IFdlYkluc3BlY3Rvci5FeHRlbnNpb25TdGF0dXMoKTsKIAotICAgIHRoaXMu
X3JlZ2lzdGVySGFuZGxlcigiYWRkUmVxdWVzdEhlYWRlcnMiLCB0aGlzLl9vbkFkZFJlcXVlc3RI
ZWFkZXJzLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiYWRkQXVkaXRD
YXRlZ29yeSIsIHRoaXMuX29uQWRkQXVkaXRDYXRlZ29yeS5iaW5kKHRoaXMpKTsKICAgICB0aGlz
Ll9yZWdpc3RlckhhbmRsZXIoImFkZEF1ZGl0UmVzdWx0IiwgdGhpcy5fb25BZGRBdWRpdFJlc3Vs
dC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImFkZENvbnNvbGVNZXNz
YWdlIiwgdGhpcy5fb25BZGRDb25zb2xlTWVzc2FnZS5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9y
ZWdpc3RlckhhbmRsZXIoImFkZFJlcXVlc3RIZWFkZXJzIiwgdGhpcy5fb25BZGRSZXF1ZXN0SGVh
ZGVycy5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImNyZWF0ZVBhbmVs
IiwgdGhpcy5fb25DcmVhdGVQYW5lbC5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3Rlckhh
bmRsZXIoImNyZWF0ZVNpZGViYXJQYW5lIiwgdGhpcy5fb25DcmVhdGVTaWRlYmFyUGFuZS5iaW5k
KHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImV2YWx1YXRlT25JbnNwZWN0ZWRQ
YWdlIiwgdGhpcy5fb25FdmFsdWF0ZU9uSW5zcGVjdGVkUGFnZS5iaW5kKHRoaXMpKTsKICAgICB0
aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldEhBUiIsIHRoaXMuX29uR2V0SEFSLmJpbmQodGhpcykp
OworICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiZ2V0Q29uc29sZU1lc3NhZ2VzIiwgdGhpcy5f
b25HZXRDb25zb2xlTWVzc2FnZXMuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5k
bGVyKCJnZXRQYWdlUmVzb3VyY2VzIiwgdGhpcy5fb25HZXRQYWdlUmVzb3VyY2VzLmJpbmQodGhp
cykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFuZGxlcigiZ2V0UmVxdWVzdENvbnRlbnQiLCB0aGlz
Ll9vbkdldFJlcXVlc3RDb250ZW50LmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFu
ZGxlcigiZ2V0UmVzb3VyY2VDb250ZW50IiwgdGhpcy5fb25HZXRSZXNvdXJjZUNvbnRlbnQuYmlu
ZCh0aGlzKSk7CkBAIC0xMjAsNiArMTIyLDExIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fY2xpZW50T2JqZWN0c1thdWRp
dFJ1bi5pZF07CiAgICAgfSwKIAorICAgIF9ub3RpZnlDb25zb2xlTWVzc2FnZUFkZGVkOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oImNvbnNv
bGUtbWVzc2FnZS1hZGRlZCIsIHRoaXMuX21ha2VDb25zb2xlTWVzc2FnZShldmVudC5kYXRhKSk7
CisgICAgfSwKKwogICAgIF9ub3RpZnlSZXNvdXJjZUFkZGVkOiBmdW5jdGlvbihldmVudCkKICAg
ICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IGV2ZW50LmRhdGE7CkBAIC0zMDUsOSArMzEyLDc2
IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoZXZhbEV4cHJlc3Npb24sICIiLCB0cnVlLCBjYWxsYmFjay5i
aW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgX2Rpc3BhdGNoQ2FsbGJhY2s6IGZ1bmN0aW9uKHJl
cXVlc3RJZCwgcG9ydCwgcmVzdWx0KQorICAgIF9vbkdldENvbnNvbGVNZXNzYWdlczogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7IGNvbW1hbmQ6ICJjYWxsYmFj
ayIsIHJlcXVlc3RJZDogcmVxdWVzdElkLCByZXN1bHQ6IHJlc3VsdCB9KTsKKyAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5jb25zb2xlLm1lc3NhZ2VzLm1hcCh0aGlzLl9tYWtlQ29uc29sZU1l
c3NhZ2UpOworICAgIH0sCisKKyAgICBfb25BZGRDb25zb2xlTWVzc2FnZTogZnVuY3Rpb24obWVz
c2FnZSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIGNvbnZlcnRTZXZlcml0eShsZXZlbCkKKyAg
ICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChsZXZlbCkgeworICAgICAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25zb2xlLk1lc3NhZ2VTZXZlcml0eS5UaXA6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
TWVzc2FnZUxldmVsLlRpcDsKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5leHRl
bnNpb25BUEkuY29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuTG9nOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2c7Cisg
ICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuTWVz
c2FnZVNldmVyaXR5Lldhcm5pbmc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLldhcm5pbmc7CisgICAgICAgICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuTWVzc2FnZVNldmVyaXR5
LkVycm9yOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvcjsKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuRGVidWc6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxl
dmVsLkRlYnVnOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBsZXZlbCA9
IGNvbnZlcnRTZXZlcml0eShtZXNzYWdlLnNldmVyaXR5KTsKKyAgICAgICAgaWYgKCFsZXZlbCkK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9CQURBUkcoIm1lc3NhZ2Uuc2V2ZXJp
dHkiLCBtZXNzYWdlLnNldmVyaXR5KTsKKworICAgICAgICB2YXIgY29uc29sZU1lc3NhZ2UgPSBu
ZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKAorICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSlMsCisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nLAorICAgICAgICAgICAgbGV2ZWwsCisg
ICAgICAgICAgICBtZXNzYWdlLmxpbmUsCisgICAgICAgICAgICBtZXNzYWdlLnVybCwKKyAgICAg
ICAgICAgIDEsCisgICAgICAgICAgICBtZXNzYWdlLnRleHQsCisgICAgICAgICAgICBudWxsLCAv
LyBwYXJhbWV0ZXJzCisgICAgICAgICAgICBudWxsLCAvLyBzdGFja1RyYWNlCisgICAgICAgICAg
ICBudWxsKTsgLy8gbmV0d29ya1JlcXVlc3RJZAorICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29s
ZS5hZGRNZXNzYWdlKGNvbnNvbGVNZXNzYWdlKTsKKyAgICB9LAorCisgICAgX21ha2VDb25zb2xl
TWVzc2FnZTogZnVuY3Rpb24obWVzc2FnZSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIGNvbnZl
cnRMZXZlbChsZXZlbCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFsZXZlbCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzd2l0Y2ggKGxldmVsKSB7CisgICAgICAg
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLlRp
cDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEku
Y29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuVGlwOworICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2c6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuTWVzc2FnZVNldmVy
aXR5LkxvZzsKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlTGV2ZWwuV2FybmluZzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5NZXNzYWdlU2V2ZXJpdHkuV2FybmluZzsKKyAg
ICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2
ZWwuRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZXh0ZW5z
aW9uQVBJLmNvbnNvbGUuTWVzc2FnZVNldmVyaXR5LkVycm9yOworICAgICAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5EZWJ1ZzoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5N
ZXNzYWdlU2V2ZXJpdHkuRGVidWc7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5NZXNz
YWdlU2V2ZXJpdHkuTG9nOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBy
ZXN1bHQgPSB7CisgICAgICAgICAgICBzZXZlcml0eTogY29udmVydExldmVsKG1lc3NhZ2UubGV2
ZWwpLAorICAgICAgICAgICAgdGV4dDogbWVzc2FnZS50ZXh0LAorICAgICAgICB9OworICAgICAg
ICBpZiAobWVzc2FnZS51cmwpCisgICAgICAgICAgICByZXN1bHQudXJsID0gbWVzc2FnZS51cmw7
CisgICAgICAgIGlmIChtZXNzYWdlLmxpbmUpCisgICAgICAgICAgICByZXN1bHQubGluZSA9IG1l
c3NhZ2UubGluZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9LAogCiAgICAgX29uR2V0
SEFSOiBmdW5jdGlvbigpCkBAIC00MjQsOSArNDk4LDE0IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNp
b25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBhdWRpdFJ1bi5jYW5jZWwoKTsKICAgICB9
LAogCisgICAgX2Rpc3BhdGNoQ2FsbGJhY2s6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgcG9ydCwgcmVz
dWx0KQorICAgIHsKKyAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7IGNvbW1hbmQ6ICJjYWxsYmFj
ayIsIHJlcXVlc3RJZDogcmVxdWVzdElkLCByZXN1bHQ6IHJlc3VsdCB9KTsKKyAgICB9LAorCiAg
ICAgaW5pdEV4dGVuc2lvbnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIC8vIFRoZSBuZXR3
b3JrTWFuYWdlciBpcyBub3JtYWxseSBjcmVhdGVkIGFmdGVyIHRoZSBFeHRlbnNpb25TZXJ2ZXIg
aXMgY29uc3RydWN0ZWQsIGJ1dCBiZWZvcmUgaW5pdEV4dGVuc2lvbnMoKSBpcyBjYWxsZWQuCisg
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCB0aGlzLl9ub3RpZnlDb25zb2xlTWVz
c2FnZUFkZGVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVz
b3VyY2VGaW5pc2hlZCwgdGhpcy5fbm90aWZ5UmVxdWVzdEZpbmlzaGVkLCB0aGlzKTsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVkVVJMQ2hhbmdlZCwg
dGhpcy5faW5zcGVjdGVkVVJMQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX25vdGlmeVJlc291cmNlQWRk
ZWQsIHRoaXMpOwo=
</data>
<flag name="review"
          id="102834"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106572</attachid>
            <date>2011-09-07 04:59:45 -0700</date>
            <delta_ts>2011-09-07 05:11:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-console.diff</filename>
            <type>text/plain</type>
            <size>28315</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNjIyYjg5Li5hYTNlMGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MDIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGV4cG9zZSBjb25zb2xlIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENoYW5nZSBldmVudCBpcyBub3QgZmlyZWQgZm9yIGlucHV0W3R5cGU9bnVtYmVyXSB3aGVu
IHRoZSB1c2VyIHJldmVydHMgYSBjaGFuZ2UgbWFkZSBieSBzY3JpcHQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24tbWFpbi5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9leHRlbnNpb24t
bWFpbi5qcwppbmRleCBhMjc4NDExLi4xMTIyZmM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvZXh0ZW5zaW9uLW1haW4uanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2V4dGVuc2lvbi1tYWluLmpz
CkBAIC0xMywxMSArMTMsMTQgQEAgZnVuY3Rpb24gZHVtcE9iamVjdChvYmplY3QsIG5vbmRldGVy
bWluaXN0aWNQcm9wcywgcHJlZml4LCBmaXJzdExpbmVQcmVmaXgpCiAgICAgZm9yICh2YXIgcHJv
cCBpbiBvYmplY3QpIHsKICAgICAgICAgdmFyIHByZWZpeFdpdGhOYW1lID0gcHJlZml4ICsgIiAg
ICAiICsgcHJvcCArICIgOiAiOwogICAgICAgICB2YXIgcHJvcFZhbHVlID0gb2JqZWN0W3Byb3Bd
OwotICAgICAgICBpZiAobm9uZGV0ZXJtaW5pc3RpY1Byb3BzICYmIHByb3AgaW4gbm9uZGV0ZXJt
aW5pc3RpY1Byb3BzKSB7CisgICAgICAgIGlmIChwcm9wVmFsdWUgPT09IHVuZGVmaW5lZCkKKyAg
ICAgICAgICAgIG91dHB1dChwcmVmaXhXaXRoTmFtZSArICJ1bmRlZmluZWQiKTsKKyAgICAgICAg
ZWxzZSBpZiAocHJvcFZhbHVlID09PSBudWxsKQorICAgICAgICAgICAgb3V0cHV0KHByZWZpeFdp
dGhOYW1lICsgIm51bGwiKTsKKyAgICAgICAgZWxzZSBpZiAobm9uZGV0ZXJtaW5pc3RpY1Byb3Bz
ICYmIHByb3AgaW4gbm9uZGV0ZXJtaW5pc3RpY1Byb3BzKSB7CiAgICAgICAgICAgICB2YXIgdmFs
dWUgPSBub25kZXRlcm1pbmlzdGljUHJvcHNbcHJvcF0gPT09ICJ1cmwiID8gdHJpbVVSTChwcm9w
VmFsdWUpIDogIjwiICsgdHlwZW9mIHByb3BWYWx1ZSArICI+IjsKICAgICAgICAgICAgIG91dHB1
dChwcmVmaXhXaXRoTmFtZSArIHZhbHVlKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcm9wVmFsdWUg
PT09IG51bGwpCi0gICAgICAgICAgICBvdXRwdXQocHJlZml4V2l0aE5hbWUgKyAibnVsbCIpOwor
ICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICJvYmplY3Qi
KQogICAgICAgICAgICAgZHVtcE9iamVjdChwcm9wVmFsdWUsIG5vbmRldGVybWluaXN0aWNQcm9w
cywgcHJlZml4ICsgIiAgICAiLCBwcmVmaXhXaXRoTmFtZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5
cGVvZiBwcm9wVmFsdWUgPT09ICJzdHJpbmciKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CmluZGV4
IGI0NDRlMmUuLjcxYjIxMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKQEAgLTc2LDYgKzc2
LDIxIEBAIFJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBUEkKICAgICAgICAgICAgIHJlbW92
ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICB9CiAgICAgfQorICAgIGNvbnNvbGUgOiB7
CisgICAgICAgIG9uTWVzc2FnZUFkZGVkIDogeworICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8
ZnVuY3Rpb24+CisgICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KKyAgICAg
ICAgfQorICAgICAgICBnZXRNZXNzYWdlcyA6IDxmdW5jdGlvbj4KKyAgICAgICAgYWRkTWVzc2Fn
ZSA6IDxmdW5jdGlvbj4KKyAgICAgICAgU2V2ZXJpdHkgOiB7CisgICAgICAgICAgICBUaXAgOiAi
dGlwIgorICAgICAgICAgICAgRGVidWcgOiAiZGVidWciCisgICAgICAgICAgICBMb2cgOiAibG9n
IgorICAgICAgICAgICAgV2FybmluZyA6ICJ3YXJuaW5nIgorICAgICAgICAgICAgRXJyb3IgOiAi
ZXJyb3IiCisgICAgICAgIH0KKyAgICB9CiAgICAgb25SZXNldCA6IHsKICAgICAgICAgYWRkTGlz
dGVuZXIgOiA8ZnVuY3Rpb24+CiAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1j
b25zb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtY29uc29sZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOWYyMGJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtY29uc29sZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA0NzogZGVidWcgbWVzc2FnZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4OiB3
YXJuaW5nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogZXJyb3IgbWVzc2FnZQor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiB0cmFjZSBtZXNzYWdlCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTE6IGxvZyBtZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVk
IGFuZCBhIHN0cmluZzogJXMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBsb2cgbWVzc2FnZSBm
cm9tIGV2YWx1YXRlZCBjb2RlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDY6IGxvZyBtZXNzYWdl
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDc6IGRlYnVnIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA0ODogd2FybmluZyBtZXNzYWdlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IGVy
cm9yIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MDogdHJhY2UgbWVzc2FnZQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDUxOiBsb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBh
biBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTog
bG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZQorVGVzdHMgbWV0aG9kcyBvZiB3ZWJJbnNw
ZWN0b3IuY29uc29sZSBleHRlbnNpb24gQVBJCisKK1N0YXJ0ZWQgZXh0ZW5zaW9uLgorUnVubmlu
ZyB0ZXN0cy4uLgorUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEFkZENvbnNvbGVNZXNzYWdl
cworZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NDZsb2cgbWVzc2FnZSBjb25zb2xlLW1lc3NhZ2Ug
Y29uc29sZS1sb2ctbGV2ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5odG1sOjQ3ZGVidWcgbWVzc2Fn
ZSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5o
dG1sOjQ4d2FybmluZyBtZXNzYWdlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLXdhcm5pbmctbGV2
ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5odG1sOjQ5ZXJyb3IgbWVzc2FnZSBjb25zb2xlLW1lc3Nh
Z2UgY29uc29sZS1lcnJvci1sZXZlbAorZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NTBjb25zb2xl
LnRyYWNlKClsb2dleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo1MCBjb25zb2xlLW1lc3NhZ2UgY29u
c29sZS1sb2ctbGV2ZWwKK2V4dGVuc2lvbnMtY29uc29sZS5odG1sOjUxbG9nIG1lc3NhZ2Ugd2l0
aCB0d28gcGFyYW1ldGVycywgYW4gaW50ZWdlcjogNDIgYW5kIGEgc3RyaW5nOiBmb28gY29uc29s
ZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCitsb2cgbWVzc2FnZSBmcm9tIGV2YWx1YXRlZCBj
b2RlIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWxvZy1sZXZlbAorZGVidWcgbWVzc2FnZSBmcm9t
IGV4dGVuc2lvbiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1kZWJ1Zy1sZXZlbAordGVzdC11cmwu
aHRtbDo0MmxvZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xl
LWxvZy1sZXZlbAord2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIGNvbnNvbGUtbWVzc2Fn
ZSBjb25zb2xlLXdhcm5pbmctbGV2ZWwKK2Vycm9yIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24gY29u
c29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9u
X3Rlc3RHZXRDb25zb2xlTWVzc2FnZXMKK3sKKyAgICAwIDogeworICAgICAgICBzZXZlcml0eSA6
ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2UiCisgICAgICAgIHVybCA6IC4uLi9l
eHRlbnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNDYKKyAgICB9CisgICAgMSA6
IHsKKyAgICAgICAgc2V2ZXJpdHkgOiAibG9nIgorICAgICAgICB0ZXh0IDogImRlYnVnIG1lc3Nh
Z2UiCisgICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBs
aW5lIDogNDcKKyAgICB9CisgICAgMiA6IHsKKyAgICAgICAgc2V2ZXJpdHkgOiAid2FybmluZyIK
KyAgICAgICAgdGV4dCA6ICJ3YXJuaW5nIG1lc3NhZ2UiCisgICAgICAgIHVybCA6IC4uLi9leHRl
bnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNDgKKyAgICB9CisgICAgMyA6IHsK
KyAgICAgICAgc2V2ZXJpdHkgOiAiZXJyb3IiCisgICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2Fn
ZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxp
bmUgOiA0OQorICAgIH0KKyAgICA0IDogeworICAgICAgICBzZXZlcml0eSA6ICJsb2ciCisgICAg
ICAgIHRleHQgOiAidHJhY2UgbWVzc2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMt
Y29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA1MAorICAgIH0KKyAgICA1IDogeworICAgICAg
ICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2Ugd2l0aCB0d28g
cGFyYW1ldGVycywgYW4gaW50ZWdlcjogJWQgYW5kIGEgc3RyaW5nOiAlcyIKKyAgICAgICAgdXJs
IDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA1MQorICAgIH0K
KyAgICA2IDogeworICAgICAgICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9n
IG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZSIKKyAgICAgICAgbGluZSA6IDEKKyAgICB9Cisg
ICAgNyA6IHsKKyAgICAgICAgc2V2ZXJpdHkgOiAiZGVidWciCisgICAgICAgIHRleHQgOiAiZGVi
dWcgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIKKyAgICB9CisgICAgOCA6IHsKKyAgICAgICAgc2V2
ZXJpdHkgOiAibG9nIgorICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9u
IgorICAgICAgICB1cmwgOiB0ZXN0LXVybC5odG1sCisgICAgICAgIGxpbmUgOiA0MgorICAgIH0K
KyAgICA5IDogeworICAgICAgICBzZXZlcml0eSA6ICJ3YXJuaW5nIgorICAgICAgICB0ZXh0IDog
Indhcm5pbmcgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIKKyAgICB9CisgICAgMTAgOiB7CisgICAg
ICAgIHNldmVyaXR5IDogImVycm9yIgorICAgICAgICB0ZXh0IDogImVycm9yIG1lc3NhZ2UgZnJv
bSBleHRlbnNpb24iCisgICAgICAgIGxpbmUgOiA0MgorICAgIH0KK30KK1JVTk5JTkcgVEVTVDog
ZXh0ZW5zaW9uX3Rlc3RPbkNvbnNvbGVNZXNzYWdlQWRkZWQKK3sKKyAgICAwIDogeworICAgICAg
ICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2UiCisgICAgICAg
IHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5lIDogNDYKKyAg
ICB9Cit9Cit7CisgICAgMCA6IHsKKyAgICAgICAgc2V2ZXJpdHkgOiAibG9nIgorICAgICAgICB0
ZXh0IDogImRlYnVnIG1lc3NhZ2UiCisgICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNv
bGUuaHRtbAorICAgICAgICBsaW5lIDogNDcKKyAgICB9Cit9Cit7CisgICAgMCA6IHsKKyAgICAg
ICAgc2V2ZXJpdHkgOiAid2FybmluZyIKKyAgICAgICAgdGV4dCA6ICJ3YXJuaW5nIG1lc3NhZ2Ui
CisgICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorICAgICAgICBsaW5l
IDogNDgKKyAgICB9Cit9Cit7CisgICAgMCA6IHsKKyAgICAgICAgc2V2ZXJpdHkgOiAiZXJyb3Ii
CisgICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVu
c2lvbnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA0OQorICAgIH0KK30KK3sKKyAgICAw
IDogeworICAgICAgICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQgOiAidHJhY2UgbWVz
c2FnZSIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCisgICAgICAg
IGxpbmUgOiA1MAorICAgIH0KK30KK3sKKyAgICAwIDogeworICAgICAgICBzZXZlcml0eSA6ICJs
b2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2Ugd2l0aCB0d28gcGFyYW1ldGVycywgYW4g
aW50ZWdlcjogJWQgYW5kIGEgc3RyaW5nOiAlcyIKKyAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lv
bnMtY29uc29sZS5odG1sCisgICAgICAgIGxpbmUgOiA1MQorICAgIH0KK30KK3sKKyAgICAwIDog
eworICAgICAgICBzZXZlcml0eSA6ICJsb2ciCisgICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2Ug
ZnJvbSBldmFsdWF0ZWQgY29kZSIKKyAgICAgICAgbGluZSA6IDEKKyAgICB9Cit9CitBbGwgdGVz
dHMgZG9uZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLWNvbnNvbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zNGU5ZGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2Z1bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0Q29u
c29sZU1lc3NhZ2VzKG5leHRUZXN0KQoreworICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG1lc3NhZ2Vz
KQorICAgIHsKKyAgICAgICAgZHVtcE9iamVjdChtZXNzYWdlcywgeyB1cmw6ICJ1cmwiIH0pOwor
ICAgIH0KKyAgICB3ZWJJbnNwZWN0b3IuY29uc29sZS5nZXRNZXNzYWdlcyhjYWxsYmFja0FuZE5l
eHRUZXN0KGNhbGxiYWNrLCBuZXh0VGVzdCkpOworCit9CisKK2Z1bmN0aW9uIGV4dGVuc2lvbl90
ZXN0QWRkQ29uc29sZU1lc3NhZ2VzKG5leHRUZXN0KQoreworICAgIHdlYkluc3BlY3Rvci5jb25z
b2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUuU2V2ZXJpdHkuRGVidWcsICJkZWJ1
ZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIik7CisgICAgd2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRk
TWVzc2FnZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5TZXZlcml0eS5Mb2csICJsb2cgbWVzc2FnZSBm
cm9tIGV4dGVuc2lvbiIsICJ0ZXN0LXVybC5odG1sIiwgNDIpOworICAgIHdlYkluc3BlY3Rvci5j
b25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUuU2V2ZXJpdHkuV2FybmluZywg
Indhcm5pbmcgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIpOworICAgIHdlYkluc3BlY3Rvci5jb25z
b2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUuU2V2ZXJpdHkuRXJyb3IsICJlcnJv
ciBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIiwgbnVsbCwgNDIpOworICAgIGV2YWx1YXRlT25Gcm9u
dGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMoKTsgcmVw
bHkoKTsiLCBuZXh0VGVzdCkKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RPbkNvbnNvbGVN
ZXNzYWdlQWRkZWQobmV4dFRlc3QpCit7CisgICAgdmFyIGV4cGVjdGVkTWVzc2FnZXMgPSA3Owor
CisgICAgZnVuY3Rpb24gb25NZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgICAgICBkdW1wT2Jq
ZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCksIHsgdXJsOiAidXJs
IiB9KTsKKyAgICAgICAgaWYgKCEtLWV4cGVjdGVkTWVzc2FnZXMpIHsKKyAgICAgICAgICAgIHdl
Ykluc3BlY3Rvci5jb25zb2xlLm9uTWVzc2FnZUFkZGVkLnJlbW92ZUxpc3RlbmVyKG9uTWVzc2Fn
ZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIHdlYklu
c3BlY3Rvci5jb25zb2xlLm9uTWVzc2FnZUFkZGVkLmFkZExpc3RlbmVyKG9uTWVzc2FnZSk7Cisg
ICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJsb2coKTsiKTsKK30KKworZnVu
Y3Rpb24gbG9nKCkKK3sKKyAgICBjb25zb2xlLmxvZygibG9nIG1lc3NhZ2UiKTsKKyAgICBjb25z
b2xlLmRlYnVnKCJkZWJ1ZyBtZXNzYWdlIik7CisgICAgY29uc29sZS53YXJuKCJ3YXJuaW5nIG1l
c3NhZ2UiKTsKKyAgICBjb25zb2xlLmVycm9yKCJlcnJvciBtZXNzYWdlIik7CisgICAgY29uc29s
ZS50cmFjZSgidHJhY2UgbWVzc2FnZSIpOworICAgIGNvbnNvbGUubG9nKCJsb2cgbWVzc2FnZSB3
aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzIiwgNDIs
ICJmb28iKTsKKyAgICBldmFsKCJjb25zb2xlLmxvZygnbG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0
ZWQgY29kZScpIik7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2co
KTsgcnVuVGVzdCgpIj4KKzxwPlRlc3RzIG1ldGhvZHMgb2Ygd2ViSW5zcGVjdG9yLmNvbnNvbGUg
ZXh0ZW5zaW9uIEFQSTwvcD4KKzxkaXYgaWQ9InRlc3QtZGl2IiBjbGFzcz0idGVzdCI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE4ZDJmOC4uNjE1YjBhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDExLTA5LTAyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNl
cUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lvbnMgQVBJ
XSBleHBvc2UgY29uc29sZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY3NTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xl
Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLmdldCB0ZXh0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUuZ2V0IHBh
cmFtZXRlcnMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkluc3BlY3RvckV4
dGVuc2lvbkFQSSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkNvbnNvbGUucHJv
dG90eXBlLmdldE1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVu
c2lvbkFQSS5Db25zb2xlLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5Db25zb2xlLnByb3RvdHlwZS5nZXQgTWVzc2FnZUxl
dmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5OZXR3b3Jr
LmRpc3BhdGNoUmVxdWVzdEV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4
dGVuc2lvbkFQSS5OZXR3b3JrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVu
c2lvbkFQSS5BdWRpdENhdGVnb3J5SW1wbC5kaXNwYXRjaEF1ZGl0RXZlbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0Q2F0ZWdvcnlJbXBsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS5JbnNwZWN0ZWRXaW5kb3cu
ZGlzcGF0Y2hSZXNvdXJjZUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4
dGVuc2lvbkFQSS5JbnNwZWN0ZWRXaW5kb3cuZGlzcGF0Y2hSZXNvdXJjZUNvbnRlbnRFdmVudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuSW5zcGVjdGVkV2lu
ZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5jb21tb25FeHRlbnNpb25TeW1ib2xzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlcnZlci5wcm90b3R5cGUuX25vdGlmeUNvbnNvbGVNZXNzYWdlQWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uR2V0Q29uc29sZU1lc3Nh
Z2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9v
bkFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlLl9tYWtlQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX21ha2VDb25zb2xlTWVzc2FnZS5jb252ZXJ0UGFy
YW1ldGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBl
Ll9kaXNwYXRjaENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlLmluaXRFeHRlbnNpb25zKToKKwogMjAxMS0wOS0wNyAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCA1MjAzYzdhLi5jN2JkMWI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3Nh
Z2UuanMKQEAgLTQ0NCw2ICs0NDQsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHNvdXJjZVN0cmluZyArICIgIiArIHR5cGVTdHJp
bmcgKyAiICIgKyBsZXZlbFN0cmluZyArICI6ICIgKyB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLnRl
eHRDb250ZW50ICsgIlxuIiArIHRoaXMudXJsICsgIiBsaW5lICIgKyB0aGlzLmxpbmU7CiAgICAg
fSwKIAorICAgIGdldCB0ZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9tZXNzYWdl
VGV4dDsKKyAgICB9LAorCiAgICAgaXNFcXVhbDogZnVuY3Rpb24obXNnKQogICAgIHsKICAgICAg
ICAgaWYgKCFtc2cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvbkFQSS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RXh0ZW5zaW9uQVBJLmpzCmluZGV4IDIyZjIyZDEuLjJlOTA1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCkBAIC05Myw2ICs5
Myw3IEBAIGZ1bmN0aW9uIEluc3BlY3RvckV4dGVuc2lvbkFQSSgpCiAgICAgdGhpcy5uZXR3b3Jr
ID0gbmV3IE5ldHdvcmsoKTsKICAgICBkZWZpbmVEZXByZWNhdGVkUHJvcGVydHkodGhpcywgIndl
Ykluc3BlY3RvciIsICJyZXNvdXJjZXMiLCAibmV0d29yayIpOwogICAgIHRoaXMudGltZWxpbmUg
PSBuZXcgVGltZWxpbmUoKTsKKyAgICB0aGlzLmNvbnNvbGUgPSBuZXcgQ29uc29sZSgpOwogCiAg
ICAgdGhpcy5vblJlc2V0ID0gbmV3IEV2ZW50U2luaygicmVzZXQiKTsKIH0KQEAgLTEwNCwxNSAr
MTA1LDM3IEBAIEluc3BlY3RvckV4dGVuc2lvbkFQSS5wcm90b3R5cGUgPSB7CiAgICAgfQogfQog
CitmdW5jdGlvbiBDb25zb2xlKCkKK3sKKyAgICB0aGlzLm9uTWVzc2FnZUFkZGVkID0gbmV3IEV2
ZW50U2luaygiY29uc29sZS1tZXNzYWdlLWFkZGVkIik7Cit9CisKK0NvbnNvbGUucHJvdG90eXBl
ID0geworICAgIGdldE1lc3NhZ2VzOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAg
IGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJnZXRDb25zb2xlTWVzc2Fn
ZXMiIH0sIGNhbGxiYWNrKTsKKyAgICB9LAorCisgICAgYWRkTWVzc2FnZTogZnVuY3Rpb24oc2V2
ZXJpdHksIHRleHQsIHVybCwgbGluZSkKKyAgICB7CisgICAgICAgIGV4dGVuc2lvblNlcnZlci5z
ZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJhZGRDb25zb2xlTWVzc2FnZSIsIHNldmVyaXR5OiBzZXZl
cml0eSwgdGV4dDogdGV4dCwgdXJsOiB1cmwsIGxpbmU6IGxpbmUgfSk7CisgICAgfSwKKworICAg
IGdldCBTZXZlcml0eSgpCisgICAgeworICAgICAgICByZXR1cm4gYXBpUHJpdmF0ZS5jb25zb2xl
LlNldmVyaXR5OworICAgIH0sCit9OworCiBmdW5jdGlvbiBOZXR3b3JrKCkKIHsKLSAgICBmdW5j
dGlvbiByZXF1ZXN0RGlzcGF0Y2gobWVzc2FnZSkKKyAgICBmdW5jdGlvbiBkaXNwYXRjaFJlcXVl
c3RFdmVudChtZXNzYWdlKQogICAgIHsKICAgICAgICAgdmFyIHJlcXVlc3QgPSBtZXNzYWdlLmFy
Z3VtZW50c1sxXTsKICAgICAgICAgcmVxdWVzdC5fX3Byb3RvX18gPSBuZXcgUmVxdWVzdChtZXNz
YWdlLmFyZ3VtZW50c1swXSk7CiAgICAgICAgIHRoaXMuX2ZpcmUocmVxdWVzdCk7CiAgICAgfQot
ICAgIHRoaXMub25SZXF1ZXN0RmluaXNoZWQgPSBuZXcgRXZlbnRTaW5rKCJuZXR3b3JrLXJlcXVl
c3QtZmluaXNoZWQiLCByZXF1ZXN0RGlzcGF0Y2gpOworICAgIHRoaXMub25SZXF1ZXN0RmluaXNo
ZWQgPSBuZXcgRXZlbnRTaW5rKCJuZXR3b3JrLXJlcXVlc3QtZmluaXNoZWQiLCBkaXNwYXRjaFJl
cXVlc3RFdmVudCk7CiAgICAgZGVmaW5lRGVwcmVjYXRlZFByb3BlcnR5KHRoaXMsICJuZXR3b3Jr
IiwgIm9uRmluaXNoZWQiLCAib25SZXF1ZXN0RmluaXNoZWQiKTsKICAgICB0aGlzLm9uTmF2aWdh
dGVkID0gbmV3IEV2ZW50U2luaygiaW5zcGVjdGVkVVJMQ2hhbmdlZCIpOwogfQpAQCAtMjcxLDcg
KzI5NCw3IEBAIEF1ZGl0cy5wcm90b3R5cGUgPSB7CiAKIGZ1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJ
bXBsKGlkKQogewotICAgIGZ1bmN0aW9uIGF1ZGl0UmVzdWx0RGlzcGF0Y2gocmVxdWVzdCkKKyAg
ICBmdW5jdGlvbiBkaXNwYXRjaEF1ZGl0RXZlbnQocmVxdWVzdCkKICAgICB7CiAgICAgICAgIHZh
ciBhdWRpdFJlc3VsdCA9IG5ldyBBdWRpdFJlc3VsdChyZXF1ZXN0LmFyZ3VtZW50c1swXSk7CiAg
ICAgICAgIHRyeSB7CkBAIC0yODIsNyArMzA1LDcgQEAgZnVuY3Rpb24gQXVkaXRDYXRlZ29yeUlt
cGwoaWQpCiAgICAgICAgIH0KICAgICB9CiAgICAgdGhpcy5faWQgPSBpZDsKLSAgICB0aGlzLm9u
QXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQtc3RhcnRlZC0iICsgaWQsIGF1ZGl0
UmVzdWx0RGlzcGF0Y2gpOworICAgIHRoaXMub25BdWRpdFN0YXJ0ZWQgPSBuZXcgRXZlbnRTaW5r
KCJhdWRpdC1zdGFydGVkLSIgKyBpZCwgZGlzcGF0Y2hBdWRpdEV2ZW50KTsKIH0KIAogZnVuY3Rp
b24gQXVkaXRSZXN1bHRJbXBsKGlkKQpAQCAtMzU3LDE2ICszODAsMTYgQEAgQXVkaXRSZXN1bHRO
b2RlLnByb3RvdHlwZSA9IHsKIAogZnVuY3Rpb24gSW5zcGVjdGVkV2luZG93KCkKIHsKLSAgICBm
dW5jdGlvbiByZXNvdXJjZURpc3BhdGNoKG1lc3NhZ2UpCisgICAgZnVuY3Rpb24gZGlzcGF0Y2hS
ZXNvdXJjZUV2ZW50KG1lc3NhZ2UpCiAgICAgewogICAgICAgICB0aGlzLl9maXJlKG5ldyBSZXNv
dXJjZShtZXNzYWdlLmFyZ3VtZW50c1swXSkpOwogICAgIH0KLSAgICBmdW5jdGlvbiByZXNvdXJj
ZUNvbnRlbnREaXNwYXRjaChtZXNzYWdlKQorICAgIGZ1bmN0aW9uIGRpc3BhdGNoUmVzb3VyY2VD
b250ZW50RXZlbnQobWVzc2FnZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2ZpcmUobmV3IFJlc291
cmNlKG1lc3NhZ2UuYXJndW1lbnRzWzBdKSwgbWVzc2FnZS5hcmd1bWVudHNbMV0pOwogICAgIH0K
LSAgICB0aGlzLm9uUmVzb3VyY2VBZGRlZCA9IG5ldyBFdmVudFNpbmsoInJlc291cmNlLWFkZGVk
IiwgcmVzb3VyY2VEaXNwYXRjaCk7Ci0gICAgdGhpcy5vblJlc291cmNlQ29udGVudENvbW1pdHRl
ZCA9IG5ldyBFdmVudFNpbmsoInJlc291cmNlLWNvbnRlbnQtY29tbWl0dGVkIiwgcmVzb3VyY2VD
b250ZW50RGlzcGF0Y2gpOworICAgIHRoaXMub25SZXNvdXJjZUFkZGVkID0gbmV3IEV2ZW50U2lu
aygicmVzb3VyY2UtYWRkZWQiLCBkaXNwYXRjaFJlc291cmNlRXZlbnQpOworICAgIHRoaXMub25S
ZXNvdXJjZUNvbnRlbnRDb21taXR0ZWQgPSBuZXcgRXZlbnRTaW5rKCJyZXNvdXJjZS1jb250ZW50
LWNvbW1pdHRlZCIsIGRpc3BhdGNoUmVzb3VyY2VDb250ZW50RXZlbnQpOwogfQogCiBJbnNwZWN0
ZWRXaW5kb3cucHJvdG90eXBlID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNvbW1vbi5qcwppbmRleCA4MDM0MDAxLi5kYzIxMDIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkNv
bW1vbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
bkNvbW1vbi5qcwpAQCAtMzksNiArMzksMTYgQEAgV2ViSW5zcGVjdG9yLmNvbW1vbkV4dGVuc2lv
blN5bWJvbHMgPSBmdW5jdGlvbihhcGlQcml2YXRlKQogICAgICAgICBXYXJuaW5nOiAid2Fybmlu
ZyIsCiAgICAgICAgIFNldmVyZTogInNldmVyZSIKICAgICB9OworCisgICAgaWYgKCFhcGlQcml2
YXRlLmNvbnNvbGUpCisgICAgICAgIGFwaVByaXZhdGUuY29uc29sZSA9IHt9OworICAgIGFwaVBy
aXZhdGUuY29uc29sZS5TZXZlcml0eSA9IHsKKyAgICAgICAgVGlwOiAidGlwIiwKKyAgICAgICAg
RGVidWc6ICJkZWJ1ZyIsCisgICAgICAgIExvZzogImxvZyIsCisgICAgICAgIFdhcm5pbmc6ICJ3
YXJuaW5nIiwKKyAgICAgICAgRXJyb3I6ICJlcnJvciIKKyAgICB9OwogfQogCiBXZWJJbnNwZWN0
b3IuZXh0ZW5zaW9uQVBJID0ge307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCmluZGV4IDA4NmIwNWIuLmIxNzYzMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2Vy
dmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
U2VydmVyLmpzCkBAIC00MSwxMyArNDEsMTUgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZl
ciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9hbGxvd2VkT3JpZ2lucyA9IHt9OwogICAgIHRoaXMu
X3N0YXR1cyA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU3RhdHVzKCk7CiAKLSAgICB0aGlz
Ll9yZWdpc3RlckhhbmRsZXIoImFkZFJlcXVlc3RIZWFkZXJzIiwgdGhpcy5fb25BZGRSZXF1ZXN0
SGVhZGVycy5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImFkZEF1ZGl0
Q2F0ZWdvcnkiLCB0aGlzLl9vbkFkZEF1ZGl0Q2F0ZWdvcnkuYmluZCh0aGlzKSk7CiAgICAgdGhp
cy5fcmVnaXN0ZXJIYW5kbGVyKCJhZGRBdWRpdFJlc3VsdCIsIHRoaXMuX29uQWRkQXVkaXRSZXN1
bHQuYmluZCh0aGlzKSk7CisgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJhZGRDb25zb2xlTWVz
c2FnZSIsIHRoaXMuX29uQWRkQ29uc29sZU1lc3NhZ2UuYmluZCh0aGlzKSk7CisgICAgdGhpcy5f
cmVnaXN0ZXJIYW5kbGVyKCJhZGRSZXF1ZXN0SGVhZGVycyIsIHRoaXMuX29uQWRkUmVxdWVzdEhl
YWRlcnMuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJjcmVhdGVQYW5l
bCIsIHRoaXMuX29uQ3JlYXRlUGFuZWwuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJI
YW5kbGVyKCJjcmVhdGVTaWRlYmFyUGFuZSIsIHRoaXMuX29uQ3JlYXRlU2lkZWJhclBhbmUuYmlu
ZCh0aGlzKSk7CiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJldmFsdWF0ZU9uSW5zcGVjdGVk
UGFnZSIsIHRoaXMuX29uRXZhbHVhdGVPbkluc3BlY3RlZFBhZ2UuYmluZCh0aGlzKSk7CiAgICAg
dGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJnZXRIQVIiLCB0aGlzLl9vbkdldEhBUi5iaW5kKHRoaXMp
KTsKKyAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldENvbnNvbGVNZXNzYWdlcyIsIHRoaXMu
X29uR2V0Q29uc29sZU1lc3NhZ2VzLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3JlZ2lzdGVySGFu
ZGxlcigiZ2V0UGFnZVJlc291cmNlcyIsIHRoaXMuX29uR2V0UGFnZVJlc291cmNlcy5iaW5kKHRo
aXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIoImdldFJlcXVlc3RDb250ZW50IiwgdGhp
cy5fb25HZXRSZXF1ZXN0Q29udGVudC5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3Rlckhh
bmRsZXIoImdldFJlc291cmNlQ29udGVudCIsIHRoaXMuX29uR2V0UmVzb3VyY2VDb250ZW50LmJp
bmQodGhpcykpOwpAQCAtNjEsMTcgKzYzLDEwIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fcmVnaXN0ZXJIYW5kbGVyKCJzdWJzY3JpYmUiLCB0
aGlzLl9vblN1YnNjcmliZS5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWdpc3RlckhhbmRsZXIo
InVuc3Vic2NyaWJlIiwgdGhpcy5fb25VbnN1YnNjcmliZS5iaW5kKHRoaXMpKTsKIAotICAgIHRo
aXMuX3JlZ2lzdGVyU3Vic2NyaXB0aW9uSGFuZGxlcigidGltZWxpbmUtZXZlbnQtcmVjb3JkZWQi
LCBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLnN0YXJ0LmJpbmQoV2ViSW5zcGVjdG9yLnRp
bWVsaW5lTWFuYWdlciksIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc3RvcC5iaW5kKFdl
Ykluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIpKTsKLQogICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgdGhpcy5fb25XaW5kb3dNZXNzYWdlLmJpbmQodGhpcyksIGZhbHNlKTsK
IH0KIAogV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7Ci0gICAgX2Fk
ZFJlY29yZFRvVGltZWxpbmU6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5f
cG9zdE5vdGlmaWNhdGlvbigidGltZWxpbmUtZXZlbnQtcmVjb3JkZWQiLCBldmVudC5kYXRhKTsK
LSAgICB9LAotCiAgICAgbm90aWZ5T2JqZWN0U2VsZWN0ZWQ6IGZ1bmN0aW9uKHBhbmVsSWQsIG9i
amVjdElkKQogICAgIHsKICAgICAgICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicGFuZWwtb2Jq
ZWN0U2VsZWN0ZWQtIiArIHBhbmVsSWQsIG9iamVjdElkKTsKQEAgLTEyMCwyOSArMTE1LDExIEBA
IFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICBkZWxl
dGUgdGhpcy5fY2xpZW50T2JqZWN0c1thdWRpdFJ1bi5pZF07CiAgICAgfSwKIAotICAgIF9ub3Rp
ZnlSZXNvdXJjZUFkZGVkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZXNv
dXJjZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oInJlc291
cmNlLWFkZGVkIiwgdGhpcy5fbWFrZVJlc291cmNlKHJlc291cmNlKSk7Ci0gICAgfSwKLQogICAg
IG5vdGlmeVJlc291cmNlQ29udGVudENvbW1pdHRlZDogZnVuY3Rpb24ocmVzb3VyY2UsIGNvbnRl
bnQpCiAgICAgewogICAgICAgICB0aGlzLl9wb3N0Tm90aWZpY2F0aW9uKCJyZXNvdXJjZS1jb250
ZW50LWNvbW1pdHRlZCIsIHRoaXMuX21ha2VSZXNvdXJjZShyZXNvdXJjZSksIGNvbnRlbnQpOwog
ICAgIH0sCiAKLSAgICBfbm90aWZ5UmVxdWVzdEZpbmlzaGVkOiBmdW5jdGlvbihldmVudCkKLSAg
ICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKHRoaXMu
X2hhc1N1YnNjcmliZXJzKCJuZXR3b3JrLXJlcXVlc3QtZmluaXNoZWQiKSkKLSAgICAgICAgICAg
IHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oIm5ldHdvcmstcmVxdWVzdC1maW5pc2hlZCIsIHRoaXMu
X3JlcXVlc3RJZChyZXF1ZXN0KSwgKG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnkocmVxdWVzdCkp
LmJ1aWxkKCkpOwotICAgIH0sCi0KLSAgICBfaGFzU3Vic2NyaWJlcnM6IGZ1bmN0aW9uKHR5cGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gISF0aGlzLl9zdWJzY3JpYmVyc1t0eXBlXTsKLSAgICB9
LAotCiAgICAgX3Bvc3ROb3RpZmljYXRpb246IGZ1bmN0aW9uKHR5cGUsIGRldGFpbHMpCiAgICAg
ewogICAgICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpYmVyc1t0eXBlXTsKQEAg
LTE2NCw3ICsxNDEsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICB0aGlzLl9zdWJzY3JpYmVyc1ttZXNzYWdl
LnR5cGVdID0gWyBwb3J0IF07CiAgICAgICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uU3Rh
cnRIYW5kbGVyc1ttZXNzYWdlLnR5cGVdKQotICAgICAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlw
dGlvblN0YXJ0SGFuZGxlcnNbbWVzc2FnZS50eXBlXSgpCisgICAgICAgICAgICAgICAgdGhpcy5f
c3Vic2NyaXB0aW9uU3RhcnRIYW5kbGVyc1ttZXNzYWdlLnR5cGVdKCk7CiAgICAgICAgIH0KICAg
ICB9LAogCkBAIC0xNzcsNyArMTU0LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghc3Vic2NyaWJlcnMubGVuZ3RoKSB7CiAgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fc3Vic2NyaWJlcnNbbWVzc2FnZS50eXBlXTsKICAgICAgICAgICAg
IGlmICh0aGlzLl9zdWJzY3JpcHRpb25TdG9wSGFuZGxlcnNbbWVzc2FnZS50eXBlXSkKLSAgICAg
ICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25TdG9wSGFuZGxlcnNbbWVzc2FnZS50eXBlXSgp
CisgICAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uU3RvcEhhbmRsZXJzW21lc3NhZ2Uu
dHlwZV0oKTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTMwNSw5ICsyODIsNzYgQEAgV2ViSW5z
cGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5ldmFsdWF0ZShldmFsRXhwcmVzc2lvbiwgIiIsIHRydWUsIGNhbGxiYWNrLmJpbmQodGhpcykp
OwogICAgIH0sCiAKLSAgICBfZGlzcGF0Y2hDYWxsYmFjazogZnVuY3Rpb24ocmVxdWVzdElkLCBw
b3J0LCByZXN1bHQpCisgICAgX29uR2V0Q29uc29sZU1lc3NhZ2VzOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHsgY29tbWFuZDogImNhbGxiYWNrIiwgcmVxdWVz
dElkOiByZXF1ZXN0SWQsIHJlc3VsdDogcmVzdWx0IH0pOworICAgICAgICByZXR1cm4gV2ViSW5z
cGVjdG9yLmNvbnNvbGUubWVzc2FnZXMubWFwKHRoaXMuX21ha2VDb25zb2xlTWVzc2FnZSk7Cisg
ICAgfSwKKworICAgIF9vbkFkZENvbnNvbGVNZXNzYWdlOiBmdW5jdGlvbihtZXNzYWdlKQorICAg
IHsKKyAgICAgICAgZnVuY3Rpb24gY29udmVydFNldmVyaXR5KGxldmVsKQorICAgICAgICB7Cisg
ICAgICAgICAgICBzd2l0Y2ggKGxldmVsKSB7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuU2V2ZXJpdHkuVGlwOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5UaXA7
CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUu
U2V2ZXJpdHkuTG9nOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2c7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuU2V2ZXJpdHkuV2FybmluZzoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2
ZWwuV2FybmluZzsKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5leHRlbnNpb25B
UEkuY29uc29sZS5TZXZlcml0eS5FcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3I7CisgICAgICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuU2V2ZXJpdHkuRGVi
dWc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZUxldmVsLkRlYnVnOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IHZhciBsZXZlbCA9IGNvbnZlcnRTZXZlcml0eShtZXNzYWdlLnNldmVyaXR5KTsKKyAgICAgICAg
aWYgKCFsZXZlbCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuRV9CQURBUkcoIm1l
c3NhZ2Uuc2V2ZXJpdHkiLCBtZXNzYWdlLnNldmVyaXR5KTsKKworICAgICAgICB2YXIgY29uc29s
ZU1lc3NhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKAorICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSlMsCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nLAorICAgICAgICAg
ICAgbGV2ZWwsCisgICAgICAgICAgICBtZXNzYWdlLmxpbmUsCisgICAgICAgICAgICBtZXNzYWdl
LnVybCwKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICBtZXNzYWdlLnRleHQsCisgICAgICAg
ICAgICBudWxsLCAvLyBwYXJhbWV0ZXJzCisgICAgICAgICAgICBudWxsLCAvLyBzdGFja1RyYWNl
CisgICAgICAgICAgICBudWxsKTsgLy8gbmV0d29ya1JlcXVlc3RJZAorICAgICAgICBXZWJJbnNw
ZWN0b3IuY29uc29sZS5hZGRNZXNzYWdlKGNvbnNvbGVNZXNzYWdlKTsKKyAgICB9LAorCisgICAg
X21ha2VDb25zb2xlTWVzc2FnZTogZnVuY3Rpb24obWVzc2FnZSkKKyAgICB7CisgICAgICAgIGZ1
bmN0aW9uIGNvbnZlcnRMZXZlbChsZXZlbCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFs
ZXZlbCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBzd2l0Y2ggKGxldmVs
KSB7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZUxldmVsLlRpcDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5l
eHRlbnNpb25BUEkuY29uc29sZS5TZXZlcml0eS5UaXA7CisgICAgICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkxvZzoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5leHRlbnNpb25BUEkuY29uc29sZS5TZXZlcml0
eS5Mb2c7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
TWVzc2FnZUxldmVsLldhcm5pbmc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuU2V2ZXJpdHkuV2FybmluZzsKKyAgICAgICAgICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3I6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNv
bnNvbGUuU2V2ZXJpdHkuRXJyb3I7CisgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkRlYnVnOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLmV4dGVuc2lvbkFQSS5jb25zb2xlLlNldmVyaXR5LkRlYnVnOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuZXh0ZW5zaW9uQVBJLmNvbnNvbGUuU2V2ZXJpdHkuTG9nOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIHZhciByZXN1bHQgPSB7CisgICAgICAgICAgICBzZXZlcml0
eTogY29udmVydExldmVsKG1lc3NhZ2UubGV2ZWwpLAorICAgICAgICAgICAgdGV4dDogbWVzc2Fn
ZS50ZXh0LAorICAgICAgICB9OworICAgICAgICBpZiAobWVzc2FnZS51cmwpCisgICAgICAgICAg
ICByZXN1bHQudXJsID0gbWVzc2FnZS51cmw7CisgICAgICAgIGlmIChtZXNzYWdlLmxpbmUpCisg
ICAgICAgICAgICByZXN1bHQubGluZSA9IG1lc3NhZ2UubGluZTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9LAogCiAgICAgX29uR2V0SEFSOiBmdW5jdGlvbigpCkBAIC00MjQsMTcgKzQ2
OCw2MSBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgYXVkaXRSdW4uY2FuY2VsKCk7CiAgICAgfSwKIAorICAgIF9kaXNwYXRjaENhbGxiYWNrOiBm
dW5jdGlvbihyZXF1ZXN0SWQsIHBvcnQsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIHBvcnQucG9z
dE1lc3NhZ2UoeyBjb21tYW5kOiAiY2FsbGJhY2siLCByZXF1ZXN0SWQ6IHJlcXVlc3RJZCwgcmVz
dWx0OiByZXN1bHQgfSk7CisgICAgfSwKKwogICAgIGluaXRFeHRlbnNpb25zOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICAvLyBUaGUgbmV0d29ya01hbmFnZXIgaXMgbm9ybWFsbHkgY3JlYXRl
ZCBhZnRlciB0aGUgRXh0ZW5zaW9uU2VydmVyIGlzIGNvbnN0cnVjdGVkLCBidXQgYmVmb3JlIGlu
aXRFeHRlbnNpb25zKCkgaXMgY2FsbGVkLgotICAgICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRU
eXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9ub3RpZnlSZXF1ZXN0RmluaXNoZWQsIHRoaXMp
OwotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5JbnNwZWN0ZWRVUkxD
aGFuZ2VkLCB0aGlzLl9pbnNwZWN0ZWRVUkxDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgdGhpcy5fbm90aWZ5UmVz
b3VyY2VBZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50VHlwZXMu
VGltZWxpbmVFdmVudFJlY29yZGVkLCB0aGlzLl9hZGRSZWNvcmRUb1RpbWVsaW5lLCB0aGlzKTsK
KyAgICAgICAgdGhpcy5fcmVnaXN0ZXJBdXRvc3Vic2NyaXB0aW9uSGFuZGxlcigiY29uc29sZS1t
ZXNzYWdlLWFkZGVkIiwKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLCBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX25vdGlmeUNvbnNv
bGVNZXNzYWdlQWRkZWQpOworICAgICAgICB0aGlzLl9yZWdpc3RlckF1dG9zdWJzY3JpcHRpb25I
YW5kbGVyKCJuZXR3b3JrLXJlcXVlc3QtZmluaXNoZWQiLAorICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLm5ldHdvcmtNYW5hZ2VyLCBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBl
cy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9ub3RpZnlSZXF1ZXN0RmluaXNoZWQpOworICAgICAg
ICB0aGlzLl9yZWdpc3RlckF1dG9zdWJzY3JpcHRpb25IYW5kbGVyKCJyZXNvdXJjZS1hZGRlZCIs
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwsIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX25vdGlm
eVJlc291cmNlQWRkZWQpOworCisgICAgICAgIGZ1bmN0aW9uIG9uVGltZWxpbmVTdWJzY3JpcHRp
b25TdGFydGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5l
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIuRXZl
bnRUeXBlcy5UaW1lbGluZUV2ZW50UmVjb3JkZWQsCisgICAgICAgICAgICAgICAgdGhpcy5fbm90
aWZ5VGltZWxpbmVFdmVudFJlY29yZGVkLCB0aGlzKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci50aW1lbGluZU1hbmFnZXIuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBv
blRpbWVsaW5lU3Vic2NyaXB0aW9uU3RvcHBlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuc3RvcCgpOworICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnRpbWVsaW5lTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1l
bGluZU1hbmFnZXIuRXZlbnRUeXBlcy5UaW1lbGluZUV2ZW50UmVjb3JkZWQsCisgICAgICAgICAg
ICAgICAgdGhpcy5fbm90aWZ5VGltZWxpbmVFdmVudFJlY29yZGVkLCB0aGlzKTsKKyAgICAgICAg
fQorICAgICAgICB0aGlzLl9yZWdpc3RlclN1YnNjcmlwdGlvbkhhbmRsZXIoInRpbWVsaW5lLWV2
ZW50LXJlY29yZGVkIiwgb25UaW1lbGluZVN1YnNjcmlwdGlvblN0YXJ0ZWQuYmluZCh0aGlzKSwg
b25UaW1lbGluZVN1YnNjcmlwdGlvblN0b3BwZWQuYmluZCh0aGlzKSk7CiAKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuSW5zcGVjdGVkVVJMQ2hhbmdlZCwKKyAgICAg
ICAgICAgIHRoaXMuX2luc3BlY3RlZFVSTENoYW5nZWQsIHRoaXMpOwogICAgICAgICBJbnNwZWN0
b3JFeHRlbnNpb25SZWdpc3RyeS5nZXRFeHRlbnNpb25zQXN5bmMoKTsKICAgICB9LAogCisgICAg
X25vdGlmeUNvbnNvbGVNZXNzYWdlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigiY29uc29sZS1tZXNzYWdlLWFkZGVkIiwgdGhpcy5f
bWFrZUNvbnNvbGVNZXNzYWdlKGV2ZW50LmRhdGEpKTsKKyAgICB9LAorCisgICAgX25vdGlmeVJl
c291cmNlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHJlc291cmNl
ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicmVzb3VyY2Ut
YWRkZWQiLCB0aGlzLl9tYWtlUmVzb3VyY2UocmVzb3VyY2UpKTsKKyAgICB9LAorCisgICAgX25v
dGlmeVJlcXVlc3RGaW5pc2hlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIg
cmVxdWVzdCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oIm5l
dHdvcmstcmVxdWVzdC1maW5pc2hlZCIsIHRoaXMuX3JlcXVlc3RJZChyZXF1ZXN0KSwgKG5ldyBX
ZWJJbnNwZWN0b3IuSEFSRW50cnkocmVxdWVzdCkpLmJ1aWxkKCkpOworICAgIH0sCisKKyAgICBf
bm90aWZ5VGltZWxpbmVFdmVudFJlY29yZGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oInRpbWVsaW5lLWV2ZW50LXJlY29yZGVkIiwgZXZl
bnQuZGF0YSk7CisgICAgfSwKKwogICAgIF9hZGRFeHRlbnNpb25zOiBmdW5jdGlvbihleHRlbnNp
b25zKQogICAgIHsKICAgICAgICAgY29uc3QgdXJsT3JpZ2luUmVnRXhwID0gbmV3IFJlZ0V4cCgi
KFteOl0rOlwvXC9bXi9dKilcLyIpOyAvLyBDYW4ndCB1c2UgcmVnZXhwIGxpdGVyYWwgaGVyZSwg
TWluSlMgY2hva2VzIG9uIGl0LgpAQCAtNTIxLDYgKzYwOSwxMyBAQCBXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uU3Rv
cEhhbmRsZXJzW2V2ZW50VG9waWNdID0gIG9uVW5zdWJzY3JpYmVMYXN0OwogICAgIH0sCiAKKyAg
ICBfcmVnaXN0ZXJBdXRvc3Vic2NyaXB0aW9uSGFuZGxlcjogZnVuY3Rpb24oZXZlbnRUb3BpYywg
ZXZlbnRUYXJnZXQsIGZyb250ZW5kRXZlbnRUeXBlLCBoYW5kbGVyKQorICAgIHsKKyAgICAgICAg
dGhpcy5fcmVnaXN0ZXJTdWJzY3JpcHRpb25IYW5kbGVyKGV2ZW50VG9waWMsCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyLmJpbmQoZXZl
bnRUYXJnZXQsIGZyb250ZW5kRXZlbnRUeXBlLCBoYW5kbGVyLCB0aGlzKSwKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIuYmluZChl
dmVudFRhcmdldCwgZnJvbnRlbmRFdmVudFR5cGUsIGhhbmRsZXIsIHRoaXMpKTsKKyAgICB9LAor
CiAgICAgX2V4cGFuZFJlc291cmNlUGF0aDogZnVuY3Rpb24oZXh0ZW5zaW9uUGF0aCwgcmVzb3Vy
Y2VQYXRoKQogICAgIHsKICAgICAgICAgaWYgKCFyZXNvdXJjZVBhdGgpCg==
</data>
<flag name="review"
          id="103032"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>