<?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>151286</bug_id>
          
          <creation_ts>2015-11-13 17:34:09 -0800</creation_ts>
          <short_desc>Highlight the alarming test results in the graphics benchmark results page</short_desc>
          <delta_ts>2015-11-16 15:52:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1141999</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-11-13 17:34:09 -0800</bug_when>
    <thetext>Because the number of tests has been increasing and many data are displayed for every test, we need an easy way to show visually the inaccurate results. The criteria I chose is the following:

If the standard deviation of the test complexity or the frame rate is more than 10%, the standard deviation and the test name will be displayed in red.
If the average frame rate is not in the range = [(desired_frame_rate - 2) .. (desired_frame_rate - 2)], the average frame rate and the test name will be displayed in red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142008</commentid>
    <comment_count>1</comment_count>
      <attachid>265524</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-11-13 18:27:20 -0800</bug_when>
    <thetext>Created attachment 265524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142014</commentid>
    <comment_count>2</comment_count>
      <attachid>265524</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-11-13 19:09:20 -0800</bug_when>
    <thetext>Comment on attachment 265524
Patch

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

&gt; PerformanceTests/Animometer/resources/extensions.js:323
&gt; +        td.style.color = color || &quot;black&quot;;

Can this be done in CSS?

&gt; PerformanceTests/Animometer/resources/extensions.js:330
&gt; +        td.style.color = color || &quot;black&quot;;

Can this be done in CSS?

&gt; PerformanceTests/Animometer/resources/extensions.js:372
&gt; +    _isAlarmingMeasurement: function(index, data, measurement, options)

Maybe &quot;unreliable&quot; or &quot;noisy&quot; instead of &quot;alarming&quot;.

&gt; PerformanceTests/Animometer/resources/extensions.js:375
&gt; +        if (measurement == Strings[&quot;JSON_MEASUREMENTS&quot;][3])
&gt; +            return data[Strings[&quot;JSON_MEASUREMENTS&quot;][3]] &gt;= 10;

3 is a magic number, as is 10.

&gt; PerformanceTests/Animometer/resources/extensions.js:378
&gt; +        if (index == 1 &amp;&amp; measurement == Strings[&quot;JSON_MEASUREMENTS&quot;][0])
&gt; +            return Math.abs(data[Strings[&quot;JSON_MEASUREMENTS&quot;][0]] - options[&quot;frame-rate&quot;]) &gt; 2;

0 and 2 are a magic numbers.

&gt; PerformanceTests/Animometer/resources/extensions.js:383
&gt; +    _isAlarmingTestResults: function(testResults, options)

results is plural, so areNoisyTestResults, or isNoisyTestResult

&gt; PerformanceTests/Animometer/resources/extensions.js:400
&gt; +                td.style.backgroundColor = &quot;yellow&quot;;

CSS?. td.classList.add(&apos;empty&apos;)

.empty { backgrouncColor: yellow; }

&gt; PerformanceTests/Animometer/resources/extensions.js:434
&gt; +                    this._showFixedNumber(row, data[measurement], 2, this._isAlarmingMeasurement(index - 2, data, measurement, options) ? &quot;red&quot; : null);

&quot;red&quot; should come from CSS.

&gt; PerformanceTests/Animometer/runner/resources/animometer.js:49
&gt; +        this._resultsTable.showIterations(json[Strings[&quot;JSON_RESULTS&quot;][0]], this.options);
&gt;          sectionsManager.showJSON(&quot;json&quot;, json[Strings[&quot;JSON_RESULTS&quot;][0]][0]);

This Strings[&quot;JSON_RESULTS&quot;][][] stuff too hard to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142333</commentid>
    <comment_count>3</comment_count>
      <attachid>265618</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-11-16 14:22:42 -0800</bug_when>
    <thetext>Created attachment 265618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142335</commentid>
    <comment_count>4</comment_count>
      <attachid>265524</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-11-16 14:26:39 -0800</bug_when>
    <thetext>Comment on attachment 265524
Patch

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

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:323
&gt;&gt; +        td.style.color = color || &quot;black&quot;;
&gt; 
&gt; Can this be done in CSS?

Done. Moved to CSS.

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:330
&gt;&gt; +        td.style.color = color || &quot;black&quot;;
&gt; 
&gt; Can this be done in CSS?

Done. Text color was moved to CSS.

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:372
&gt;&gt; +    _isAlarmingMeasurement: function(index, data, measurement, options)
&gt; 
&gt; Maybe &quot;unreliable&quot; or &quot;noisy&quot; instead of &quot;alarming&quot;.

Function was renamed to _isNoisyMeasurement().

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:375
&gt;&gt; +            return data[Strings[&quot;JSON_MEASUREMENTS&quot;][3]] &gt;= 10;
&gt; 
&gt; 3 is a magic number, as is 10.

A constant is used for the noise threshold. We may need to add a UI element to be set by the user.

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:378
&gt;&gt; +            return Math.abs(data[Strings[&quot;JSON_MEASUREMENTS&quot;][0]] - options[&quot;frame-rate&quot;]) &gt; 2;
&gt; 
&gt; 0 and 2 are a magic numbers.

A constant is used for the noise threshold. We may need to add a UI element to be set by the user.

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:383
&gt;&gt; +    _isAlarmingTestResults: function(testResults, options)
&gt; 
&gt; results is plural, so areNoisyTestResults, or isNoisyTestResult

Function was renamed to isNoisyTest()?

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:400
&gt;&gt; +                td.style.backgroundColor = &quot;yellow&quot;;
&gt; 
&gt; CSS?. td.classList.add(&apos;empty&apos;)
&gt; 
&gt; .empty { backgrouncColor: yellow; }

Done. Background color was moved to CSS.

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:434
&gt;&gt; +                    this._showFixedNumber(row, data[measurement], 2, this._isAlarmingMeasurement(index - 2, data, measurement, options) ? &quot;red&quot; : null);
&gt; 
&gt; &quot;red&quot; should come from CSS.

Done. Text color was moved to CSS.

&gt;&gt; PerformanceTests/Animometer/runner/resources/animometer.js:49
&gt;&gt;          sectionsManager.showJSON(&quot;json&quot;, json[Strings[&quot;JSON_RESULTS&quot;][0]][0]);
&gt; 
&gt; This Strings[&quot;JSON_RESULTS&quot;][][] stuff too hard to read.

Will be addressed in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142361</commentid>
    <comment_count>5</comment_count>
      <attachid>265618</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-16 15:24:43 -0800</bug_when>
    <thetext>Comment on attachment 265618
Patch

Rejecting attachment 265618 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 265618, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
824ee64cb6e6faad827b20803d9cae0b8db
r192486 = 342967a7ac7e367e3087ec7be1f1857a3ac17553
r192487 = 79e502480923be3865d58e4be67b1a4c49d008f5
r192489 = cd20c088fd743713948cbc21ed53930b5cc1437c
r192490 = 7bcfba0371cd3ecbc45cf6c3cba98bd648e069fe
r192491 = 4ac83a2d03fe019772cd95bba9292f33a499ce74
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/438578</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142365</commentid>
    <comment_count>6</comment_count>
      <attachid>265630</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-11-16 15:37:22 -0800</bug_when>
    <thetext>Created attachment 265630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142371</commentid>
    <comment_count>7</comment_count>
      <attachid>265630</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-16 15:52:49 -0800</bug_when>
    <thetext>Comment on attachment 265630
Patch

Clearing flags on attachment: 265630

Committed r192494: &lt;http://trac.webkit.org/changeset/192494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142372</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-16 15:52:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265524</attachid>
            <date>2015-11-13 18:27:20 -0800</date>
            <delta_ts>2015-11-16 14:22:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151286-20151113182713.patch</filename>
            <type>text/plain</type>
            <size>11977</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTI0NTMpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTExLTEzICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSGln
aGxpZ2h0IHRoZSBhbGFybWluZyB0ZXN0IHJlc3VsdHMgaW4gdGhlIGdyYXBoaWNzIGJlbmNobWFy
ayByZXN1bHRzIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgV2hlbiBzaG93aW5nIHRoZSByZXN1bHRzIG9mIGEgdGVzdCBpbiB0aGUg
Z3JhcGhpY3MgYmVuY2htYXJrIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgY3JpdGVyaWEgaXMgZ29p
bmcgdG8gYmUgYXBwbGllZDoKKyAgICAgICAgCisgICAgICAgIDEuIElmIHRoZSBzdGFuZGFyZCBk
ZXZpYXRpb24gb2YgdGhlIHRlc3QgY29tcGxleGl0eSBvciB0aGUgZnJhbWUgcmF0ZSBpcworICAg
ICAgICAgICBtb3JlIHRoYW4gMTAlLCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGFuZCB0aGUgdGVz
dCBuYW1lIHdpbGwgYmUgZGlzcGxheWVkCisgICAgICAgICAgIGluIHJlZC4KKyAgICAgICAgMi4g
SWYgdGhlIGF2ZXJhZ2UgZnJhbWUgcmF0ZSBpcyBub3QgaW4gdGhlIHJhbmdlID0gWyhkZXNpcmVk
X2ZyYW1lX3JhdGUgLSAyKQorICAgICAgICAgICAuLiAoZGVzaXJlZF9mcmFtZV9yYXRlIC0gMild
LCB0aGUgYXZlcmFnZSBmcmFtZSByYXRlIGFuZCB0aGUgdGVzdCBuYW1lIHdpbGwKKyAgICAgICAg
ICAgYmUgZGlzcGxheWVkIGluIHJlZC4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2Vz
L2V4dGVuc2lvbnMuanM6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93SGVh
ZGVyUm93KToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dIZWFkZXIpOgor
ICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd0VtcHR5Q2VsbCk6CisgICAgICAg
IChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93VGV4dCk6CisgICAgICAgIChSZXN1bHRzVGFi
bGUucHJvdG90eXBlLl9zaG93Rml4ZWROdW1iZXIpOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnBy
b3RvdHlwZS4pOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd0dyYXBoKToK
KyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dKU09OKToKKyAgICAgICAgKFJl
c3VsdHNUYWJsZS5wcm90b3R5cGUuX2lzQWxhcm1pbmdNZWFzdXJlbWVudCk6CisgICAgICAgIChS
ZXN1bHRzVGFibGUucHJvdG90eXBlLl9pc0FsYXJtaW5nVGVzdFJlc3VsdHMpOgorICAgICAgICAo
UmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd0VtcHR5Q2VsbHMpOgorICAgICAgICAoUmVzdWx0
c1RhYmxlLnByb3RvdHlwZS5fc2hvd0VtcHR5Um93KToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5w
cm90b3R5cGUuX3Nob3dUZXN0KToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3No
b3dTdWl0ZSk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93SXRlcmF0aW9u
KToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuc2hvd1JlY29yZCk6CisgICAgICAg
IChSZXN1bHRzVGFibGUucHJvdG90eXBlLnNob3dJdGVyYXRpb25zKToKKyAgICAgICAgKFJlc3Vs
dHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eSk6IERlbGV0ZWQuCisgICAgICAgICogQW5pbW9t
ZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanM6CisgICAgICAgICh3aW5kb3cuYmVu
Y2htYXJrUnVubmVyQ2xpZW50LmRpZEZpbmlzaExhc3RJdGVyYXRpb24pOgorICAgICAgICAqIEFu
aW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmpzOgorICAgICAgICAoU3RhZ2VCZW5jaG1h
cmsucHJvdG90eXBlLnNob3dSZXN1bHRzKToKKwogMjAxNS0xMS0wNiAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIEluaXRpYWxpemUgdGhlIGdy
YXBoaWNzIGJlbmNobWFyaydzIEthbG1hbiBmaWx0ZXIgd2l0aCBlc3RpbWF0ZWQgNjAgRlBTCklu
ZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRl
bnNpb25zLmpzCShyZXZpc2lvbiAxOTI0MDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTI2NCwxNiArMjY0
LDE0IEBAIFJlc3VsdHNUYWJsZS5wcm90b3R5cGUgPQogICAgIF9zaG93SGVhZGVyUm93OiBmdW5j
dGlvbihyb3csIHF1ZXVlLCBoZWFkZXJzLCBtZXNzYWdlKQogICAgIHsKICAgICAgICAgaGVhZGVy
cy5mb3JFYWNoKGZ1bmN0aW9uIChoZWFkZXIpIHsKLSAgICAgICAgICAgIHZhciB0aCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRoIik7CisgICAgICAgICAgICB2YXIgdGggPSBEb2N1bWVudEV4
dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJ0aCIsIHt9LCByb3cpOwogICAgICAgICAgICAgdGgudGV4
dENvbnRlbnQgPSBoZWFkZXIudGV4dDsKICAgICAgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSAh
PSAidW5kZWZpbmVkIiAmJiBtZXNzYWdlLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHRoLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOwotICAgICAgICAgICAgICAg
IHRoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbJyArIG1lc3NhZ2UgKydd
JykpOworICAgICAgICAgICAgICAgIHRoLmlubmVySFRNTCArPSAiPGJyPiIgKyAnWycgKyBtZXNz
YWdlICsnXSc7CiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICIiOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaWYgKCJ3aWR0aCIgaW4gaGVhZGVyKQogICAgICAgICAgICAgICAgIHRoLndp
ZHRoID0gaGVhZGVyLndpZHRoICsgIiUiOwotICAgICAgICAgICAgcm93LmFwcGVuZENoaWxkKHRo
KTsKICAgICAgICAgICAgIHF1ZXVlLnB1c2goe2VsZW1lbnQ6IHRoLCBoZWFkZXJzOiBoZWFkZXIu
Y2hpbGRyZW4gfSk7CiAgICAgICAgIH0pOwogICAgIH0sCkBAIC0zMTMsMzcgKzMxMSwzNSBAQCBS
ZXN1bHRzVGFibGUucHJvdG90eXBlID0KICAgICAgICAgfQogICAgIH0sCiAgICAgCi0gICAgX3No
b3dFbXB0eTogZnVuY3Rpb24ocm93KQorICAgIF9zaG93RW1wdHlDZWxsOiBmdW5jdGlvbihyb3cp
CiAgICAgewotICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwot
ICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOworICAgICAgICByZXR1cm4gRG9jdW1lbnRFeHRl
bnNpb24uY3JlYXRlRWxlbWVudCgidGQiLCB7fSwgcm93KTsKICAgICB9LAogCi0gICAgX3Nob3dU
ZXh0OiBmdW5jdGlvbihyb3csIHRleHQpCisgICAgX3Nob3dUZXh0OiBmdW5jdGlvbihyb3csIHRl
eHQsIGNvbG9yKQogICAgIHsKLSAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidGQiKTsKKyAgICAgICAgdmFyIHRkID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVu
dCgidGQiLCB7fSwgcm93KTsKICAgICAgICAgdGQudGV4dENvbnRlbnQgPSB0ZXh0OwotICAgICAg
ICByb3cuYXBwZW5kQ2hpbGQodGQpOworICAgICAgICB0ZC5zdHlsZS5jb2xvciA9IGNvbG9yIHx8
ICJibGFjayI7CiAgICAgfSwKIAotICAgIF9zaG93Rml4ZWROdW1iZXI6IGZ1bmN0aW9uKHJvdywg
dmFsdWUsIGRpZ2l0cykKKyAgICBfc2hvd0ZpeGVkTnVtYmVyOiBmdW5jdGlvbihyb3csIHZhbHVl
LCBkaWdpdHMsIGNvbG9yKQogICAgIHsKLSAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgidGQiKTsKKyAgICAgICAgdmFyIHRkID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRl
RWxlbWVudCgidGQiLCB7fSwgcm93KTsKICAgICAgICAgdGQudGV4dENvbnRlbnQgPSB2YWx1ZS50
b0ZpeGVkKGRpZ2l0cyB8fCAyKTsKLSAgICAgICAgcm93LmFwcGVuZENoaWxkKHRkKTsKKyAgICAg
ICAgdGQuc3R5bGUuY29sb3IgPSBjb2xvciB8fCAiYmxhY2siOwogICAgIH0sCiAgICAgCiAgICAg
X3Nob3dHcmFwaDogZnVuY3Rpb24ocm93LCB0ZXN0TmFtZSwgdGVzdFJlc3VsdHMpCiAgICAgewog
ICAgICAgICB2YXIgZGF0YSA9IHRlc3RSZXN1bHRzW1N0cmluZ3NbIkpTT05fU0FNUExFUyJdWzBd
XTsKICAgICAgICAgaWYgKCFkYXRhKSB7Ci0gICAgICAgICAgICB0aGlzLl9zaG93RW1wdHkocm93
KTsKKyAgICAgICAgICAgIHRoaXMuX3Nob3dFbXB0eUNlbGwocm93KTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGQiKTsKLSAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICBidXR0b24uY2xhc3NOYW1lID0gInNtYWxsLWJ1dHRv
biI7CisgICAgICAgIHZhciB0ZCA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoInRk
Iiwge30sIHJvdyk7CisgICAgICAgIHZhciBidXR0b24gPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVh
dGVFbGVtZW50KCJidXR0b24iLCB7IGNsYXNzOiAic21hbGwtYnV0dG9uIiB9LCB0ZCk7CiAKICAg
ICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICB2YXIgc2FtcGxlcyA9IGRhdGFbU3RyaW5nc1siSlNPTl9HUkFQSCJdWzBdXTsKQEAg
LTM1Myw0MCArMzQ5LDc3IEBAIFJlc3VsdHNUYWJsZS5wcm90b3R5cGUgPQogICAgICAgICB9KTsK
ICAgICAgICAgICAgIAogICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSBTdHJpbmdzWyJURVhU
X1JFU1VMVFMiXVsxXSArICIuLi4iOwotICAgICAgICB0ZC5hcHBlbmRDaGlsZChidXR0b24pOwot
ICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOwogICAgIH0sCiAKICAgICBfc2hvd0pTT046IGZ1
bmN0aW9uKHJvdywgdGVzdE5hbWUsIHRlc3RSZXN1bHRzKQogICAgIHsKICAgICAgICAgdmFyIGRh
dGEgPSB0ZXN0UmVzdWx0c1tTdHJpbmdzWyJKU09OX1NBTVBMRVMiXVswXV07CiAgICAgICAgIGlm
ICghZGF0YSkgewotICAgICAgICAgICAgdGhpcy5fc2hvd0VtcHR5KHJvdyk7CisgICAgICAgICAg
ICB0aGlzLl9zaG93RW1wdHlDZWxsKHJvdyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRk
Iik7Ci0gICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24i
KTsKLSAgICAgICAgYnV0dG9uLmNsYXNzTmFtZSA9ICJzbWFsbC1idXR0b24iOworCisgICAgICAg
IHZhciB0ZCA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoInRkIiwge30sIHJvdyk7
CisgICAgICAgIHZhciBidXR0b24gPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJi
dXR0b24iLCB7IGNsYXNzOiAic21hbGwtYnV0dG9uIiB9LCB0ZCk7CiAKICAgICAgICAgYnV0dG9u
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBiZW5j
aG1hcmtDb250cm9sbGVyLnNob3dUZXN0SlNPTih0ZXN0TmFtZSwgdGVzdFJlc3VsdHMpOwogICAg
ICAgICB9KTsKICAgICAgICAgICAgIAogICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSBTdHJp
bmdzWyJURVhUX1JFU1VMVFMiXVsyXSArICIuLi4iOwotICAgICAgICB0ZC5hcHBlbmRDaGlsZChi
dXR0b24pOwotICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOwogICAgIH0sCisgICAgCisgICAg
X2lzQWxhcm1pbmdNZWFzdXJlbWVudDogZnVuY3Rpb24oaW5kZXgsIGRhdGEsIG1lYXN1cmVtZW50
LCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgaWYgKG1lYXN1cmVtZW50ID09IFN0cmluZ3NbIkpT
T05fTUVBU1VSRU1FTlRTIl1bM10pCisgICAgICAgICAgICByZXR1cm4gZGF0YVtTdHJpbmdzWyJK
U09OX01FQVNVUkVNRU5UUyJdWzNdXSA+PSAxMDsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAo
aW5kZXggPT0gMSAmJiBtZWFzdXJlbWVudCA9PSBTdHJpbmdzWyJKU09OX01FQVNVUkVNRU5UUyJd
WzBdKQorICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGRhdGFbU3RyaW5nc1siSlNPTl9NRUFT
VVJFTUVOVFMiXVswXV0gLSBvcHRpb25zWyJmcmFtZS1yYXRlIl0pID4gMjsKIAotICAgIF9zaG93
VGVzdDogZnVuY3Rpb24odGVzdE5hbWUsIHRlc3RSZXN1bHRzKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfSwKKworICAgIF9pc0FsYXJtaW5nVGVzdFJlc3VsdHM6IGZ1bmN0aW9uKHRlc3RS
ZXN1bHRzLCBvcHRpb25zKQogICAgIHsKLSAgICAgICAgdmFyIHJvdyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInRyIik7CisgICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAyOyAr
K2luZGV4KSB7CisgICAgICAgICAgICB2YXIgZGF0YSA9IHRlc3RSZXN1bHRzW1N0cmluZ3NbIkpT
T05fRVhQRVJJTUVOVFMiXVtpbmRleF1dOworICAgICAgICAgICAgZm9yICh2YXIgbWVhc3VyZW1l
bnQgaW4gZGF0YSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0FsYXJtaW5nTWVhc3Vy
ZW1lbnQoaW5kZXgsIGRhdGEsIG1lYXN1cmVtZW50LCBvcHRpb25zKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBfc2hvd0VtcHR5Q2VsbHM6IGZ1bmN0aW9uKHJvdywg
aGVhZGVycykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBoZWFk
ZXJzLmxlbmd0aDsgKytpbmRleCkgeworICAgICAgICAgICAgaWYgKCFoZWFkZXJzW2luZGV4XS5j
aGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB2YXIgdGQgPSB0aGlzLl9zaG93RW1w
dHlDZWxsKHJvdyk7CisgICAgICAgICAgICAgICAgdGQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0g
InllbGxvdyI7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB0aGlzLl9zaG93RW1wdHlDZWxscyhyb3csIGhlYWRlcnNbaW5kZXhdLmNoaWxkcmVu
KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfc2hvd0VtcHR5Um93OiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB2YXIgcm93ID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCgi
dHIiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5fc2hvd0VtcHR5Q2VsbHMocm93
LCB0aGlzLl9oZWFkZXJzKTsKKyAgICB9LAorCisgICAgX3Nob3dUZXN0OiBmdW5jdGlvbih0ZXN0
TmFtZSwgdGVzdFJlc3VsdHMsIG9wdGlvbnMpCisgICAgeworICAgICAgICB2YXIgcm93ID0gRG9j
dW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCgidHIiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAg
ICAgICAgdmFyIGNvbG9yID0gdGhpcy5faXNBbGFybWluZ1Rlc3RSZXN1bHRzKHRlc3RSZXN1bHRz
LCBvcHRpb25zKSA/ICJyZWQiIDogbnVsbDsKICAgICAgICAgCiAgICAgICAgIGZvciAodmFyIGlu
ZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9oZWFkZXJzLmxlbmd0aDsgKytpbmRleCkgewogCiAgICAg
ICAgICAgICBzd2l0Y2ggKGluZGV4KSB7CiAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fc2hvd1RleHQocm93LCB0ZXN0TmFtZSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fc2hvd1RleHQocm93LCB0ZXN0TmFtZSwgY29sb3IpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgICAgICBjYXNlIDE6CkBAIC0zOTgsNyArNDMxLDcgQEAgUmVzdWx0c1RhYmxl
LnByb3RvdHlwZSA9CiAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgdmFyIGRh
dGEgPSB0ZXN0UmVzdWx0c1tTdHJpbmdzWyJKU09OX0VYUEVSSU1FTlRTIl1baW5kZXggLSAyXV07
CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgbWVhc3VyZW1lbnQgaW4gZGF0YSkKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fc2hvd0ZpeGVkTnVtYmVyKHJvdywgZGF0YVttZWFzdXJlbWVudF0s
IDIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93Rml4ZWROdW1iZXIocm93LCBkYXRh
W21lYXN1cmVtZW50XSwgMiwgdGhpcy5faXNBbGFybWluZ01lYXN1cmVtZW50KGluZGV4IC0gMiwg
ZGF0YSwgbWVhc3VyZW1lbnQsIG9wdGlvbnMpID8gInJlZCIgOiBudWxsKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgNDoKQEAgLTQw
NywzOCArNDQwLDM4IEBAIFJlc3VsdHNUYWJsZS5wcm90b3R5cGUgPQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB0aGlz
LmVsZW1lbnQuYXBwZW5kQ2hpbGQocm93KTsKICAgICB9LAogCi0gICAgX3Nob3dTdWl0ZTogZnVu
Y3Rpb24oc3VpdGVOYW1lLCBzdWl0ZVJlc3VsdHMpCisgICAgX3Nob3dTdWl0ZTogZnVuY3Rpb24o
c3VpdGVOYW1lLCBzdWl0ZVJlc3VsdHMsIG9wdGlvbnMpCiAgICAgewogICAgICAgICBmb3IgKHZh
ciB0ZXN0TmFtZSBpbiBzdWl0ZVJlc3VsdHNbU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMl1dKSB7
Ci0gICAgICAgICAgICB0aGlzLl9zaG93VGVzdCh0ZXN0TmFtZSwgc3VpdGVSZXN1bHRzW1N0cmlu
Z3NbIkpTT05fUkVTVUxUUyJdWzJdXVt0ZXN0TmFtZV0pOworICAgICAgICAgICAgdGhpcy5fc2hv
d1Rlc3QodGVzdE5hbWUsIHN1aXRlUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsyXV1b
dGVzdE5hbWVdLCBvcHRpb25zKTsKICAgICAgICAgfQogICAgIH0sCiAgICAgCi0gICAgX3Nob3dJ
dGVyYXRpb24gOiBmdW5jdGlvbihpdGVyYXRpb25SZXN1bHRzKQorICAgIF9zaG93SXRlcmF0aW9u
IDogZnVuY3Rpb24oaXRlcmF0aW9uUmVzdWx0cywgb3B0aW9ucykKICAgICB7CiAgICAgICAgIGZv
ciAodmFyIHN1aXRlTmFtZSBpbiBpdGVyYXRpb25SZXN1bHRzW1N0cmluZ3NbIkpTT05fUkVTVUxU
UyJdWzFdXSkgewotICAgICAgICAgICAgdGhpcy5fc2hvd1N1aXRlKHN1aXRlTmFtZSwgaXRlcmF0
aW9uUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsxXV1bc3VpdGVOYW1lXSk7CisgICAg
ICAgICAgICBpZiAoc3VpdGVOYW1lICE9IE9iamVjdC5rZXlzKGl0ZXJhdGlvblJlc3VsdHNbU3Ry
aW5nc1siSlNPTl9SRVNVTFRTIl1bMV1dKVswXSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zaG93
RW1wdHlSb3coKTsKKyAgICAgICAgICAgIHRoaXMuX3Nob3dTdWl0ZShzdWl0ZU5hbWUsIGl0ZXJh
dGlvblJlc3VsdHNbU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMV1dW3N1aXRlTmFtZV0sIG9wdGlv
bnMpOwogICAgICAgICB9CiAgICAgfSwKICAgICAKLSAgICBzaG93UmVjb3JkOiBmdW5jdGlvbih0
ZXN0TmFtZSwgbWVzc2FnZSwgdGVzdFJlc3VsdHMpCisgICAgc2hvd1JlY29yZDogZnVuY3Rpb24o
dGVzdE5hbWUsIG1lc3NhZ2UsIHRlc3RSZXN1bHRzLCBvcHRpb25zKQogICAgIHsKICAgICAgICAg
dGhpcy5jbGVhcigpOwogICAgICAgICB0aGlzLl9zaG93SGVhZGVyKG1lc3NhZ2UpOwotICAgICAg
ICB0aGlzLl9zaG93VGVzdCh0ZXN0TmFtZSwgdGVzdFJlc3VsdHMpOworICAgICAgICB0aGlzLl9z
aG93VGVzdCh0ZXN0TmFtZSwgdGVzdFJlc3VsdHMsIG9wdGlvbnMpOwogICAgIH0sCiAKLSAgICBz
aG93SXRlcmF0aW9uczogZnVuY3Rpb24oaXRlcmF0aW9uc1Jlc3VsdHMpCisgICAgc2hvd0l0ZXJh
dGlvbnM6IGZ1bmN0aW9uKGl0ZXJhdGlvbnNSZXN1bHRzLCBvcHRpb25zKQogICAgIHsKICAgICAg
ICAgdGhpcy5jbGVhcigpOwogICAgICAgICB0aGlzLl9zaG93SGVhZGVyKCIiKTsKICAgICAgICAg
CiAgICAgICAgIGl0ZXJhdGlvbnNSZXN1bHRzLmZvckVhY2goZnVuY3Rpb24oaXRlcmF0aW9uUmVz
dWx0cykgewotICAgICAgICAgICAgdGhpcy5fc2hvd0l0ZXJhdGlvbihpdGVyYXRpb25SZXN1bHRz
KTsKKyAgICAgICAgICAgIHRoaXMuX3Nob3dJdGVyYXRpb24oaXRlcmF0aW9uUmVzdWx0cywgb3B0
aW9ucyk7CiAgICAgICAgIH0sIHRoaXMpOwogICAgIH0KIH0KSW5kZXg6IFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMvYW5pbW9tZXRl
ci5qcwkocmV2aXNpb24gMTkyNDAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1
bm5lci9yZXNvdXJjZXMvYW5pbW9tZXRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUs
NyBAQCB3aW5kb3cuYmVuY2htYXJrUnVubmVyQ2xpZW50ID0gewogICAgIHsKICAgICAgICAgdmFy
IGpzb24gPSB0aGlzLl9yZXN1bHRzRGFzaGJvYXJkLnRvSlNPTih0cnVlLCB0cnVlKTsKICAgICAg
ICAgdGhpcy5zY29yZSA9IGpzb25bU3RyaW5nc1siSlNPTl9TQ09SRSJdXTsKLSAgICAgICAgdGhp
cy5fcmVzdWx0c1RhYmxlLnNob3dJdGVyYXRpb25zKGpzb25bU3RyaW5nc1siSlNPTl9SRVNVTFRT
Il1bMF1dKTsKKyAgICAgICAgdGhpcy5fcmVzdWx0c1RhYmxlLnNob3dJdGVyYXRpb25zKGpzb25b
U3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMF1dLCB0aGlzLm9wdGlvbnMpOwogICAgICAgICBzZWN0
aW9uc01hbmFnZXIuc2hvd0pTT04oImpzb24iLCBqc29uW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJd
WzBdXVswXSk7CiAgICAgICAgIHN1aXRlc01hbmFnZXIudXBkYXRlTG9jYWxTdG9yYWdlRnJvbUpT
T04oanNvbltTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVswXV1bMF0pOwogICAgICAgICBiZW5jaG1h
cmtDb250cm9sbGVyLnNob3dSZXN1bHRzKCk7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuanMJKHJldmlzaW9uIDE5MjQw
MCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2Uu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw3ICsxNzgsNyBAQCBTdGFnZUJlbmNobWFyay5wcm90
b3R5cGUuc2hvd1Jlc3VsdHMgPSBmCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh0aGlzLm9w
dGlvbnNbInNob3ctcnVubmluZy1yZXN1bHRzIl0pCi0gICAgICAgIHRoaXMuX3JlY29yZFRhYmxl
LnNob3dSZWNvcmQodGhpcy5fdGVzdC5uYW1lLCBtZXNzYWdlLCB0aGlzLl9zYW1wbGVyLnRvSlNP
Tih0cnVlLCBmYWxzZSkpOworICAgICAgICB0aGlzLl9yZWNvcmRUYWJsZS5zaG93UmVjb3JkKHRo
aXMuX3Rlc3QubmFtZSwgbWVzc2FnZSwgdGhpcy5fc2FtcGxlci50b0pTT04odHJ1ZSwgZmFsc2Up
LCB0aGlzLl9vcHRpb25zKTsKIAogICAgIHRoaXMuX3Byb2dyZXNzQmFyLnNldFBvcyhwcm9ncmVz
cyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265618</attachid>
            <date>2015-11-16 14:22:42 -0800</date>
            <delta_ts>2015-11-16 15:37:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151286-20151116142233.patch</filename>
            <type>text/plain</type>
            <size>12783</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTI0ODQpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTExLTE2ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSGln
aGxpZ2h0IHRoZSBhbGFybWluZyB0ZXN0IHJlc3VsdHMgaW4gdGhlIGdyYXBoaWNzIGJlbmNobWFy
ayByZXN1bHRzIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKyAgICAg
ICAgCisgICAgICAgIFdoZW4gc2hvd2luZyB0aGUgcmVzdWx0cyBvZiBhIHRlc3QgaW4gdGhlIGdy
YXBoaWNzIGJlbmNobWFyayB0aGUgZm9sbG93aW5nCisgICAgICAgIGNyaXRlcmlhIGlzIGdvaW5n
IHRvIGJlIGFwcGxpZWQ6CisgICAgICAgIAorICAgICAgICAxLiBJZiB0aGUgc3RhbmRhcmQgZGV2
aWF0aW9uIG9mIHRoZSB0ZXN0IGNvbXBsZXhpdHkgb3IgdGhlIGZyYW1lIHJhdGUgaXMKKyAgICAg
ICAgICAgZXF1YWwgdG8gb3IgbW9yZSB0aGFuIDEwJSwgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBh
bmQgdGhlIHRlc3QgbmFtZQorICAgICAgICAgICB3aWxsIGJlIGRpc3BsYXllZCBpbiByZWQuCisg
ICAgICAgIDIuIElmIHRoZSBhdmVyYWdlIGZyYW1lIHJhdGUgaXMgbm90IGluIHRoZSByYW5nZSA9
IFsoZGVzaXJlZF9mcmFtZV9yYXRlIC0gMikKKyAgICAgICAgICAgLi4gKGRlc2lyZWRfZnJhbWVf
cmF0ZSArIDIpXSwgdGhlIGF2ZXJhZ2UgZnJhbWUgcmF0ZSBhbmQgdGhlIHRlc3QgbmFtZSB3aWxs
CisgICAgICAgICAgIGJlIGRpc3BsYXllZCBpbiByZWQuCisKKyAgICAgICAgKiBBbmltb21ldGVy
L3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlw
ZS5fc2hvd0hlYWRlclJvdyk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93
SGVhZGVyKToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eUNlbGwp
OgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd1RleHQpOgorICAgICAgICAo
UmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd0ZpeGVkTnVtYmVyKToKKyAgICAgICAgKFJlc3Vs
dHNUYWJsZS5wcm90b3R5cGUuKToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3No
b3dHcmFwaCk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93SlNPTik6Cisg
ICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9pc0FsYXJtaW5nTWVhc3VyZW1lbnQpOgor
ICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5faXNBbGFybWluZ1Rlc3RSZXN1bHRzKToK
KyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eUNlbGxzKToKKyAgICAg
ICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eVJvdyk6CisgICAgICAgIChSZXN1
bHRzVGFibGUucHJvdG90eXBlLl9zaG93VGVzdCk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJv
dG90eXBlLl9zaG93U3VpdGUpOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hv
d0l0ZXJhdGlvbik6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLnNob3dSZWNvcmQp
OgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5zaG93SXRlcmF0aW9ucyk6CisgICAg
ICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93RW1wdHkpOiBEZWxldGVkLgorICAgICAg
ICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzOgorICAgICAgICAo
d2luZG93LmJlbmNobWFya1J1bm5lckNsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9uKToKKyAg
ICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFnZS5qczoKKyAgICAgICAgKFN0
YWdlQmVuY2htYXJrLnByb3RvdHlwZS5zaG93UmVzdWx0cyk6CisKIDIwMTUtMTEtMTMgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBFbGltaW5h
dGUgYSByZXF1ZXN0IGZvciBsYXlvdXQgZXZlcnkgdGltZSBhbiBpdGVtIGlzIGFkZGVkIHRvIHRo
ZSBzdGFnZSBvZiB0aGUgZ3JhcGhpY3MgYmVuY2htYXJrCkluZGV4OiBQZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCShyZXZpc2lvbiAx
OTI0ODQpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lv
bnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTI3NCwxNiArMjc0LDE0IEBAIFJlc3VsdHNUYWJsZS5w
cm90b3R5cGUgPQogICAgIF9zaG93SGVhZGVyUm93OiBmdW5jdGlvbihyb3csIHF1ZXVlLCBoZWFk
ZXJzLCBtZXNzYWdlKQogICAgIHsKICAgICAgICAgaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uICho
ZWFkZXIpIHsKLSAgICAgICAgICAgIHZhciB0aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRo
Iik7CisgICAgICAgICAgICB2YXIgdGggPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50
KCJ0aCIsIHt9LCByb3cpOwogICAgICAgICAgICAgdGgudGV4dENvbnRlbnQgPSBoZWFkZXIudGV4
dDsKICAgICAgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSAhPSAidW5kZWZpbmVkIiAmJiBtZXNz
YWdlLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHRoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2JyJykpOwotICAgICAgICAgICAgICAgIHRoLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCdbJyArIG1lc3NhZ2UgKyddJykpOworICAgICAgICAgICAgICAg
IHRoLmlubmVySFRNTCArPSAiPGJyPiIgKyAnWycgKyBtZXNzYWdlICsnXSc7CiAgICAgICAgICAg
ICAgICAgbWVzc2FnZSA9ICIiOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCJ3aWR0
aCIgaW4gaGVhZGVyKQogICAgICAgICAgICAgICAgIHRoLndpZHRoID0gaGVhZGVyLndpZHRoICsg
IiUiOwotICAgICAgICAgICAgcm93LmFwcGVuZENoaWxkKHRoKTsKICAgICAgICAgICAgIHF1ZXVl
LnB1c2goe2VsZW1lbnQ6IHRoLCBoZWFkZXJzOiBoZWFkZXIuY2hpbGRyZW4gfSk7CiAgICAgICAg
IH0pOwogICAgIH0sCkBAIC0zMjMsMzcgKzMyMSwzMyBAQCBSZXN1bHRzVGFibGUucHJvdG90eXBl
ID0KICAgICAgICAgfQogICAgIH0sCiAgICAgCi0gICAgX3Nob3dFbXB0eTogZnVuY3Rpb24ocm93
KQorICAgIF9zaG93RW1wdHlDZWxsOiBmdW5jdGlvbihyb3csIGNsYXNzTmFtZSkKICAgICB7Ci0g
ICAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAgICAgIHJv
dy5hcHBlbmRDaGlsZCh0ZCk7CisgICAgICAgIHJldHVybiBEb2N1bWVudEV4dGVuc2lvbi5jcmVh
dGVFbGVtZW50KCJ0ZCIsIHsgY2xhc3M6IGNsYXNzTmFtZSB9LCByb3cpOwogICAgIH0sCiAKLSAg
ICBfc2hvd1RleHQ6IGZ1bmN0aW9uKHJvdywgdGV4dCkKKyAgICBfc2hvd1RleHQ6IGZ1bmN0aW9u
KHJvdywgdGV4dCwgY2xhc3NOYW1lKQogICAgIHsKLSAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgidGQiKTsKKyAgICAgICAgdmFyIHRkID0gRG9jdW1lbnRFeHRlbnNpb24u
Y3JlYXRlRWxlbWVudCgidGQiLCB7IGNsYXNzOiBjbGFzc05hbWUgfSwgcm93KTsKICAgICAgICAg
dGQudGV4dENvbnRlbnQgPSB0ZXh0OwotICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOwogICAg
IH0sCiAKLSAgICBfc2hvd0ZpeGVkTnVtYmVyOiBmdW5jdGlvbihyb3csIHZhbHVlLCBkaWdpdHMp
CisgICAgX3Nob3dGaXhlZE51bWJlcjogZnVuY3Rpb24ocm93LCB2YWx1ZSwgZGlnaXRzLCBjbGFz
c05hbWUpCiAgICAgewotICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0
ZCIpOworICAgICAgICB2YXIgdGQgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJ0
ZCIsIHsgY2xhc3M6IGNsYXNzTmFtZSB9LCByb3cpOwogICAgICAgICB0ZC50ZXh0Q29udGVudCA9
IHZhbHVlLnRvRml4ZWQoZGlnaXRzIHx8IDIpOwotICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQp
OwogICAgIH0sCiAgICAgCiAgICAgX3Nob3dHcmFwaDogZnVuY3Rpb24ocm93LCB0ZXN0TmFtZSwg
dGVzdFJlc3VsdHMpCiAgICAgewogICAgICAgICB2YXIgZGF0YSA9IHRlc3RSZXN1bHRzW1N0cmlu
Z3NbIkpTT05fU0FNUExFUyJdWzBdXTsKICAgICAgICAgaWYgKCFkYXRhKSB7Ci0gICAgICAgICAg
ICB0aGlzLl9zaG93RW1wdHkocm93KTsKKyAgICAgICAgICAgIHRoaXMuX3Nob3dFbXB0eUNlbGwo
cm93LCAiIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAgICAgIHZhciBi
dXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLSAgICAgICAgYnV0dG9u
LmNsYXNzTmFtZSA9ICJzbWFsbC1idXR0b24iOworICAgICAgICB2YXIgdGQgPSBEb2N1bWVudEV4
dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJ0ZCIsIHt9LCByb3cpOworICAgICAgICB2YXIgYnV0dG9u
ID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCgiYnV0dG9uIiwgeyBjbGFzczogInNt
YWxsLWJ1dHRvbiIgfSwgdGQpOwogCiAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdmFyIHNhbXBsZXMgPSBkYXRhW1N0cmlu
Z3NbIkpTT05fR1JBUEgiXVswXV07CkBAIC0zNjMsNDAgKzM1Nyw3OCBAQCBSZXN1bHRzVGFibGUu
cHJvdG90eXBlID0KICAgICAgICAgfSk7CiAgICAgICAgICAgICAKICAgICAgICAgYnV0dG9uLnRl
eHRDb250ZW50ID0gU3RyaW5nc1siVEVYVF9SRVNVTFRTIl1bMV0gKyAiLi4uIjsKLSAgICAgICAg
dGQuYXBwZW5kQ2hpbGQoYnV0dG9uKTsKLSAgICAgICAgcm93LmFwcGVuZENoaWxkKHRkKTsKICAg
ICB9LAogCiAgICAgX3Nob3dKU09OOiBmdW5jdGlvbihyb3csIHRlc3ROYW1lLCB0ZXN0UmVzdWx0
cykKICAgICB7CiAgICAgICAgIHZhciBkYXRhID0gdGVzdFJlc3VsdHNbU3RyaW5nc1siSlNPTl9T
QU1QTEVTIl1bMF1dOwogICAgICAgICBpZiAoIWRhdGEpIHsKLSAgICAgICAgICAgIHRoaXMuX3No
b3dFbXB0eShyb3cpOworICAgICAgICAgICAgdGhpcy5fc2hvd0VtcHR5Q2VsbChyb3csICIiKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdmFyIHRk
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKLSAgICAgICAgdmFyIGJ1dHRvbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICBidXR0b24uY2xhc3NOYW1l
ID0gInNtYWxsLWJ1dHRvbiI7CisKKyAgICAgICAgdmFyIHRkID0gRG9jdW1lbnRFeHRlbnNpb24u
Y3JlYXRlRWxlbWVudCgidGQiLCB7fSwgcm93KTsKKyAgICAgICAgdmFyIGJ1dHRvbiA9IERvY3Vt
ZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsIHsgY2xhc3M6ICJzbWFsbC1idXR0
b24iIH0sIHRkKTsKIAogICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Rlc3RKU09O
KHRlc3ROYW1lLCB0ZXN0UmVzdWx0cyk7CiAgICAgICAgIH0pOwogICAgICAgICAgICAgCiAgICAg
ICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9IFN0cmluZ3NbIlRFWFRfUkVTVUxUUyJdWzJdICsgIi4u
LiI7Ci0gICAgICAgIHRkLmFwcGVuZENoaWxkKGJ1dHRvbik7Ci0gICAgICAgIHJvdy5hcHBlbmRD
aGlsZCh0ZCk7CisgICAgfSwKKyAgICAKKyAgICBfaXNOb2lzeU1lYXN1cmVtZW50OiBmdW5jdGlv
bihpbmRleCwgZGF0YSwgbWVhc3VyZW1lbnQsIG9wdGlvbnMpCisgICAgeworICAgICAgICBjb25z
dCBwZXJjZW50VGhyZXNob2xkID0gMTA7CisgICAgICAgIGNvbnN0IGF2ZXJhZ2VUaHJlc2hvbGQg
PSAyOworICAgICAgICAgCisgICAgICAgIGlmIChtZWFzdXJlbWVudCA9PSBTdHJpbmdzWyJKU09O
X01FQVNVUkVNRU5UUyJdWzNdKQorICAgICAgICAgICAgcmV0dXJuIGRhdGFbU3RyaW5nc1siSlNP
Tl9NRUFTVVJFTUVOVFMiXVszXV0gPj0gcGVyY2VudFRocmVzaG9sZDsKKyAgICAgICAgICAgIAor
ICAgICAgICBpZiAoaW5kZXggPT0gMSAmJiBtZWFzdXJlbWVudCA9PSBTdHJpbmdzWyJKU09OX01F
QVNVUkVNRU5UUyJdWzBdKQorICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGRhdGFbU3RyaW5n
c1siSlNPTl9NRUFTVVJFTUVOVFMiXVswXV0gLSBvcHRpb25zWyJmcmFtZS1yYXRlIl0pID49IGF2
ZXJhZ2VUaHJlc2hvbGQ7CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBf
aXNOb2lzeVRlc3Q6IGZ1bmN0aW9uKHRlc3RSZXN1bHRzLCBvcHRpb25zKQorICAgIHsKKyAgICAg
ICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDI7ICsraW5kZXgpIHsKKyAgICAgICAgICAg
IHZhciBkYXRhID0gdGVzdFJlc3VsdHNbU3RyaW5nc1siSlNPTl9FWFBFUklNRU5UUyJdW2luZGV4
XV07CisgICAgICAgICAgICBmb3IgKHZhciBtZWFzdXJlbWVudCBpbiBkYXRhKSB7CisgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2lzTm9pc3lNZWFzdXJlbWVudChpbmRleCwgZGF0YSwgbWVhc3Vy
ZW1lbnQsIG9wdGlvbnMpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAg
IF9zaG93RW1wdHlDZWxsczogZnVuY3Rpb24ocm93LCBoZWFkZXJzKQorICAgIHsKKyAgICAgICAg
Zm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGhlYWRlcnMubGVuZ3RoOyArK2luZGV4KSB7Cisg
ICAgICAgICAgICBpZiAoIWhlYWRlcnNbaW5kZXhdLmNoaWxkcmVuLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICB0aGlzLl9zaG93RW1wdHlDZWxsKHJvdywgInN1aXRlcy1zZXBhcmF0b3IiKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9zaG93RW1wdHlDZWxscyhyb3cs
IGhlYWRlcnNbaW5kZXhdLmNoaWxkcmVuKTsKKyAgICAgICAgfQogICAgIH0sCiAKLSAgICBfc2hv
d1Rlc3Q6IGZ1bmN0aW9uKHRlc3ROYW1lLCB0ZXN0UmVzdWx0cykKKyAgICBfc2hvd0VtcHR5Um93
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgidHIiKTsKKyAgICAgICAgdmFyIHJvdyA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVs
ZW1lbnQoInRyIiwge30sIHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuX3Nob3dFbXB0eUNl
bGxzKHJvdywgdGhpcy5faGVhZGVycyk7CisgICAgfSwKKworICAgIF9zaG93VGVzdDogZnVuY3Rp
b24odGVzdE5hbWUsIHRlc3RSZXN1bHRzLCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgdmFyIHJv
dyA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoInRyIiwge30sIHRoaXMuZWxlbWVu
dCk7CisgICAgICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLl9pc05vaXN5VGVzdCh0ZXN0UmVzdWx0
cywgb3B0aW9ucykgPyAibm9pc3ktcmVzdWx0cyIgOiAiIjsKICAgICAgICAgCiAgICAgICAgIGZv
ciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9oZWFkZXJzLmxlbmd0aDsgKytpbmRleCkg
ewogCiAgICAgICAgICAgICBzd2l0Y2ggKGluZGV4KSB7CiAgICAgICAgICAgICBjYXNlIDA6Ci0g
ICAgICAgICAgICAgICAgdGhpcy5fc2hvd1RleHQocm93LCB0ZXN0TmFtZSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fc2hvd1RleHQocm93LCB0ZXN0TmFtZSwgY29sb3IpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIDE6CkBAIC00MDgsNyArNDQwLDcgQEAgUmVz
dWx0c1RhYmxlLnByb3RvdHlwZSA9CiAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAg
ICAgdmFyIGRhdGEgPSB0ZXN0UmVzdWx0c1tTdHJpbmdzWyJKU09OX0VYUEVSSU1FTlRTIl1baW5k
ZXggLSAyXV07CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgbWVhc3VyZW1lbnQgaW4gZGF0YSkK
LSAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd0ZpeGVkTnVtYmVyKHJvdywgZGF0YVttZWFz
dXJlbWVudF0sIDIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93Rml4ZWROdW1iZXIo
cm93LCBkYXRhW21lYXN1cmVtZW50XSwgMiwgdGhpcy5faXNOb2lzeU1lYXN1cmVtZW50KGluZGV4
IC0gMiwgZGF0YSwgbWVhc3VyZW1lbnQsIG9wdGlvbnMpID8gY2xhc3NOYW1lIDogIiIpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSA0
OgpAQCAtNDE3LDM4ICs0NDksMzggQEAgUmVzdWx0c1RhYmxlLnByb3RvdHlwZSA9CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChyb3cpOwogICAgIH0sCiAKLSAgICBfc2hvd1N1
aXRlOiBmdW5jdGlvbihzdWl0ZU5hbWUsIHN1aXRlUmVzdWx0cykKKyAgICBfc2hvd1N1aXRlOiBm
dW5jdGlvbihzdWl0ZU5hbWUsIHN1aXRlUmVzdWx0cywgb3B0aW9ucykKICAgICB7CiAgICAgICAg
IGZvciAodmFyIHRlc3ROYW1lIGluIHN1aXRlUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMi
XVsyXV0pIHsKLSAgICAgICAgICAgIHRoaXMuX3Nob3dUZXN0KHRlc3ROYW1lLCBzdWl0ZVJlc3Vs
dHNbU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMl1dW3Rlc3ROYW1lXSk7CisgICAgICAgICAgICB0
aGlzLl9zaG93VGVzdCh0ZXN0TmFtZSwgc3VpdGVSZXN1bHRzW1N0cmluZ3NbIkpTT05fUkVTVUxU
UyJdWzJdXVt0ZXN0TmFtZV0sIG9wdGlvbnMpOwogICAgICAgICB9CiAgICAgfSwKICAgICAKLSAg
ICBfc2hvd0l0ZXJhdGlvbiA6IGZ1bmN0aW9uKGl0ZXJhdGlvblJlc3VsdHMpCisgICAgX3Nob3dJ
dGVyYXRpb24gOiBmdW5jdGlvbihpdGVyYXRpb25SZXN1bHRzLCBvcHRpb25zKQogICAgIHsKICAg
ICAgICAgZm9yICh2YXIgc3VpdGVOYW1lIGluIGl0ZXJhdGlvblJlc3VsdHNbU3RyaW5nc1siSlNP
Tl9SRVNVTFRTIl1bMV1dKSB7Ci0gICAgICAgICAgICB0aGlzLl9zaG93U3VpdGUoc3VpdGVOYW1l
LCBpdGVyYXRpb25SZXN1bHRzW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzFdXVtzdWl0ZU5hbWVd
KTsKKyAgICAgICAgICAgIGlmIChzdWl0ZU5hbWUgIT0gT2JqZWN0LmtleXMoaXRlcmF0aW9uUmVz
dWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsxXV0pWzBdKQorICAgICAgICAgICAgICAgIHRo
aXMuX3Nob3dFbXB0eVJvdygpOworICAgICAgICAgICAgdGhpcy5fc2hvd1N1aXRlKHN1aXRlTmFt
ZSwgaXRlcmF0aW9uUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsxXV1bc3VpdGVOYW1l
XSwgb3B0aW9ucyk7CiAgICAgICAgIH0KICAgICB9LAogICAgIAotICAgIHNob3dSZWNvcmQ6IGZ1
bmN0aW9uKHRlc3ROYW1lLCBtZXNzYWdlLCB0ZXN0UmVzdWx0cykKKyAgICBzaG93UmVjb3JkOiBm
dW5jdGlvbih0ZXN0TmFtZSwgbWVzc2FnZSwgdGVzdFJlc3VsdHMsIG9wdGlvbnMpCiAgICAgewog
ICAgICAgICB0aGlzLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3Nob3dIZWFkZXIobWVzc2FnZSk7
Ci0gICAgICAgIHRoaXMuX3Nob3dUZXN0KHRlc3ROYW1lLCB0ZXN0UmVzdWx0cyk7CisgICAgICAg
IHRoaXMuX3Nob3dUZXN0KHRlc3ROYW1lLCB0ZXN0UmVzdWx0cywgb3B0aW9ucyk7CiAgICAgfSwK
IAotICAgIHNob3dJdGVyYXRpb25zOiBmdW5jdGlvbihpdGVyYXRpb25zUmVzdWx0cykKKyAgICBz
aG93SXRlcmF0aW9uczogZnVuY3Rpb24oaXRlcmF0aW9uc1Jlc3VsdHMsIG9wdGlvbnMpCiAgICAg
ewogICAgICAgICB0aGlzLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX3Nob3dIZWFkZXIoIiIpOwog
ICAgICAgICAKICAgICAgICAgaXRlcmF0aW9uc1Jlc3VsdHMuZm9yRWFjaChmdW5jdGlvbihpdGVy
YXRpb25SZXN1bHRzKSB7Ci0gICAgICAgICAgICB0aGlzLl9zaG93SXRlcmF0aW9uKGl0ZXJhdGlv
blJlc3VsdHMpOworICAgICAgICAgICAgdGhpcy5fc2hvd0l0ZXJhdGlvbihpdGVyYXRpb25SZXN1
bHRzLCBvcHRpb25zKTsKICAgICAgICAgfSwgdGhpcyk7CiAgICAgfQogfQpJbmRleDogUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMvYW5pbW9tZXRlci5jc3MKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMv
YW5pbW9tZXRlci5jc3MJKHJldmlzaW9uIDE5MjQ4NCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuY3NzCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjEsNiArMTYxLDE0IEBAIHRhYmxlLnJlc3VsdHMtdGFibGUgewogICAgIGNvbG9yOiBibGFj
azsKIH0KIAorLnJlc3VsdHMtdGFibGUgdGQubm9pc3ktcmVzdWx0cyB7CisgICAgY29sb3I6IHJl
ZDsKK30KKworLnJlc3VsdHMtdGFibGUgdGQuc3VpdGVzLXNlcGFyYXRvciB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogeWVsbG93OworfQorIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0cyBKU09OICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICovCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpJbmRleDogUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMvYW5pbW9tZXRlci5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9h
bmltb21ldGVyLmpzCShyZXZpc2lvbiAxOTI0ODQpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw3ICs0NSw3IEBAIHdpbmRvdy5iZW5jaG1hcmtSdW5uZXJDbGllbnQgPSB7CiAgICAgewogICAg
ICAgICB2YXIganNvbiA9IHRoaXMuX3Jlc3VsdHNEYXNoYm9hcmQudG9KU09OKHRydWUsIHRydWUp
OwogICAgICAgICB0aGlzLnNjb3JlID0ganNvbltTdHJpbmdzWyJKU09OX1NDT1JFIl1dOwotICAg
ICAgICB0aGlzLl9yZXN1bHRzVGFibGUuc2hvd0l0ZXJhdGlvbnMoanNvbltTdHJpbmdzWyJKU09O
X1JFU1VMVFMiXVswXV0pOworICAgICAgICB0aGlzLl9yZXN1bHRzVGFibGUuc2hvd0l0ZXJhdGlv
bnMoanNvbltTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVswXV0sIHRoaXMub3B0aW9ucyk7CiAgICAg
ICAgIHNlY3Rpb25zTWFuYWdlci5zaG93SlNPTigianNvbiIsIGpzb25bU3RyaW5nc1siSlNPTl9S
RVNVTFRTIl1bMF1dWzBdKTsKICAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVMb2NhbFN0b3Jh
Z2VGcm9tSlNPTihqc29uW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzBdXVswXSk7CiAgICAgICAg
IGJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMoKTsKSW5kZXg6IFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFnZS5qcwkocmV2aXNp
b24gMTkyNDg0KQorKysgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNl
cy9zdGFnZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIFN0YWdlQmVuY2ht
YXJrLnByb3RvdHlwZS5zaG93UmVzdWx0cyA9IGYKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KHRoaXMub3B0aW9uc1sic2hvdy1ydW5uaW5nLXJlc3VsdHMiXSkKLSAgICAgICAgdGhpcy5fcmVj
b3JkVGFibGUuc2hvd1JlY29yZCh0aGlzLl90ZXN0Lm5hbWUsIG1lc3NhZ2UsIHRoaXMuX3NhbXBs
ZXIudG9KU09OKHRydWUsIGZhbHNlKSk7CisgICAgICAgIHRoaXMuX3JlY29yZFRhYmxlLnNob3dS
ZWNvcmQodGhpcy5fdGVzdC5uYW1lLCBtZXNzYWdlLCB0aGlzLl9zYW1wbGVyLnRvSlNPTih0cnVl
LCBmYWxzZSksIHRoaXMuX29wdGlvbnMpOwogCiAgICAgdGhpcy5fcHJvZ3Jlc3NCYXIuc2V0UG9z
KHByb2dyZXNzKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265630</attachid>
            <date>2015-11-16 15:37:22 -0800</date>
            <delta_ts>2015-11-16 15:52:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151286-20151116153713.patch</filename>
            <type>text/plain</type>
            <size>12753</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTI0OTEpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE1LTExLTE2ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSGln
aGxpZ2h0IHRoZSBhbGFybWluZyB0ZXN0IHJlc3VsdHMgaW4gdGhlIGdyYXBoaWNzIGJlbmNobWFy
ayByZXN1bHRzIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKyAgICAg
ICAgCisgICAgICAgIFdoZW4gc2hvd2luZyB0aGUgcmVzdWx0cyBvZiBhIHRlc3QgaW4gdGhlIGdy
YXBoaWNzIGJlbmNobWFyayB0aGUgZm9sbG93aW5nCisgICAgICAgIGNyaXRlcmlhIGlzIGdvaW5n
IHRvIGJlIGFwcGxpZWQ6CisgICAgICAgIAorICAgICAgICAxLiBJZiB0aGUgc3RhbmRhcmQgZGV2
aWF0aW9uIG9mIHRoZSB0ZXN0IGNvbXBsZXhpdHkgb3IgdGhlIGZyYW1lIHJhdGUgaXMKKyAgICAg
ICAgICAgZXF1YWwgdG8gb3IgbW9yZSB0aGFuIDEwJSwgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBh
bmQgdGhlIHRlc3QgbmFtZQorICAgICAgICAgICB3aWxsIGJlIGRpc3BsYXllZCBpbiByZWQuCisg
ICAgICAgIDIuIElmIHRoZSBhdmVyYWdlIGZyYW1lIHJhdGUgaXMgbm90IGluIHRoZSByYW5nZSA9
IFsoZGVzaXJlZF9mcmFtZV9yYXRlIC0gMikKKyAgICAgICAgICAgLi4gKGRlc2lyZWRfZnJhbWVf
cmF0ZSArIDIpXSwgdGhlIGF2ZXJhZ2UgZnJhbWUgcmF0ZSBhbmQgdGhlIHRlc3QgbmFtZSB3aWxs
CisgICAgICAgICAgIGJlIGRpc3BsYXllZCBpbiByZWQuCisKKyAgICAgICAgKiBBbmltb21ldGVy
L3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlw
ZS5fc2hvd0hlYWRlclJvdyk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93
SGVhZGVyKToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eUNlbGwp
OgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd1RleHQpOgorICAgICAgICAo
UmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd0ZpeGVkTnVtYmVyKToKKyAgICAgICAgKFJlc3Vs
dHNUYWJsZS5wcm90b3R5cGUuKToKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3No
b3dHcmFwaCk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93SlNPTik6Cisg
ICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9pc0FsYXJtaW5nTWVhc3VyZW1lbnQpOgor
ICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5faXNBbGFybWluZ1Rlc3RSZXN1bHRzKToK
KyAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eUNlbGxzKToKKyAgICAg
ICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dFbXB0eVJvdyk6CisgICAgICAgIChSZXN1
bHRzVGFibGUucHJvdG90eXBlLl9zaG93VGVzdCk6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJv
dG90eXBlLl9zaG93U3VpdGUpOgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5fc2hv
d0l0ZXJhdGlvbik6CisgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLnNob3dSZWNvcmQp
OgorICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5zaG93SXRlcmF0aW9ucyk6CisgICAg
ICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93RW1wdHkpOiBEZWxldGVkLgorICAgICAg
ICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzOgorICAgICAgICAo
d2luZG93LmJlbmNobWFya1J1bm5lckNsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9uKToKKyAg
ICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFnZS5qczoKKyAgICAgICAgKFN0
YWdlQmVuY2htYXJrLnByb3RvdHlwZS5zaG93UmVzdWx0cyk6CisKIDIwMTUtMTEtMTYgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiBy
ZWZlcmVuY2luZyB0aGUgb3B0aW9ucyBvYmplY3QgaW4gdGhlIGdyYXBoaWNzIGJlbmNobWFyawpJ
bmRleDogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0
ZW5zaW9ucy5qcwkocmV2aXNpb24gMTkyNDkxKQorKysgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQsMTYgKzI3
NCwxNCBAQCBSZXN1bHRzVGFibGUucHJvdG90eXBlID0KICAgICBfc2hvd0hlYWRlclJvdzogZnVu
Y3Rpb24ocm93LCBxdWV1ZSwgaGVhZGVycywgbWVzc2FnZSkKICAgICB7CiAgICAgICAgIGhlYWRl
cnMuZm9yRWFjaChmdW5jdGlvbiAoaGVhZGVyKSB7Ci0gICAgICAgICAgICB2YXIgdGggPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpOworICAgICAgICAgICAgdmFyIHRoID0gRG9jdW1lbnRF
eHRlbnNpb24uY3JlYXRlRWxlbWVudCgidGgiLCB7fSwgcm93KTsKICAgICAgICAgICAgIHRoLnRl
eHRDb250ZW50ID0gaGVhZGVyLnRleHQ7CiAgICAgICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2Ug
IT0gInVuZGVmaW5lZCIgJiYgbWVzc2FnZS5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB0aC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicpKTsKLSAgICAgICAgICAgICAg
ICB0aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnWycgKyBtZXNzYWdlICsn
XScpKTsKKyAgICAgICAgICAgICAgICB0aC5pbm5lckhUTUwgKz0gIjxicj4iICsgJ1snICsgbWVz
c2FnZSArJ10nOwogICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiIjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGlmICgid2lkdGgiIGluIGhlYWRlcikKICAgICAgICAgICAgICAgICB0aC53
aWR0aCA9IGhlYWRlci53aWR0aCArICIlIjsKLSAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZCh0
aCk7CiAgICAgICAgICAgICBxdWV1ZS5wdXNoKHtlbGVtZW50OiB0aCwgaGVhZGVyczogaGVhZGVy
LmNoaWxkcmVuIH0pOwogICAgICAgICB9KTsKICAgICB9LApAQCAtMzIzLDM3ICszMjEsMzMgQEAg
UmVzdWx0c1RhYmxlLnByb3RvdHlwZSA9CiAgICAgICAgIH0KICAgICB9LAogICAgIAotICAgIF9z
aG93RW1wdHk6IGZ1bmN0aW9uKHJvdykKKyAgICBfc2hvd0VtcHR5Q2VsbDogZnVuY3Rpb24ocm93
LCBjbGFzc05hbWUpCiAgICAgewotICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJ0ZCIpOwotICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOworICAgICAgICByZXR1cm4g
RG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCgidGQiLCB7IGNsYXNzOiBjbGFzc05hbWUg
fSwgcm93KTsKICAgICB9LAogCi0gICAgX3Nob3dUZXh0OiBmdW5jdGlvbihyb3csIHRleHQpCisg
ICAgX3Nob3dUZXh0OiBmdW5jdGlvbihyb3csIHRleHQsIGNsYXNzTmFtZSkKICAgICB7Ci0gICAg
ICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CisgICAgICAgIHZhciB0
ZCA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoInRkIiwgeyBjbGFzczogY2xhc3NO
YW1lIH0sIHJvdyk7CiAgICAgICAgIHRkLnRleHRDb250ZW50ID0gdGV4dDsKLSAgICAgICAgcm93
LmFwcGVuZENoaWxkKHRkKTsKICAgICB9LAogCi0gICAgX3Nob3dGaXhlZE51bWJlcjogZnVuY3Rp
b24ocm93LCB2YWx1ZSwgZGlnaXRzKQorICAgIF9zaG93Rml4ZWROdW1iZXI6IGZ1bmN0aW9uKHJv
dywgdmFsdWUsIGRpZ2l0cywgY2xhc3NOYW1lKQogICAgIHsKLSAgICAgICAgdmFyIHRkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKKyAgICAgICAgdmFyIHRkID0gRG9jdW1lbnRFeHRl
bnNpb24uY3JlYXRlRWxlbWVudCgidGQiLCB7IGNsYXNzOiBjbGFzc05hbWUgfSwgcm93KTsKICAg
ICAgICAgdGQudGV4dENvbnRlbnQgPSB2YWx1ZS50b0ZpeGVkKGRpZ2l0cyB8fCAyKTsKLSAgICAg
ICAgcm93LmFwcGVuZENoaWxkKHRkKTsKICAgICB9LAogICAgIAogICAgIF9zaG93R3JhcGg6IGZ1
bmN0aW9uKHJvdywgdGVzdE5hbWUsIHRlc3RSZXN1bHRzKQogICAgIHsKICAgICAgICAgdmFyIGRh
dGEgPSB0ZXN0UmVzdWx0c1tTdHJpbmdzWyJKU09OX1NBTVBMRVMiXVswXV07CiAgICAgICAgIGlm
ICghZGF0YSkgewotICAgICAgICAgICAgdGhpcy5fc2hvd0VtcHR5KHJvdyk7CisgICAgICAgICAg
ICB0aGlzLl9zaG93RW1wdHlDZWxsKHJvdywgIiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJ0ZCIpOwotICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0
dG9uIik7Ci0gICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAic21hbGwtYnV0dG9uIjsKKyAgICAg
ICAgdmFyIHRkID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCgidGQiLCB7fSwgcm93
KTsKKyAgICAgICAgdmFyIGJ1dHRvbiA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQo
ImJ1dHRvbiIsIHsgY2xhc3M6ICJzbWFsbC1idXR0b24iIH0sIHRkKTsKIAogICAgICAgICBidXR0
b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHZh
ciBzYW1wbGVzID0gZGF0YVtTdHJpbmdzWyJKU09OX0dSQVBIIl1bMF1dOwpAQCAtMzYzLDQwICsz
NTcsNzggQEAgUmVzdWx0c1RhYmxlLnByb3RvdHlwZSA9CiAgICAgICAgIH0pOwogICAgICAgICAg
ICAgCiAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9IFN0cmluZ3NbIlRFWFRfUkVTVUxUUyJd
WzFdICsgIi4uLiI7Ci0gICAgICAgIHRkLmFwcGVuZENoaWxkKGJ1dHRvbik7Ci0gICAgICAgIHJv
dy5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgfSwKIAogICAgIF9zaG93SlNPTjogZnVuY3Rpb24ocm93
LCB0ZXN0TmFtZSwgdGVzdFJlc3VsdHMpCiAgICAgewogICAgICAgICB2YXIgZGF0YSA9IHRlc3RS
ZXN1bHRzW1N0cmluZ3NbIkpTT05fU0FNUExFUyJdWzBdXTsKICAgICAgICAgaWYgKCFkYXRhKSB7
Ci0gICAgICAgICAgICB0aGlzLl9zaG93RW1wdHkocm93KTsKKyAgICAgICAgICAgIHRoaXMuX3No
b3dFbXB0eUNlbGwocm93LCAiIik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0g
ICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLSAg
ICAgICAgYnV0dG9uLmNsYXNzTmFtZSA9ICJzbWFsbC1idXR0b24iOworCisgICAgICAgIHZhciB0
ZCA9IERvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZUVsZW1lbnQoInRkIiwge30sIHJvdyk7CisgICAg
ICAgIHZhciBidXR0b24gPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJidXR0b24i
LCB7IGNsYXNzOiAic21hbGwtYnV0dG9uIiB9LCB0ZCk7CiAKICAgICAgICAgYnV0dG9uLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBiZW5jaG1hcmtD
b250cm9sbGVyLnNob3dUZXN0SlNPTih0ZXN0TmFtZSwgdGVzdFJlc3VsdHMpOwogICAgICAgICB9
KTsKICAgICAgICAgICAgIAogICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSBTdHJpbmdzWyJU
RVhUX1JFU1VMVFMiXVsyXSArICIuLi4iOwotICAgICAgICB0ZC5hcHBlbmRDaGlsZChidXR0b24p
OwotICAgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOworICAgIH0sCisgICAgCisgICAgX2lzTm9p
c3lNZWFzdXJlbWVudDogZnVuY3Rpb24oaW5kZXgsIGRhdGEsIG1lYXN1cmVtZW50LCBvcHRpb25z
KQorICAgIHsKKyAgICAgICAgY29uc3QgcGVyY2VudFRocmVzaG9sZCA9IDEwOworICAgICAgICBj
b25zdCBhdmVyYWdlVGhyZXNob2xkID0gMjsKKyAgICAgICAgIAorICAgICAgICBpZiAobWVhc3Vy
ZW1lbnQgPT0gU3RyaW5nc1siSlNPTl9NRUFTVVJFTUVOVFMiXVszXSkKKyAgICAgICAgICAgIHJl
dHVybiBkYXRhW1N0cmluZ3NbIkpTT05fTUVBU1VSRU1FTlRTIl1bM11dID49IHBlcmNlbnRUaHJl
c2hvbGQ7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGluZGV4ID09IDEgJiYgbWVhc3VyZW1l
bnQgPT0gU3RyaW5nc1siSlNPTl9NRUFTVVJFTUVOVFMiXVswXSkKKyAgICAgICAgICAgIHJldHVy
biBNYXRoLmFicyhkYXRhW1N0cmluZ3NbIkpTT05fTUVBU1VSRU1FTlRTIl1bMF1dIC0gb3B0aW9u
c1siZnJhbWUtcmF0ZSJdKSA+PSBhdmVyYWdlVGhyZXNob2xkOworCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9LAorCisgICAgX2lzTm9pc3lUZXN0OiBmdW5jdGlvbih0ZXN0UmVzdWx0cywg
b3B0aW9ucykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAyOyAr
K2luZGV4KSB7CisgICAgICAgICAgICB2YXIgZGF0YSA9IHRlc3RSZXN1bHRzW1N0cmluZ3NbIkpT
T05fRVhQRVJJTUVOVFMiXVtpbmRleF1dOworICAgICAgICAgICAgZm9yICh2YXIgbWVhc3VyZW1l
bnQgaW4gZGF0YSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc05vaXN5TWVhc3VyZW1l
bnQoaW5kZXgsIGRhdGEsIG1lYXN1cmVtZW50LCBvcHRpb25zKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0sCisKKyAgICBfc2hvd0VtcHR5Q2VsbHM6IGZ1bmN0aW9uKHJvdywgaGVh
ZGVycykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBoZWFkZXJz
Lmxlbmd0aDsgKytpbmRleCkgeworICAgICAgICAgICAgaWYgKCFoZWFkZXJzW2luZGV4XS5jaGls
ZHJlbi5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5fc2hvd0VtcHR5Q2VsbChyb3csICJz
dWl0ZXMtc2VwYXJhdG9yIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhp
cy5fc2hvd0VtcHR5Q2VsbHMocm93LCBoZWFkZXJzW2luZGV4XS5jaGlsZHJlbik7CisgICAgICAg
IH0KICAgICB9LAogCi0gICAgX3Nob3dUZXN0OiBmdW5jdGlvbih0ZXN0TmFtZSwgdGVzdFJlc3Vs
dHMpCisgICAgX3Nob3dFbXB0eVJvdzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHJv
dyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CisgICAgICAgIHZhciByb3cgPSBEb2N1
bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50KCJ0ciIsIHt9LCB0aGlzLmVsZW1lbnQpOworICAg
ICAgICB0aGlzLl9zaG93RW1wdHlDZWxscyhyb3csIHRoaXMuX2hlYWRlcnMpOworICAgIH0sCisK
KyAgICBfc2hvd1Rlc3Q6IGZ1bmN0aW9uKHRlc3ROYW1lLCB0ZXN0UmVzdWx0cywgb3B0aW9ucykK
KyAgICB7CisgICAgICAgIHZhciByb3cgPSBEb2N1bWVudEV4dGVuc2lvbi5jcmVhdGVFbGVtZW50
KCJ0ciIsIHt9LCB0aGlzLmVsZW1lbnQpOworICAgICAgICB2YXIgY2xhc3NOYW1lID0gdGhpcy5f
aXNOb2lzeVRlc3QodGVzdFJlc3VsdHMsIG9wdGlvbnMpID8gIm5vaXN5LXJlc3VsdHMiIDogIiI7
CiAgICAgICAgIAogICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5faGVh
ZGVycy5sZW5ndGg7ICsraW5kZXgpIHsKIAogICAgICAgICAgICAgc3dpdGNoIChpbmRleCkgewog
ICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dUZXh0KHJvdywg
dGVzdE5hbWUpOworICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dUZXh0KHJvdywgdGVzdE5hbWUs
IGNsYXNzTmFtZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2Ug
MToKQEAgLTQwOCw3ICs0NDAsNyBAQCBSZXN1bHRzVGFibGUucHJvdG90eXBlID0KICAgICAgICAg
ICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IHRlc3RSZXN1bHRzW1N0cmlu
Z3NbIkpTT05fRVhQRVJJTUVOVFMiXVtpbmRleCAtIDJdXTsKICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBtZWFzdXJlbWVudCBpbiBkYXRhKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93
Rml4ZWROdW1iZXIocm93LCBkYXRhW21lYXN1cmVtZW50XSwgMik7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX3Nob3dGaXhlZE51bWJlcihyb3csIGRhdGFbbWVhc3VyZW1lbnRdLCAyLCB0aGlz
Ll9pc05vaXN5TWVhc3VyZW1lbnQoaW5kZXggLSAyLCBkYXRhLCBtZWFzdXJlbWVudCwgb3B0aW9u
cykgPyBjbGFzc05hbWUgOiAiIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICBjYXNlIDQ6CkBAIC00MTcsMzggKzQ0OSwzOCBAQCBSZXN1bHRz
VGFibGUucHJvdG90eXBlID0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHJv
dyk7CiAgICAgfSwKIAotICAgIF9zaG93U3VpdGU6IGZ1bmN0aW9uKHN1aXRlTmFtZSwgc3VpdGVS
ZXN1bHRzKQorICAgIF9zaG93U3VpdGU6IGZ1bmN0aW9uKHN1aXRlTmFtZSwgc3VpdGVSZXN1bHRz
LCBvcHRpb25zKQogICAgIHsKICAgICAgICAgZm9yICh2YXIgdGVzdE5hbWUgaW4gc3VpdGVSZXN1
bHRzW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzJdXSkgewotICAgICAgICAgICAgdGhpcy5fc2hv
d1Rlc3QodGVzdE5hbWUsIHN1aXRlUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsyXV1b
dGVzdE5hbWVdKTsKKyAgICAgICAgICAgIHRoaXMuX3Nob3dUZXN0KHRlc3ROYW1lLCBzdWl0ZVJl
c3VsdHNbU3RyaW5nc1siSlNPTl9SRVNVTFRTIl1bMl1dW3Rlc3ROYW1lXSwgb3B0aW9ucyk7CiAg
ICAgICAgIH0KICAgICB9LAogICAgIAotICAgIF9zaG93SXRlcmF0aW9uIDogZnVuY3Rpb24oaXRl
cmF0aW9uUmVzdWx0cykKKyAgICBfc2hvd0l0ZXJhdGlvbiA6IGZ1bmN0aW9uKGl0ZXJhdGlvblJl
c3VsdHMsIG9wdGlvbnMpCiAgICAgewogICAgICAgICBmb3IgKHZhciBzdWl0ZU5hbWUgaW4gaXRl
cmF0aW9uUmVzdWx0c1tTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVsxXV0pIHsKLSAgICAgICAgICAg
IHRoaXMuX3Nob3dTdWl0ZShzdWl0ZU5hbWUsIGl0ZXJhdGlvblJlc3VsdHNbU3RyaW5nc1siSlNP
Tl9SRVNVTFRTIl1bMV1dW3N1aXRlTmFtZV0pOworICAgICAgICAgICAgaWYgKHN1aXRlTmFtZSAh
PSBPYmplY3Qua2V5cyhpdGVyYXRpb25SZXN1bHRzW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzFd
XSlbMF0pCisgICAgICAgICAgICAgICAgdGhpcy5fc2hvd0VtcHR5Um93KCk7CisgICAgICAgICAg
ICB0aGlzLl9zaG93U3VpdGUoc3VpdGVOYW1lLCBpdGVyYXRpb25SZXN1bHRzW1N0cmluZ3NbIkpT
T05fUkVTVUxUUyJdWzFdXVtzdWl0ZU5hbWVdLCBvcHRpb25zKTsKICAgICAgICAgfQogICAgIH0s
CiAgICAgCi0gICAgc2hvd1JlY29yZDogZnVuY3Rpb24odGVzdE5hbWUsIG1lc3NhZ2UsIHRlc3RS
ZXN1bHRzKQorICAgIHNob3dSZWNvcmQ6IGZ1bmN0aW9uKHRlc3ROYW1lLCBtZXNzYWdlLCB0ZXN0
UmVzdWx0cywgb3B0aW9ucykKICAgICB7CiAgICAgICAgIHRoaXMuY2xlYXIoKTsKICAgICAgICAg
dGhpcy5fc2hvd0hlYWRlcihtZXNzYWdlKTsKLSAgICAgICAgdGhpcy5fc2hvd1Rlc3QodGVzdE5h
bWUsIHRlc3RSZXN1bHRzKTsKKyAgICAgICAgdGhpcy5fc2hvd1Rlc3QodGVzdE5hbWUsIHRlc3RS
ZXN1bHRzLCBvcHRpb25zKTsKICAgICB9LAogCi0gICAgc2hvd0l0ZXJhdGlvbnM6IGZ1bmN0aW9u
KGl0ZXJhdGlvbnNSZXN1bHRzKQorICAgIHNob3dJdGVyYXRpb25zOiBmdW5jdGlvbihpdGVyYXRp
b25zUmVzdWx0cywgb3B0aW9ucykKICAgICB7CiAgICAgICAgIHRoaXMuY2xlYXIoKTsKICAgICAg
ICAgdGhpcy5fc2hvd0hlYWRlcigiIik7CiAgICAgICAgIAogICAgICAgICBpdGVyYXRpb25zUmVz
dWx0cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZXJhdGlvblJlc3VsdHMpIHsKLSAgICAgICAgICAgIHRo
aXMuX3Nob3dJdGVyYXRpb24oaXRlcmF0aW9uUmVzdWx0cyk7CisgICAgICAgICAgICB0aGlzLl9z
aG93SXRlcmF0aW9uKGl0ZXJhdGlvblJlc3VsdHMsIG9wdGlvbnMpOwogICAgICAgICB9LCB0aGlz
KTsKICAgICB9CiB9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jl
c291cmNlcy9hbmltb21ldGVyLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmNzcwkocmV2aXNpb24gMTkyNDkx
KQorKysgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMvYW5pbW9t
ZXRlci5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw2ICsxNjEsMTQgQEAgdGFibGUucmVzdWx0
cy10YWJsZSB7CiAgICAgY29sb3I6IGJsYWNrOwogfQogCisucmVzdWx0cy10YWJsZSB0ZC5ub2lz
eS1yZXN1bHRzIHsKKyAgICBjb2xvcjogcmVkOworfQorCisucmVzdWx0cy10YWJsZSB0ZC5zdWl0
ZXMtc2VwYXJhdG9yIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Cit9CisgCiAvKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1
bHRzIEpTT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICovCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcnVubmVyL3Jl
c291cmNlcy9hbmltb21ldGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanMJKHJldmlzaW9uIDE5MjQ5MSkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0
ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgd2luZG93LmJlbmNobWFya1J1
bm5lckNsaWVudCA9IHsKICAgICB7CiAgICAgICAgIHZhciBqc29uID0gdGhpcy5fcmVzdWx0c0Rh
c2hib2FyZC50b0pTT04odHJ1ZSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMuc2NvcmUgPSBqc29uW1N0
cmluZ3NbIkpTT05fU0NPUkUiXV07Ci0gICAgICAgIHRoaXMuX3Jlc3VsdHNUYWJsZS5zaG93SXRl
cmF0aW9ucyhqc29uW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJdWzBdXSk7CisgICAgICAgIHRoaXMu
X3Jlc3VsdHNUYWJsZS5zaG93SXRlcmF0aW9ucyhqc29uW1N0cmluZ3NbIkpTT05fUkVTVUxUUyJd
WzBdXSwgdGhpcy5vcHRpb25zKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNob3dKU09OKCJq
c29uIiwganNvbltTdHJpbmdzWyJKU09OX1JFU1VMVFMiXVswXV1bMF0pOwogICAgICAgICBzdWl0
ZXNNYW5hZ2VyLnVwZGF0ZUxvY2FsU3RvcmFnZUZyb21KU09OKGpzb25bU3RyaW5nc1siSlNPTl9S
RVNVTFRTIl1bMF1dWzBdKTsKICAgICAgICAgYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0
cygpOwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9z
dGFnZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
cmVzb3VyY2VzL3N0YWdlLmpzCShyZXZpc2lvbiAxOTI0OTEpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzMsNyArMTczLDcgQEAgU3RhZ2VCZW5jaG1hcmsucHJvdG90eXBlLnNob3dSZXN1bHRzID0gZgog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAodGhpcy5fb3B0aW9uc1sic2hvdy1ydW5uaW5nLXJl
c3VsdHMiXSkKLSAgICAgICAgdGhpcy5fcmVjb3JkVGFibGUuc2hvd1JlY29yZCh0aGlzLl90ZXN0
Lm5hbWUsIG1lc3NhZ2UsIHRoaXMuX3NhbXBsZXIudG9KU09OKHRydWUsIGZhbHNlKSk7CisgICAg
ICAgIHRoaXMuX3JlY29yZFRhYmxlLnNob3dSZWNvcmQodGhpcy5fdGVzdC5uYW1lLCBtZXNzYWdl
LCB0aGlzLl9zYW1wbGVyLnRvSlNPTih0cnVlLCBmYWxzZSksIHRoaXMuX29wdGlvbnMpOwogCiAg
ICAgdGhpcy5fcHJvZ3Jlc3NCYXIuc2V0UG9zKHByb2dyZXNzKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>